#include #define _ban_module //#define _mute_module //#define _steam_backend #if defined _ban_module #include "modules/bans.sp" #endif #if defined _mute_module #include "modules/mutes.sp" #endif #define PLUGIN_VERSION "2.0" public Plugin:myinfo = { name = "Facti13 System Browser", author = "gsd", description = "Threaded mysql control plugin", version = PLUGIN_VERSION, url = "https://vk.me/re1ard" }; char g_Database_Name[32] = "sql_bans"; char g_MainChatPrefix[32] = "[FSB]" //MAIN public OnPluginStart() { LoadConfig(); SetupDB(); #if defined _mute_module MuteSetup() #endif RegAdminCmd("sm_fsb_reload", COMMAND_ReloadCfg, ADMFLAG_ROOT); } public OnPluginEnd() { #if defined _mute_module MuteDeSetup() #endif } public OnClientAuthorized(int client) { if(IsFakeClient(client)) { return; } #if defined _ban_module BanCheckPlayer(client); #endif #if defined _mute_module MuteCheckPlayer(client); #endif } public OnClientDisconnect(int client) { #if defined _mute_module MuteClearPlayer(client); #endif } //MYSQL CALLBACK public GotDatabase(Handle:owner, Handle:hndl, const String:error[], any:data) { if (hndl == INVALID_HANDLE) { LogError("%s Database Connection Error: %s", g_MainChatPrefix, error); } else { LogError("%s Database Connected", g_MainChatPrefix); /////////////////////////////// #if defined _ban_module g_hBansDatabase = hndl; #endif /////////////////////////////// #if defined _mute_module g_hMuteDatabase = hndl; #endif } } //FUNCTIONS stock void SetupDB(){ SQL_TConnect(GotDatabase, g_Database_Name); } stock void LoadConfig(){ char confPath[256]; BuildPath(Path_SM, confPath, sizeof(confPath), "configs/fsb.cfg"); PrintToServer("%s Loading config from file: %s", g_MainChatPrefix, confPath); char main_kv[32] = "fsb"; KeyValues FSB_config = new KeyValues(main_kv); ///////////////////////////////////////////////////////////////////////////////////////////// if(FSB_config.ImportFromFile(confPath)){ FSB_config.JumpToKey("responds"); #if defined _ban_module FSB_config.GetString("ban", g_Responde_ClientInBan, sizeof(g_Responde_ClientInBan)); FSB_config.GetString("perma_ban", g_Responde_ClientInPermaBan, sizeof(g_Responde_ClientInPermaBan)); FSB_config.GetString("detect_new_client", g_Responde_DetectNewClient, sizeof(g_Responde_DetectNewClient)); #endif FSB_config.Rewind(); ///////////////////////// FSB_config.JumpToKey("settings"); #if defined _ban_module FSB_config.GetString("bans_tablename", g_BansTableName, sizeof(g_BansTableName)); FSB_config.GetString("ban_prefix", g_BansChatPrefix, sizeof(g_BansChatPrefix)); FSB_config.GetString("localhost", g_LocalhostIP, sizeof(g_LocalhostIP)); #endif FSB_config.Rewind(); ///////////////////////// #if defined _steam_backend char address[64]; int port; FSB_config.JumpToKey("steam_backend"); FSB_config.GetString("address", address, sizeof(address)); port = FSB_config.GetNum("port") SetupBackend(address, port); #endif //FSB_config.GetString("mute_tablename", g_MuteTableName, sizeof(g_MuteTableName)); PrintToServer("%s Success load config!", g_MainChatPrefix); } } //ACTIONS public Action:COMMAND_ReloadCfg(int cid, int args){ LoadConfig(); if (cid == 0){ PrintToServer("%s Конфигурация была перезагружена.", g_MainChatPrefix); } else { PrintToChat(cid, "%s Конфигурация была перезагружена.", g_MainChatPrefix); } return Plugin_Handled; }