diff --git a/init.lua b/init.lua index e3a1be4..ae6d6ce 100644 --- a/init.lua +++ b/init.lua @@ -110,8 +110,19 @@ end function vote.check_vote(voteset) local all_players_voted = true local players = minetest.get_connected_players() + local ignored_players = core.get_mod_storage():get_string("ignored_players"):split(" ") for _, player in pairs(players) do local name = player:get_player_name() + local is_ignored = false + for _, ignored_name in ipairs(ignored_players) do + if name == ignored_name then + is_ignored = true + break + end + end + if is_ignored then + break + end if not voteset.results.voted[name] then all_players_voted = false break @@ -289,3 +300,31 @@ minetest.register_chatcommand("abstain", { vote.check_vote(voteset) end }) + +minetest.register_chatcommand("vote_ignored", { + privs = { + vote_admin = true, + }, + description = "Get a list of players ignored during voting", + func = function(name, params) + minetest.chat_send_player( + name, + "Ignored players: " .. core.get_mod_storage():get_string("ignored_players") + ) + end +}) + +minetest.register_chatcommand("vote_ignore", { + privs = { + vote_admin = true, + }, + description = "Ignore player(s) during voting", + params = "...", + func = function(name, params) + local meta = core.get_mod_storage() + meta:set_string( + "ignored_players", + meta:get_string("ignored_players") .. params + ) + end +})