#include <amxmodx> #include <orpheu> new OrpheuFunction:HandleFuncNETQueuePacket; new OrpheuFunction:HandleFuncConPrintf; new OrpheuHook:HandleHookConPrintf; public plugin_init() { register_plugin( "Ban NET Packet Spammer", "1.0.2", "Arkshine" ); HandleFuncNETQueuePacket = OrpheuGetFunction( "NET_QueuePacket" ); HandleFuncConPrintf = OrpheuGetFunction( "Con_Printf" ); OrpheuRegisterHook( HandleFuncNETQueuePacket, "NET_QueuePacket_Pre", OrpheuHookPre ); OrpheuRegisterHook( HandleFuncNETQueuePacket, "NET_QueuePacket_Post", OrpheuHookPost ); } public NET_QueuePacket_Pre() { HandleHookConPrintf = OrpheuRegisterHook( HandleFuncConPrintf, "Con_Printf" ); } public Con_Printf( const fmt[], const arg[] ) { static const message[] = "Oversize packet from"; if( contain( fmt, message ) > 0 ) { new ip[ 16 ]; copyc( ip, charsmax( ip ), arg, ':' ); log_to_file( "NET_Packet_Spammer.log", "Blokkolva %s", ip ); server_cmd( "addip 0 ^"%s^"", ip ); server_exec(); } } public NET_QueuePacket_Post() { OrpheuUnregisterHook( HandleHookConPrintf ); }