85 lines
2.3 KiB
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
|