PHP Code:
#pragma semicolon 1
#define DEBUG
#define PLUGIN_AUTHOR "MegoltElek"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_DESCRIPTION "Block ip in chat"
Handle g_rIP;
char g_szWhitelist[][] = {
"IP"
};
#include <sourcemod>
#include <regex>
public Plugin myinfo = {
name = "[ANY] Block ip in chat",
author = PLUGIN_AUTHOR,
description = PLUGIN_DESCRIPTION,
version = PLUGIN_VERSION,
url = "https://steamcommunity.com/id/megoltelekhun/"
};
public void OnPluginStart(){
g_rIP = CompileRegex("\\d+\\D+\\d+\\D+\\d+\\D+\\d+");
AddCommandListener(Cmd_Say, "say");
AddCommandListener(Cmd_Say, "say_team");
LoadTranslations("common.phrases");
}
public Action Cmd_Say(int client, const char[] szCommand, int args){
if (IsValidClient(client)){
char szText[512];
GetCmdArgString(szText, sizeof(szText));
if (MatchRegex(g_rIP, szText) > 0 && !IsWhitelisted(szText)){
StripQuotes(szText);
return Plugin_Handled;
}
}
return Plugin_Changed;
}
stock bool IsWhitelisted(const char[] szIP){
for (int i = 0; i < sizeof(g_szWhitelist); i++){
if (StrEqual(szIP, g_szWhitelist[i])){
return true;
}
}
return false;
}
stock bool IsValidClient(int client){
if (client >= 1 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client) && !IsClientSourceTV(client) && !IsClientReplay(client)){
return true;
}
return false;
}
I enabled whitelisting of IP's