summaryrefslogtreecommitdiff
path: root/init.lua
blob: 665a03183db795a62b5da4f6c44853324c90225c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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)