inital commit
This commit is contained in:
82
spamguard.sp
Normal file
82
spamguard.sp
Normal file
@@ -0,0 +1,82 @@
|
||||
/* Plugin Template generated by Pawn Studio */
|
||||
|
||||
#include <sourcemod>
|
||||
|
||||
new String:badwords[300][100];
|
||||
new clientpunkte[MAXPLAYERS+1];
|
||||
new wordcount = 0;
|
||||
new Handle:cv_limit, var_limit;
|
||||
|
||||
public Plugin:myinfo =
|
||||
{
|
||||
name = "SpamProtect",
|
||||
author = "Chefe",
|
||||
description = "<- Description ->",
|
||||
version = "1.0",
|
||||
url = "<- URL ->"
|
||||
}
|
||||
|
||||
public OnPluginStart()
|
||||
{
|
||||
HookEvent("player_say", Event_PlayerChat, EventHookMode_Pre);
|
||||
cv_limit = CreateConVar("sm_sg_limit", "3", "Set Inslut-limit");
|
||||
HookConVarChange(cv_limit, OnLimitChange);
|
||||
|
||||
new String:path[500];
|
||||
BuildPath(Path_SM, path, sizeof(path), "configs/badwords.txt");
|
||||
ReadTextFile(path);
|
||||
|
||||
var_limit = GetConVarInt(cv_limit);
|
||||
|
||||
AutoExecConfig(true);
|
||||
}
|
||||
|
||||
public OnLimitChange(Handle:cvar, const String:oldVal[], const String:newVal[])
|
||||
{
|
||||
var_limit = StringToInt(newVal);
|
||||
}
|
||||
|
||||
public Event_PlayerChat(Handle:event, const String:name[], bool:dontBroadcast)
|
||||
{
|
||||
new uid = GetEventInt(event, "userid");
|
||||
new client = GetClientOfUserId(uid);
|
||||
|
||||
new String:text[200];
|
||||
GetEventString(event, "text", text, sizeof(text));
|
||||
|
||||
new String:splitedtext[150][100];
|
||||
new sdsize = ExplodeString(text, " ", splitedtext, 150, 100);
|
||||
|
||||
for (new i = 0; i < sdsize; i++)
|
||||
{
|
||||
for (new k = 0; k < wordcount; k++)
|
||||
{
|
||||
if (ReplaceString(splitedtext[i], 100, badwords[k], "*******", false) > 0)
|
||||
{
|
||||
clientpunkte[client]++;
|
||||
PrintToChat(client, "\x04Insults are disallowed on this server! Waring %i/%i", clientpunkte[client], var_limit);
|
||||
if (clientpunkte[client] >= 3)
|
||||
{
|
||||
KickClient(client, "Insults are not allowed -> limit reached (%i)", var_limit);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ReadTextFile(String:file[])
|
||||
{
|
||||
new Handle:filehandle = OpenFile(file, "r");
|
||||
new String:firstline[500];
|
||||
ReadFileString(filehandle, firstline, sizeof(firstline));
|
||||
CloseHandle(filehandle);
|
||||
new String:splitedfirstline[50][100];
|
||||
wordcount = ExplodeString(firstline, ",", splitedfirstline, 50, 100);
|
||||
new i = 0;
|
||||
|
||||
while (i != wordcount)
|
||||
{
|
||||
badwords[i] = splitedfirstline[i];
|
||||
i++;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user