a.e.s.-terms-of-service/player_manager.lua

85 lines
2.3 KiB
Lua

local S = minetest.get_translator("terms_of_service")
local function make_formspec() end
local TOS = [[
]] .. "1) " .. S("Always respect other players") .. "\n" .. [[
]] .. "2) " .. S("No excessive swearing") .. "\n" .. [[
]] .. "3) " .. S("No modified clients") .. "\n" .. [[
]] .. "\n" .. [[
]] .. S("Admins reserve the right to remove whoever transgress the rules. In case of repeated misbehaviours, the user will be banned")
minetest.register_on_joinplayer(function(player)
local p_name = player:get_player_name()
if not minetest.get_player_privs(p_name).tos_accepted then
minetest.after(1, function()
minetest.show_formspec(p_name, "tos:tos_fs", make_formspec())
end)
end
end)
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname ~= "tos:tos_fs" then return end
local p_name = player:get_player_name()
if fields.ok or fields.key_enter then
if fields.hidden_word == string.lower(fields.entry) then
local privs = minetest.get_player_privs(p_name)
privs.tos_accepted = true
privs.interact = true
minetest.set_player_privs(p_name, privs)
minetest.chat_send_player(p_name, S("Enjoy your staying!"))
else
minetest.chat_send_player(p_name, S("Wrong, try again"))
minetest.show_formspec(p_name, "tos:tos_fs", make_formspec())
return
end
elseif fields.quit then
if not minetest.get_player_privs(p_name).tos_accepted then
minetest.chat_send_player(p_name, S("Please read carefully and click 'accept'"))
minetest.show_formspec(p_name, "tos:tos_fs", make_formspec())
return
end
elseif fields.no then
minetest.kick_player(p_name, S("All the players must adhere to the rules"))
return
else
minetest.show_formspec(p_name, "tos:tos_fs", make_formspec())
end
end)
----------------------------------------------
---------------FUNZIONI LOCALI----------------
----------------------------------------------
function make_formspec()
local word = S("never")
local formspec = {
"size[9,8]",
"textarea[0.5,0.5;8,7;TOS;".. S("SERVER RULES") .. ";"..TOS.."]",
"field[0.5,7.5;6,1;entry;" .. S("When can I insult a user? One word") .. ";]",
"button_exit[6,7.4;1.5,0.5;ok;" .. S("Accept") .. "]",
"button[7.5,7.4;1.5,0.5;no;" .. S("Deny") .. "]",
"field[10,10;0.1,0.1;hidden_word;;"..word.."]",
"field_close_on_enter[;false]"
}
return table.concat(formspec, "")
end