#pragma semicolon 1
#include <sdkhooks>
#include <sourcemod>
#define PLUGIN_VERSION "1.1"
public Plugin:myinfo =
{
name = "Clean Chat",
author = "Monomizer",
version = PLUGIN_VERSION,
};
public OnPluginStart()
{
HookEvent("player_connect", Event_PlayerConnect, EventHookMode_Pre);
HookEvent("player_disconnect", Event_PlayerDisconnect, EventHookMode_Pre);
HookEventEx("player_changename", Event_PlayerChangename, EventHookMode_Pre);
HookEvent("server_cvar", Event_Cvar, EventHookMode_Pre);
HookEvent("player_team", Event_PlayerTeam, EventHookMode_Pre);
HookUserMessage(GetUserMessageId("TextMsg"), Hook_TextMsg, true);
// HookUserMessage(GetUserMessageId("HintText"), Hook_TextMsg, true);
}
public OnClientAuthorized(client, const String:auth[])
{
decl String:clientname[128];
GetClientName(client,clientname,sizeof(clientname));
}
public Action:Event_PlayerConnect(Handle:event, const String:name[], bool:dontBroadcast)
{
if(!dontBroadcast)
{
SetEventBroadcast(event, true);
}
}
public Action:Event_PlayerDisconnect(Handle:event, const String:name[], bool:dontBroadcast)
{
if(!dontBroadcast)
{
SetEventBroadcast(event, true);
new client = GetClientOfUserId(GetEventInt(event, "userid"));
decl String:clientname[128];
GetClientName(client,clientname,sizeof(clientname));
}
}
public Action:Hook_TextMsg(UserMsg:msg_id, Handle:pb, const players[], playersNum, bool:reliable, bool:init)
{
decl String:message[256];
PbReadString(pb, "params", message, sizeof(message), 0);
if (StrContains(message, "teammate_attack") != -1)
return Plugin_Handled;
if (StrContains(message, "Killed_Teammate") != -1)
return Plugin_Handled;
return Plugin_Continue;
}
public Action:Hook_HintText(UserMsg:msg_id, Handle:pb, const players[], playersNum, bool:reliable, bool:init)
{
decl String:message[256];
PbReadString(pb, "params", message, sizeof(message), 0);
if (StrContains(message, "spotted_a_friend") != -1)
return Plugin_Handled;
if (StrContains(message, "careful_around_teammates") != -1)
return Plugin_Handled;
if (StrContains(message, "try_not_to_injure_teammates") != -1)
return Plugin_Handled;
return Plugin_Continue;
}
public Action:Event_Cvar(Handle:event, const String:name[], bool:dontBroadcast)
{
if(!dontBroadcast)
{
SetEventBroadcast(event, true);
}
}
public Action:Event_PlayerChangename(Handle:event, const String:name[], bool:dontBroadcast)
{
if(!dontBroadcast)
{
SetEventBroadcast(event, true);
}
}
public Action:Event_PlayerTeam(Handle:event, const String:name[], bool:dontBroadcast)
{
if(!dontBroadcast)
{
SetEventBroadcast(event, true);
}
}