From 52bb8ec5509efc2b60acd4179e4ba28ac5beeff2 Mon Sep 17 00:00:00 2001 From: Lunovox Date: Fri, 16 Feb 2024 21:28:25 -0300 Subject: [PATCH] --- api.lua | 3 ++ commands.lua | 88 ++++++++++++++++++++++++++++++++++------------------ 2 files changed, 61 insertions(+), 30 deletions(-) diff --git a/api.lua b/api.lua index 5a20999..764d6b5 100644 --- a/api.lua +++ b/api.lua @@ -106,6 +106,9 @@ minetest.register_on_shutdown(function() if #players >= 1 then for _, player in ipairs(players) do modEUrn.on_leaveplayer(player) + local playername = player:get_player_name() + --minetest.disconnect_player(name, [reason]) + minetest.disconnect_player(playername) end end modEUrn.doSave() diff --git a/commands.lua b/commands.lua index 1431fcd..55cada7 100644 --- a/commands.lua +++ b/commands.lua @@ -14,37 +14,65 @@ candidates = { modEUrn.getPropCommPresident = function() local now = os.time() --Em milisegundos return { - privs = {electoraljudge=true}, - params = "<".. modEUrn.translate("candidate_name")..">", - description = modEUrn.translate("Select the presidente of the server."), + --privs = {electoraljudge=true}, + params = "[<".. modEUrn.translate("candidate_name")..">]", + description = modEUrn.translate("Show or Select the presidente of the server."), func = function(playername, param) - local who = param - if modEUrn.handler.elected==nil then - modEUrn.handler.elected = { } - end - if modEUrn.handler.elected.president==nil then - modEUrn.handler.elected.president = { } - end - modEUrn.handler.elected.president.name = who - modEUrn.handler.elected.president.when = now - if modEUrn.handler.elected.president.voters==nil then - modEUrn.handler.elected.president.voters = { } - end - modEUrn.handler.elected.president.voters[playername] = now - - if modEUrn.handler.candidates==nil then - modEUrn.handler.candidates = { } - end - if modEUrn.handler.candidates.president==nil then - modEUrn.handler.candidates.president = { } - end - modEUrn.handler.candidates.president[who] = now - - minetest.chat_send_player( - playername, - --os.date("%Y-%m-%d %Hh:%Mm:%Ss", now) .. - "[E-URN] "..modEUrn.translate("Player '%s' has been named the president of this server!"):format(who) - ) + if type(param)=="string" and param~="" then + if minetest.get_player_privs(playername).electoraljudge then + if minetest.player_exists(param) then + local who = param + if modEUrn.handler.elected==nil then + modEUrn.handler.elected = { } + end + if modEUrn.handler.elected.president==nil then + modEUrn.handler.elected.president = { } + end + modEUrn.handler.elected.president.name = who + modEUrn.handler.elected.president.when = now + if modEUrn.handler.elected.president.voters==nil then + modEUrn.handler.elected.president.voters = { } + end + modEUrn.handler.elected.president.voters[playername] = now + + if modEUrn.handler.candidates==nil then + modEUrn.handler.candidates = { } + end + if modEUrn.handler.candidates.president==nil then + modEUrn.handler.candidates.president = { } + end + modEUrn.handler.candidates.president[who] = now + + minetest.chat_send_player( + playername, + --os.date("%Y-%m-%d %Hh:%Mm:%Ss", now) .. + core.colorize("#00FF00", "[E-URN]").." " + ..modEUrn.translate("Player '%s' has been named the president of this server!"):format(who) + ) + else + minetest.chat_send_player( + playername, + --os.date("%Y-%m-%d %Hh:%Mm:%Ss", now) .. + core.colorize("#FF0000", "[E-URN]").." " + ..modEUrn.translate("The name '%s' is not the player name registered on the server!"):format(param) + ) + end + else + minetest.chat_send_player( + playername, + --os.date("%Y-%m-%d %Hh:%Mm:%Ss", now) .. + core.colorize("#FF0000", "[E-URN]").." " + ..modEUrn.translate("You do not have the 'electoraljudge' privilege to define who will be the president of the server!") + ) + end + else + minetest.chat_send_player( + playername, + --os.date("%Y-%m-%d %Hh:%Mm:%Ss", now) .. + core.colorize("#00FF00", "[E-URN]").." " + ..modEUrn.translate("The president of this server is %s!"):format(dump(modEUrn.handler.elected.president.name)) + ) + end end, } end