caps_message_count={} minetest.register_on_joinplayer(function(player) local player_name = player:get_player_name() caps_message_count[player_name] = 0 end) minetest.register_on_leaveplayer(function(player) local player_name = player:get_player_name() caps_message_count[player_name] = nil end) minetest.register_on_chat_message(function(name, message) if message:len()>16 and message:lower()~=message and message:upper()==message then caps_message_count[name] = caps_message_count[name] + 1 if caps_message_count[name]>=3 then minetest.kick_player(name,"Sending all-caps messages is not allowed.") minetest.chat_send_all(string.format("* %s was kicked for sending too many all-caps messages.",name)) if minetest.get_modpath("irc") then irc:say(string.format("* %s was kicked for sending too many all-caps messages.",name)) end minetest.log("action", string.format("Kicked %s for sending too many all-caps messages",name)) else if minetest.get_modpath("notice") then notice.send(name,"Sending all-caps messages is not allowed") else minetest.chat_send_player(name,"Sending all-caps messages is not allowed.") end minetest.log("action",string.format("%s was warned for sending an all-caps message (%u so far)",name,caps_message_count[name])) end end end)