2023-07-20 22:44:51 -03:00
--[[
elected = {
president = {
name = " " , --name of the elected candidate.
when = 0 , --when the candidate was elected.
} ,
} ,
candidates = {
2024-02-18 18:06:19 -03:00
president = {
[ " cadidatename " ] = {
political_campaign = " " ,
voters = { --names of voters who voted for this candidate.
[ " votername " ] = " when " ,
} ,
} ,
} ,
2023-07-20 22:44:51 -03:00
} ,
--]]
2024-02-18 18:06:19 -03:00
--############################################################################
2023-07-20 22:44:51 -03:00
modEUrn.getPropCommPresident = function ( )
return {
2024-02-16 21:28:25 -03:00
--privs = {electoraljudge=true},
params = " [< " .. modEUrn.translate ( " candidate_name " ) .. " >] " ,
description = modEUrn.translate ( " Show or Select the presidente of the server. " ) ,
2024-02-18 18:06:19 -03:00
func = function ( playername , candidatename )
if type ( candidatename ) == " string " and candidatename ~= " " then
2024-02-16 21:28:25 -03:00
if minetest.get_player_privs ( playername ) . electoraljudge then
2024-02-18 18:06:19 -03:00
if modEUrn.doPresident ( playername , candidatename ) then
modEUrn.doSave ( )
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 ( dump ( candidatename ) )
)
end
2024-02-16 21:28:25 -03:00
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] " ) .. " "
2024-02-18 18:06:19 -03:00
.. modEUrn.translate ( " The president of this server is %s! " ) : format ( dump ( modEUrn.getPresidentName ( ) ) )
2024-02-16 21:28:25 -03:00
)
end
2023-07-20 22:44:51 -03:00
end ,
}
end
minetest.register_chatcommand (
" president " ,
modEUrn.getPropCommPresident ( )
)
2024-02-18 18:06:19 -03:00
--[[
2023-07-20 22:44:51 -03:00
minetest.register_chatcommand (
modEUrn.translate ( " president " ) ,
modEUrn.getPropCommPresident ( )
)
2024-02-18 18:06:19 -03:00
--]]
--############################################################################
modEUrn.getPropCommCandidateMe = function ( )
return {
--privs = {electoraljudge=true},
params = " [< " .. modEUrn.translate ( " political campaign " ) .. " >] " ,
description = modEUrn.translate ( " Register your campaign to run for server president. " ) ,
func = function ( playername , political_campaign )
local candidatename = playername
if modEUrn.doPresidentCandidate ( playername , candidatename , political_campaign ) then
modEUrn.doSave ( )
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 registered to run as a candidate for president of this server! " ) : format ( dump ( candidatename ) )
)
end
end ,
}
end
minetest.register_chatcommand (
" candidateme " ,
modEUrn.getPropCommCandidateMe ( )
)
--############################################################################
modEUrn.getPropCommCandidates = function ( )
return {
--privs = {electoraljudge=true},
--params = "[<".. modEUrn.translate("political campaign")..">]",
description = modEUrn.translate ( " Show the name of all candidates for president. " ) ,
func = function ( playername )
local cands = modEUrn.getPresidentCandidates ( )
local candList = " "
local candCount = 0
--minetest.chat_send_all("Numero de Candidatos: "..#modEUrn.handler.candidates.president)
for _ , iCandPresName in ipairs ( cands ) do
candCount = candCount + 1
if candList == " " then
candList = iCandPresName
else
candList = candList .. " , " .. iCandPresName
end
end
minetest.chat_send_player (
playername ,
core.colorize ( " #00FF00 " , " [E-URN] " ) .. " "
.. modEUrn.translate ( " Number of Candidates: %s " ) : format ( candCount )
)
minetest.chat_send_player (
playername ,
core.colorize ( " #00FF00 " , " [E-URN] " ) .. " "
.. modEUrn.translate ( " Candidate List: %s " ) : format ( candList )
)
--minetest.chat_send_all("Numero de Candidatos: "..candCount)
--minetest.chat_send_all("Lista de Candidatos: "..candList)
--]]
--[[
if then
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 registered to run as a candidate for president of this server! " ) : format ( dump ( candidatename ) )
)
end
--]]
end ,
}
end
minetest.register_chatcommand (
" candidates " ,
modEUrn.getPropCommCandidates ( )
)
--############################################################################
modEUrn.getPropCommCandCampaign = function ( )
return {
--privs = {electoraljudge=true},
params = " < " .. modEUrn.translate ( " candidate_name " ) .. " > " ,
description = modEUrn.translate ( " Show the Campaign of candidate for president. " ) ,
func = function ( playername , candidatename )
if type ( candidatename ) == " string " and candidatename ~= " " then
if minetest.player_exists ( candidatename ) then
if type ( modEUrn.handler . candidates.president [ candidatename ] ) == " table " then
minetest.chat_send_player (
playername ,
core.colorize ( " #00FF00 " , " [E-URN] " ) .. " "
.. core.colorize ( " #888888 " ,
modEUrn.translate ( " Candidate Name: " )
)
.. core.colorize ( " #00FF00 " , candidatename )
)
local Campaign = modEUrn.getPresCandCampaign ( candidatename )
if type ( Campaign ) == " string " and Campaign ~= " " then
minetest.chat_send_player (
playername ,
core.colorize ( " #00FF00 " , " [E-URN] " ) .. " "
.. core.colorize ( " #888888 " ,
modEUrn.translate ( " Candidate Campaign: " )
)
.. Campaign
)
end
else
minetest.chat_send_player (
playername ,
core.colorize ( " #FF0000 " , " [E-URN] " ) .. " "
.. modEUrn.translate ( " Player %s is not registered as a candidate for president! " ) : format ( candidatename )
)
end
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 ( candidatename )
)
end
else
minetest.chat_send_player (
playername ,
--os.date("%Y-%m-%d %Hh:%Mm:%Ss", now) ..
core.colorize ( " #FF0000 " , " [E-URN] " ) .. " "
.. modEUrn.translate ( " Please enter the name of the candidate you wish to display the campaign! " ) .. " \n "
.. core.colorize ( " #888888 " , " Syntaxe: " )
.. core.colorize ( " #00FFFF " ,
" /campaign < " .. modEUrn.translate ( " candidate_name " ) .. " > "
)
)
end
end ,
}
end
minetest.register_chatcommand (
" campaign " ,
modEUrn.getPropCommCandCampaign ( )
)
2024-02-19 11:05:38 -03:00
--############################################################################
modEUrn.getPropCommCandVote = function ( )
return {
--privs = {electoraljudge=true},
params = " < " .. modEUrn.translate ( " candidate_name " ) .. " > " ,
description = modEUrn.translate ( " Vote for a specific candidate for president. " ) ,
func = function ( playername , candidatename )
2024-02-19 11:37:52 -03:00
if type ( modEUrn.handler . voters [ playername ] ) == " table " then
2024-02-19 11:05:38 -03:00
local voterTimePlayed = modEUrn.handler . voters [ playername ] . times.played --in secounds
if voterTimePlayed >= modEUrn.MinPlayedHours * ( 60 * 60 ) then
if type ( candidatename ) == " string " and candidatename ~= " " then
if minetest.player_exists ( candidatename ) then
if type ( modEUrn.handler . candidates.president [ candidatename ] ) == " table " then
--modEUrn.MinPlayedHours
--modEUrn.handler.voters[playername].times.played
for iCandPresName , _ in pairs ( modEUrn.handler . candidates.president ) do
if type ( modEUrn.handler . candidates.president [ iCandPresName ] . voters [ playername ] ) ~= " nil " then
break
end
end
modEUrn.handler . candidates.president [ candidatename ] . voters [ playername ] = os.time ( ) --Agora em milisegundos
minetest.chat_send_player (
playername ,
core.colorize ( " #00FF00 " , " [E-URN] " ) .. " "
.. modEUrn.translate ( " You voted for the candidate: " )
.. core.colorize ( " #00FF00 " , candidatename )
)
else
minetest.chat_send_player (
playername ,
core.colorize ( " #FF0000 " , " [E-URN] " ) .. " "
.. modEUrn.translate ( " Player %s is not registered as a candidate for president! " ) : format ( candidatename )
)
end
else
minetest.chat_send_player (
playername ,
core.colorize ( " #FF0000 " , " [E-URN] " ) .. " "
.. modEUrn.translate ( " The name '%s' is not the player name registered on the server! " ) : format ( candidatename )
)
end
else
minetest.chat_send_player (
playername ,
core.colorize ( " #FF0000 " , " [E-URN] " ) .. " "
.. modEUrn.translate ( " Please enter the name of the presidential candidate you wish to vote! " ) .. " \n "
.. core.colorize ( " #888888 " , " Syntaxe: " )
.. core.colorize ( " #00FFFF " ,
" /vote < " .. modEUrn.translate ( " candidate_name " ) .. " > "
)
)
end
else
minetest.chat_send_player (
playername ,
2024-02-19 11:47:01 -03:00
core.colorize ( " #FF0000 " , " [E-URN] " ) .. " "
2024-02-19 11:05:38 -03:00
.. modEUrn.translate ( " You have not yet played the minimum number of hours to become a presidential voter. (Minimum %02d hours) " ) : format ( modEUrn.MinPlayedHours )
)
end
else
minetest.chat_send_player (
playername ,
core.colorize ( " #FF0000 " , " [E-URN:ERRO] " ) .. " "
.. modEUrn.translate ( " Your name is not registered as a voter. " )
)
end
end ,
}
end
minetest.register_chatcommand (
" vote " ,
modEUrn.getPropCommCandVote ( )
)
2024-02-18 18:06:19 -03:00
--############################################################################
--[[
minetest.register_chatcommand (
" t " ,
{
privs = { server = true } ,
--params = "[<".. modEUrn.translate("political campaign")..">]",
description = modEUrn.translate ( " Register your campaign to run for server president. " ) ,
func = function ( playername , param )
local t = {
1 ,
2 ,
[ " três " ] = {
a = 1 ,
b = 2 ,
c = 3 ,
} ,
4
}
table.remove ( t , 2 )
t [ " três " ] . b = nil
minetest.chat_send_all ( dump2 ( t ) )
end ,
}
)
--]]