#include <amxmodx>
#include <amxmisc>

new cheater_banned = 0

// Cheat Messages
stock const CheatReports[128][128] 

// !!! add more to file addons/amxmodx/configs/antisay.ini !!!

/* = {

"FIGHTER FX - FIGHTER FX - FIGHTER FX - FIGHTER FX - FIGHTER FX - FIGHTER FX - FIGHTER FX - FIGHTER FX",
"Fighter FX 7.0 code by zh4r0naX and made in Spain!!!",
"My Cheater????? your is n00b!",
"hahahahaha pwNed!!! HeadShod???? yeahHh",
"Download Fighter FX 7.0 | The Best Cheat | www.darkcheats.org",
"www.DarkCheats.org | THE BEST CHEATER COMMUNITY | Visit Now!!!",
"zh4r0naX is the king coder! download cheats in www.darkcheats.org",
"Found Admin? hahahahahaha my cheater and use Fighter FX 7.0 by zh4r0naX!!!",
"[ BaDBoY ][ v.5 ] [ By: www.united-cheaters.de.gg ]",
"[BaDBoY v.4.2] [get on www.united-cheaters.net]",
".:[Emo Tear]:.",
"Hacks!->www.csbound.com",
"@ [HLGUARD] Admin, check this player (use",
"[Emo Tear] [Kills:",
"Get more at http://sammyzworld.net/vedran/Unholy.zip",
"4uTbI ka4at TyT: www.cheats.shariki.com",
"wWw.aXe.3dn.ru The Best Counter-Strike portal",
"[BaDBoy v.5 ][www.axe.3dn.ru]",
"[ BaDBoY ][ v.5 ] [ By: www.cs.sushko.net ]",
"-][v][-Alien h4x v1 By $m@r7<0rE-][v][--Alive-",
"VDC: Redux - Frags:",
"W4R Hook v7 By [187ci] <:PrOdIgY:>",
"<:[-Kills",
"[ BaDBoY ][ v.5 ] [ By: www.united-cheaters.net ]",
"4uTbI TyT: http://",
"[BaDBoY v.",
"Download Alien h4x Reloaded from",
"Alien h4x pr!vate Kills" 

}
*/


// !!! add more to file addons/amxmodx/configs/antisay.ini !!!

public plugin_init()
{
  register_plugin("Cheat Messages Ban","1.4","dr.aft")

  register_clcmd("say", "CheckCheatReport")
  register_clcmd("say_team", "CheckCheatReport")

  register_cvar("anti_say_bantime", "7200") // 5 Days BAN (7200 minutes)
  register_cvar("anti_say_bantype", "2") // 3 - Quit cheater 2 - AMXBANS, 1 - IP, 0 - SteamID

  set_task(1.0, "EnableAntiCheat")
}

new antisaylog[64]

public EnableAntiCheat()
{
	new antisayconfig[64]
	get_configsdir(antisayconfig, 64)
	format(antisaylog, 63, "%s/antisay.log", antisayconfig)
	
        format(antisayconfig, 63, "%s/antisay.ini", antisayconfig)
	
	new line = 0
	new textsize = 0
	new text[128]
	new tempstr[128]
	new i = 0

        if (file_exists(antisayconfig))
        {
                while(read_file(antisayconfig,line,text,255,textsize))
                {
                        format(tempstr,128,"%s",text)
                        CheatReports[i++]=tempstr
                        line++
                }
        }
}


public Ban(id)
{
	new cheatername[32], ip[32], authid[32]
	get_user_name(id, cheatername, 31)	
	get_user_ip(id, ip, 31, 1)	
	get_user_authid(id, authid, 31)

	client_print(0, print_chat, "[PINGAMES ANTICHEAT] - Urpok '%s' - 4uT 'MultiHack' - Haka3aHue: 6aH...", cheatername, get_cvar_num("anti_say_bantime"))
	switch(get_cvar_num("anti_say_bantype"))
	{
		case 0:
		server_cmd("banid %d #%d Multihack; writeid", get_cvar_num("anti_say_bantime"), get_user_userid(id))		
		case 1:
		server_cmd("addip %d %s; writeip", get_cvar_num("anti_say_bantime"), ip)		
		case 3:
		client_cmd(id, "quit")
		default:
		server_cmd("amx_ban %d #%d Multihack", get_cvar_num("anti_say_bantime"), get_user_userid(id))		
		
	}
	log_to_file(antisaylog, "^"%s^" <%s> - [%s] - Multihack", cheatername, ip, authid)
	cheater_banned = 1
}

public CheckCheatReport(id)
{
	new said[192]
	cheater_banned = 0
	new i, j
	new cheatername[32]
	get_user_name(id, cheatername, 32)
	read_args(said, 192)
	for(i = 0 ; i < sizeof (CheatReports) ; i++)
	{
 		if(containi(said, CheatReports[i][j]) != -1)
		{
			if(cheater_banned == 0)
			{
				Ban(id)						
			}
		}
	}		

} 