From 4cf38c997da4201e60a649d75f738dcdd3c1a942 Mon Sep 17 00:00:00 2001 From: BuckarooBanzay Date: Mon, 30 Jan 2023 19:36:03 +0100 Subject: [PATCH] check if the secret is present before asking for a code --- functions.lua | 8 ++++++++ join.lua | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/functions.lua b/functions.lua index 96eb50d..a3dc6b0 100644 --- a/functions.lua +++ b/functions.lua @@ -191,4 +191,12 @@ function otp.get_player_secret_b32(name) otp.storage:set_string(name .. "_secret", secret_b32) end return secret_b32 +end + +-- returns true if the player is otp enabled _and_ set up properly +function otp.is_player_enabled(name) + local has_secret = otp.storage:get_string(name .. "_secret") ~= "" + local has_priv = minetest.check_player_privs(name, "otp_enabled") + + return has_secret and has_priv end \ No newline at end of file diff --git a/join.lua b/join.lua index a62ee13..941163b 100644 --- a/join.lua +++ b/join.lua @@ -65,7 +65,7 @@ end -- Code formspec on join for otp enabled players minetest.register_on_joinplayer(function(player) local playername = player:get_player_name() - if minetest.check_player_privs(playername, "otp_enabled") then + if otp.is_player_enabled(playername) then minetest.log("action", "[otp] session start for player: '" .. playername .. "'") -- start otp session time