From df3b5e3fb2061d495a88ab52d77eadb0c2bcfd28 Mon Sep 17 00:00:00 2001 From: Kyli3Boi <64275139+Kyli3Boi@users.noreply.github.com> Date: Tue, 25 May 2021 13:30:20 +0200 Subject: [PATCH] V2.0 1. Implement managing user flags 2. Cleanup code --- .../sourcemod/plugins/SurfTimer_AutoVip.smx | Bin 12507 -> 12872 bytes .../sourcemod/scripting/SurfTimer_AutoVip.sp | 138 +++++++++++------- 2 files changed, 83 insertions(+), 55 deletions(-) diff --git a/addons/sourcemod/plugins/SurfTimer_AutoVip.smx b/addons/sourcemod/plugins/SurfTimer_AutoVip.smx index 025170fedb226232c81fd0b86455abd59f64b8d6..5289b04fbfb1fdf61e23a778007c4e1b704aa87e 100644 GIT binary patch literal 12872 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 HI$!=DPs4fT literal 12507 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

Nucxw$mXdMUdbD6waSf>+atZ4!-m=WYaBvM6| z#Y=hBkL>kIJBeB9L>C_PYLD1NHXNzsh@7m}4`W zOwU|NK1Pqfp?<1Eq|Y@%Ii@VQ1&u-1%0E80Pc$9|DIyPY@TC2&J5=` z!*i=ZuZYc?HI|X`N`(xdwv4O!ns0O{!AYNi9>2x z>(QE8nET#F(?k9&qJ+zKiv)>dBa(?>DZGXCdTV1(u+MG|Qdef^g-U(ArIr&2UC z@7>`!y5(NvsSe*(-fQP)rUme?0=li9XtbW%;(7hY1SYp)oJzK!4D&hKY|>K_Jt zIurzsAn8IhD8mkeF}WO1>xEs1MP*IHpKtu+hU0`hdD6ZO=7duOeJcnN3>XQZlAV;$ zhM(SYR1Q-7Qdz^%124e~JsNcTR$IZ-r zW}Iaa!fgq~$|H;Fq#p&WM~XHU2zJEynitB$`<@+BpGJL}zlR{1LX4i0wQ`hIeIDgl zw;Cig&hZ=$O5I7v>X0%uE$@d{KFcG;|C?IyKoVku(HJi{8t&=X2_5)Y^Kw;ot?8B* z#L{{?j}Jk<2pOMn^Ab+`(K^LZ?iQ5W^ZidpE-$xcm9MeCEP%zNX~&y);utPIEwNP{ z!@KoF`#8AA2CdPS_2XD83zyAA(l;lJn&ZQYY}qyA80|Jq7R?18SS4D!Je+TWeNqay z@yiF;6IaBi*2ErAMf1T-PWwBU^;5%VGD3AGZLP^Y$=D0+6KvTv+3i@$bM;E!4ZU;) zfQ+Z6xR(%FQT|k!6KYQTP#TEjk;rqyf>Pdzv|T&gMtb3mCw1M0w?Z8=G%W9oI0&C0 zxkGeycwR(*0Nj#=kb-LulQwSIjz`Io&Vjk|X!e@?N2OyI(A&YnEYbJW&8gKNzDsMt2p3G|SkC Mu05h-eHWMhAHfg8)c^nh diff --git a/addons/sourcemod/scripting/SurfTimer_AutoVip.sp b/addons/sourcemod/scripting/SurfTimer_AutoVip.sp index b111b19..2c60db0 100644 --- a/addons/sourcemod/scripting/SurfTimer_AutoVip.sp +++ b/addons/sourcemod/scripting/SurfTimer_AutoVip.sp @@ -12,7 +12,7 @@ public Plugin myinfo = name = "SurfTimer_AutoVip", author = "Kyli3_Boi", description = "Automatically manage VIP for highest ranked players. For use on a surf server running SurfTimer", - version = "1.0", + version = "2.0", url = "https://github.com/Kyli3Boi" }; @@ -27,6 +27,7 @@ ConVar g_hAutoVipTitleLevel2 = null; // Title to give VIPs for VIP level 2 ConVar g_hAutoVipTitleLevel3 = null; // Title to give VIPs for VIP level 3 ConVar g_hAutoVipRemoveType = null; // On VIP removal do you want to just disable player or delete player ConVar g_hAutoVipEnableDebug = null; // Enable/Disable debug messages +ConVar g_hAutoVipAdminFlag = null; // Flag to give temp admins // Array Handles // Handle g_szSteamID = null; @@ -37,6 +38,9 @@ Handle g_szAutoVipList = null; // Bool bool g_bAutoVipDebug = false; // Bool for debug messages +// Int +int g_iAdminFlag; + // SQL // Handle g_hDb = null; // Database Handle @@ -50,7 +54,7 @@ char sql_InsertVip[] = "INSERT INTO ck_vipadmins (steamid, title, namecolour, te char sql_UpdateVip[] = "UPDATE ck_vipadmins SET inuse = 1, vip = %i, active = 1 WHERE steamid = '%s'"; char sql_DisableVip[] = "UPDATE ck_vipadmins SET inuse = 0, vip = 0, active = 0 WHERE steamid = '%s'"; char sql_DeleteVip[] = "DELETE FROM ck_vipadmins where steam id = '%s'"; -char sql_CreateTable[] = "CREATE TABLE IF NOT EXISTS `autovip` (`steamid` varchar(32) NOT NULL DEFAULT '', PRIMARY KEY (`steamid`)) DEFAULT CHARSET=utf8mb4;"; +char sql_CreateAutoVipTable[] = "CREATE TABLE IF NOT EXISTS `autovip` (`steamid` varchar(32) NOT NULL DEFAULT '', PRIMARY KEY (`steamid`)) DEFAULT CHARSET=utf8mb4;"; char sql_TruncateAutoVip[] = "TRUNCATE TABLE autovip"; char sql_SaveTopPlayer[] = "INSERT INTO autovip (steamid) VALUES ('%s')"; char sql_GetAutoVipList[] = "SELECT steamid FROM autovip"; @@ -59,47 +63,88 @@ char sql_GetAutoVipList[] = "SELECT steamid FROM autovip"; public void OnPluginStart() { - CreateConVars(); + //Create ConVars + AutoExecConfig_SetCreateDirectory(true); + AutoExecConfig_SetCreateFile(true); + AutoExecConfig_SetFile("surftimer_AutoVip"); + + g_hAutoVipEnabled = AutoExecConfig_CreateConVar("sm_autovip_enabled", "1", "Give VIP to top players 0 - Disabled | 1 - Enabled", FCVAR_NOTIFY); + g_hAutoVipNumber = AutoExecConfig_CreateConVar("sm_autovip_number", "1", "Number of top players that should recieve VIP", FCVAR_NOTIFY, true, 1.0, true, 20.0); + g_hAutoVipLevel = AutoExecConfig_CreateConVar("sm_autovip_viplevel", "1", "The level of VIP top players should recieve"); + g_hAutoVipTitleLevel1 = AutoExecConfig_CreateConVar("sm_autovip_title1", "[{lime}VIP{default}]", "Title to give when using VIP level 1"); + g_hAutoVipTitleLevel2 = AutoExecConfig_CreateConVar("sm_autovip_title2", "[{pink}Super VIP{default}]", "Title to give when using VIP level 2"); + g_hAutoVipTitleLevel3 = AutoExecConfig_CreateConVar("sm_autovip_title3", "[{darkred}Superior VIP{default}]", "Title to give when using VIP level 3"); + g_hAutoVipRemoveType = AutoExecConfig_CreateConVar("sm_autovip_removetype", "0", "The way in which to remove VIP from a player 0 - Disable player VIP | 1 - Delete player from VIP table in database"); + g_hAutoVipEnableDebug = AutoExecConfig_CreateConVar("sm_autovip_debug", "0", "Print debug messages to server 0 - Disabled | 1 - Enabled"); + g_hAutoVipAdminFlag = AutoExecConfig_CreateConVar("sm_autovip_adminflag", "a", "The admin flag to give to VIPs (surftimer default \"a\")"); + + AutoExecConfig_ExecuteFile(); + AutoExecConfig_CleanFile(); + + // Connect to DB + db_Connect(); + + // Set debug bool + g_bAutoVipDebug = GetConVarBool(g_hAutoVipEnableDebug); + + // Make sure VIP flag is valid + char szAdminFlag[24]; + AdminFlag bufferAdminFlag; + bool adminFlagValid; + + GetConVarString(g_hAutoVipAdminFlag, szAdminFlag, sizeof(szAdminFlag)); + adminFlagValid = FindFlagByChar(szAdminFlag[0], bufferAdminFlag); + if(!adminFlagValid) + { + PrintToServer("[surftimer_AutoVip] Invalid sm_autovip_adminflag, setting to default"); + g_iAdminFlag = ADMFLAG_RESERVATION; + } + else + { + g_iAdminFlag = FlagToBit(bufferAdminFlag); + } } public void OnMapStart() { - db_Connect(); - + // Create Arrays g_szSteamID = CreateArray(32); g_szName = CreateArray(64); g_szCurrentVipList = CreateArray(32); g_szAutoVipList = CreateArray(32); - g_bAutoVipDebug = GetConVarBool(g_hAutoVipEnableDebug); + db_GetTopPlayers(); } -public void OnMapEnd() +public void OnClientPostAdminFilter(int client) { - CloseHandle(g_szSteamID); - CloseHandle(g_szName); - CloseHandle(g_szCurrentVipList); - CloneHandle(g_szAutoVipList); - CloseHandle(g_hDb); + if (!IsFakeClient(client)) + { + CreateTempVip(client); + } } -public void CreateConVars() +public void CreateTempVip(int client) { - AutoExecConfig_SetCreateDirectory(true); - AutoExecConfig_SetCreateFile(true); - AutoExecConfig_SetFile("surftimer_AutoVip"); + if (g_bAutoVipDebug) + { + PrintToServer("[surftimer_AutoVip] Checking if player should be assigned VIP flag"); + } + + if (!IsFakeClient(client)) + { + char szSteamId[32]; + int index; - g_hAutoVipEnabled = AutoExecConfig_CreateConVar("sm_autovip_enabled", "1", "Give VIP to top players 0 - Disabled | 1 - Enabled", FCVAR_NOTIFY); - g_hAutoVipNumber = AutoExecConfig_CreateConVar("sm_autovip_number", "1", "Number of top players that should recieve VIP", FCVAR_NOTIFY, true, 1.0, true, 20.0); - g_hAutoVipLevel = AutoExecConfig_CreateConVar("sm_autovip_viplevel", "1", "The level of VIP top players should recieve"); - g_hAutoVipTitleLevel1 = AutoExecConfig_CreateConVar("sm_autovip_title1", "[{lime}VIP{default}]", "Title to give when using VIP level 1"); - g_hAutoVipTitleLevel2 = AutoExecConfig_CreateConVar("sm_autovip_title2", "[{pink}Super VIP{default}]", "Title to give when using VIP level 2"); - g_hAutoVipTitleLevel3 = AutoExecConfig_CreateConVar("sm_autovip_title3", "[{darkred}Superior VIP{default}]", "Title to give when using VIP level 3"); - g_hAutoVipRemoveType = AutoExecConfig_CreateConVar("sm_autovip_removetype", "0", "The way in which to remove VIP from a player 0 - Disable player VIP | 1 - Delete player from VIP table in database"); - g_hAutoVipEnableDebug = AutoExecConfig_CreateConVar("sm_autovip_debug", "0", "Print debug messages to server 0 - Disabled | 1 - Enabled"); + GetClientAuthId(client, AuthId_Steam2, szSteamId, sizeof(szSteamId), true); + + index = FindStringInArray(g_szSteamID, szSteamId); - AutoExecConfig_ExecuteFile(); - AutoExecConfig_CleanFile(); + if (index != -1) + { + SetUserFlagBits(client, g_iAdminFlag); + } + } } public void db_Connect() @@ -125,12 +170,7 @@ public void db_Connect() } else { - if (g_bAutoVipDebug) - { - PrintToServer("[surftimer_AutoVip] is not enabled"); - } - - return; + SetFailState("[surftimer_AutoVip] is not enabled"); } } @@ -155,7 +195,7 @@ public void db_CheckTables() if (!SQL_FastQuery(g_hDb, sql_CheckAutoVip)) { - db_CreateAutoVipTable(); + SQL_FastQuery(g_hDb, sql_CreateAutoVipTable); } else { @@ -163,22 +203,9 @@ public void db_CheckTables() { PrintToServer("[surftimer_AutoVip] Required autovip DB table found"); } - - CreateTimer(5.0, GetTopPlayers, _, TIMER_FLAG_NO_MAPCHANGE); } } -public void db_CreateAutoVipTable() -{ - SQL_FastQuery(g_hDb, sql_CreateTable); - CreateTimer(5.0, GetTopPlayers, _, TIMER_FLAG_NO_MAPCHANGE); -} - -public Action GetTopPlayers(Handle timer) -{ - db_GetTopPlayers(); - return Plugin_Handled; -} public void db_GetTopPlayers() { @@ -242,11 +269,7 @@ public void db_GetTopPlayersCallback(Handle owner, Handle hndl, const char[] err public void db_GetCurrentAutoVipPlayers() { - char szQuery[128]; - - Format(szQuery, 128, sql_GetAutoVipList); - SQL_TQuery(g_hDb, db_GetCurrentAutoVipPlayersCallback, szQuery, DBPrio_Low); - + SQL_TQuery(g_hDb, db_GetCurrentAutoVipPlayersCallback, sql_GetAutoVipList, DBPrio_Low); } public void db_GetCurrentAutoVipPlayersCallback(Handle owner, Handle hndl, const char[] error, any data) @@ -319,10 +342,7 @@ public void db_SaveTopPlayers() public void db_GetCurrentVipList() { - char szQuery[128]; - - Format(szQuery, 128, sql_GetCurrentVipList); - SQL_TQuery(g_hDb, db_GetCurrentVipListCallback, szQuery, DBPrio_Low); + SQL_TQuery(g_hDb, db_GetCurrentVipListCallback, sql_GetCurrentVipList, DBPrio_Low); } public void db_GetCurrentVipListCallback(Handle owner, Handle hndl, const char[] error, any data) @@ -465,4 +485,12 @@ public void db_RemoveVipCallback(Handle owner, Handle hndl, const char[] error, LogError("[surftimer_AutoVip] SQL Error (db_RemoveVipCallback): %s", error); return; } +} + +public void OnMapEnd() +{ + CloseHandle(g_szSteamID); + CloseHandle(g_szName); + CloseHandle(g_szCurrentVipList); + CloneHandle(g_szAutoVipList); } \ No newline at end of file