#include <sourcemod>
#include <console>
#include <vip_core>
#include <clientprefs>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo = 
{
	name		= "[VIP] Weapon Knives",
	author	= "xstage",
	version	= "1.0.2"
};

Database g_hDatabase;

public void OnPluginStart()
{
	ConVar g_DBConVar; char sValue[128];
	g_DBConVar = FindConVar("sm_weapons_db_connection");
	g_DBConVar.GetString(sValue, sizeof sValue);
	Database.Connect(Connect_CallBack, sValue);
	
	RegConsoleCmd("sm_ws", RegBlockMenu);
	RegConsoleCmd("sm_knife", RegBlockMenu);
}

public void VIP_OnClientLoaded(int client, bool vip)
{
	if(!vip)
	{
		char sQuery[256], sSteamClient[64];
		GetClientAuthId(client, AuthId_Steam2, sSteamClient, sizeof sSteamClient);
		FormatEx(sQuery, sizeof sQuery, "DELETE FROM `weapons` WHERE `steamid` == '%s'", sSteamClient);
		SQL_LockDatabase(g_hDatabase);
		g_hDatabase.Query(Connect_UpdateClient, sQuery, client);
		SQL_UnlockDatabase(g_hDatabase);
	}
}

public Action RegBlockMenu(int client, int args)
{
	if(!VIP_IsClientVIP(client))
	{
		VIP_PrintToChatClient(client, "Данная функция доступна только игрокам с VIP-статусом");
		Panel hPanel = new Panel();
		hPanel.DrawText("Данная функция доступна только игрокам с VIP-статусом");
		hPanel.Send(client, Panel_CallBack, 1);
		CloseHandle(hPanel);
	}
	return Plugin_Handled;
}

public int Panel_CallBack(Menu menu, MenuAction actions, int item, int client){}

public void Connect_UpdateClient(Database db, DBResultSet results, const char[] error, int client){ if(error[0]) SetFailState("[VIP] Weapon Skins :: Error DataBase"); }
public void Connect_CallBack(Database db, const char[] error, any data){ if(error[0]) SetFailState("[VIP] Weapon Skins :: Error Connect DataBase"); g_hDatabase = db; }