#pragma semicolon 1

#define PLUGIN_AUTHOR "null138"
#define PLUGIN_VERSION "1.00"

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

public Plugin myinfo = 
{
	name = "Anti KnifeBot",
	author = PLUGIN_AUTHOR,
	description = "Blocks KnifeBot plugin features",
	version = PLUGIN_VERSION,
	url = "https://steamcommunity.com/id/null138/"
}

public Action OnPlayerRunCmd(int client, int &buttons)
{
	static bool bLastBlocked[MAXPLAYERS + 1];
	
	if(IsClientInGame(client) && !IsFakeClient(client) && IsPlayerAlive(client))
	{
		if(bLastBlocked[client])
		{	
			bLastBlocked[client] = false;
			return Plugin_Continue;
		}
		
		int lastButtons = GetEntProp(client, Prop_Data, "m_nOldButtons");
		
		if((buttons & IN_ATTACK && !(lastButtons & IN_ATTACK)) || (buttons & IN_ATTACK2 && !(lastButtons & IN_ATTACK2)))
		{
			int knife = GetPlayerWeaponSlot(client, 2);
			if(GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon") == knife)
			{
				buttons &= ~IN_ATTACK;
				buttons &= ~IN_ATTACK2;
				bLastBlocked[client] = true;
				return Plugin_Changed;
			}
		}
	}
	return Plugin_Continue;
}