ChaosWormz 2016-06-11 20:39:30 +03:00
commit b062084c51
2 changed files with 26 additions and 0 deletions

4
README
View File

@ -10,5 +10,9 @@ To set the rules, either place a file called "newplayer-rules.txt" in the world
If one or more keywords are set (Use /getkeywords to see them, /addkeyword to add one, or /delkeyword to remove one, all three require server privs.), then players will have to enter a randomly-chosen entry from the list into a provided text box before clicking the agree button. It is then possible to put the string "@KEYWORD" in the rules, which will be replaced with the chosen keyword when they are shown to a player without interact. This substitution (intentionally) does not occur when the rules are being shown to somebody with interact (for example, if they use the /rules command because they want to re-read them)* so that they can't see the keyword, preventing them from telling other players what it is... or what they think it is, since the other player will likely have a different keyword assuming several are set.
If a keyword is not set, players are not asked for it and simply pressing the "I agree" button is enough.
If a player without interact says anything containing the word "help" (case-insensitive), they are shown a message box explaining that they need to read the rules before they can build. If they choose to do so, the rules are shown.
If a player without interact says anything containing the word "rules" (case-insensitive), they are shown the rules. This covers several types of failed attempts at using the chat command, such as "rules", "\rules", " /rules", etc.
* Like that ever happens.

View File

@ -217,6 +217,11 @@ minetest.register_on_player_receive_fields(function(player,formname,fields)
end
elseif formname == "newplayer:agreethanks" or formname == "newplayer:disagreewarning" then
return true
elseif formname == "newplayer:help" then
if fields.yes then
newplayer.showrulesform(name)
end
return true
else
return false
end
@ -340,3 +345,20 @@ minetest.register_chatcommand("spawn",{
end
end}
)
minetest.register_on_chat_message(function(name, message)
if minetest.check_player_privs(name,{interact=true}) then
return
end
if message:lower():find("rules") then
newplayer.showrulesform(name)
elseif message:lower():find("help") then
local fs = "size[5,3]"..
"label[0,0;In order to build,]"..
"label[0,0.5;you must read and agree to the rules.]"..
"label[0,1;View them now?]"..
"button[0,2;2,1;yes;Yes]"..
"button_exit[3,2;2,1;quit;No]"
minetest.show_formspec(name,"newplayer:help",fs)
end
end)