diff --git a/mods/_misc/nointeract_messages.lua b/mods/_misc/nointeract_messages.lua index 3e04bd16..e0b28a40 100755 --- a/mods/_misc/nointeract_messages.lua +++ b/mods/_misc/nointeract_messages.lua @@ -1,17 +1,31 @@ -local TIMER = 0 -minetest.register_globalstep(function(dtime) - TIMER = TIMER + dtime - if TIMER < 20 then return end - TIMER = 0 - for _,player in ipairs(minetest.get_connected_players()) do - local name = player:get_player_name() - if not minetest.check_player_privs(name, {interact=true}) then - if not interact.blacklist[name] then - if minetest.check_player_privs(name, {shout=true}) then - minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir construire et intéragir sur ce serveur, tu dois lire les règles du serveur et les accepter. Tape /rules.") - minetest.chat_send_player(name, "Hey " .. name .. " ! To build and interact on this server, you have to read the rules of our server and agree them. Type /rules.") - end - end - end + +local players = {} + +local function tick(name) + if players[name] == nil then return end + if not minetest.get_player_by_name(name) or minetest.check_player_privs(name, {interact=true}) == true then + players[name] = nil + return + end + if minetest.check_player_privs(name, {shout=true}) then + minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir construire et intéragir sur ce serveur, tu dois lire les règles du serveur et les accepter. Tape /rules.") + minetest.chat_send_player(name, "Hey " .. name .. " ! To build and interact on this server, you have to read the rules of our server and agree them. Type /rules.") + end + minetest.after(20, tick, name) +end + + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + if not minetest.check_player_privs(name, {interact=true}) and players[name] == nil then + minetest.after(7, tick, name) + players[name] = true end end) + + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + if not name then return end + players[name] = nil +end) diff --git a/mods/_misc/noshout_messages.lua b/mods/_misc/noshout_messages.lua index a61ef8e6..54a31fa3 100755 --- a/mods/_misc/noshout_messages.lua +++ b/mods/_misc/noshout_messages.lua @@ -1,13 +1,30 @@ -local TIMER = 0 -minetest.register_globalstep(function(dtime) - TIMER = TIMER + dtime - if TIMER < 25 then return end - TIMER = 0 - for _,player in ipairs(minetest.get_connected_players()) do - local name = player:get_player_name() - if not minetest.check_player_privs(name, {shout=true}) then - minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir communiquer avec les autres joueurs sur ce serveur, tu dois lire les règles de l'irc et les accepter. Tape /irc.") - minetest.chat_send_player(name, "Hey " .. name .. " ! To speak to other people on this server, you have to read the rules of our irc channel and agree them. Type /irc.") - end + +local players = {} + +local function tick(name) + if players[name] == nil then return end + if not minetest.get_player_by_name(name) or minetest.check_player_privs(name, {shout=true}) == true then + players[name] = nil + return + end + + minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir communiquer avec les autres joueurs sur ce serveur, tu dois lire les règles de l'irc et les accepter. Tape /irc.") + minetest.chat_send_player(name, "Hey " .. name .. " ! To speak to other people on this server, you have to read the rules of our irc channel and agree them. Type /irc.") + minetest.after(20, tick, name) +end + + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + if not minetest.check_player_privs(name, {interact=true}) and players[name] == nil then + minetest.after(5, tick, name) + players[name] = true end end) + + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + if not name then return end + players[name] = nil +end)