about summary refs log tree commit diff
path: root/src/game/server/gs_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/server/gs_server.cpp')
-rw-r--r--src/game/server/gs_server.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp
index d41ffd9c..7e25e691 100644
--- a/src/game/server/gs_server.cpp
+++ b/src/game/server/gs_server.cpp
@@ -683,6 +683,7 @@ void player::reset()
 	die_tick = 0;
 	die_pos = vec2(0,0);
 	damage_taken = 0;
+	last_chat = 0;
 	player_state = PLAYERSTATE_UNKNOWN;
 
 	mem_zero(&input, sizeof(input));
@@ -2113,7 +2114,16 @@ void mods_message(int msgtype, int client_id)
 			team = players[client_id].team;
 		else
 			team = -1;
-		send_chat(client_id, team, msg->message);
+		
+		if(config.sv_spamprotection && players[client_id].last_chat+time_freq() > time_get())
+		{
+			// consider this as spam
+		}
+		else
+		{
+			players[client_id].last_chat = time_get();
+			send_chat(client_id, team, msg->message);
+		}
 	}
 	else if (msgtype == NETMSGTYPE_CL_SETTEAM)
 	{