From d3035be21dd6462b941f49963b467d8e81f6ebd8 Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 21 Jul 2022 22:53:52 -0500 Subject: [PATCH] Send message if vote kicked admin was afk, some debug info --- plugins/L4D2FFKickProtection.smx | Bin 5960 -> 6068 bytes scripting/L4D2FFKickProtection.sp | 39 ++++++++++++++++++------------ 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/plugins/L4D2FFKickProtection.smx b/plugins/L4D2FFKickProtection.smx index 1a7b2b19a37d0b044af95a5ef927c5fc2d1b3a1b..f7de4bb0fc8f8638ee3f200a39b6dcd12fcab393 100644 GIT binary patch delta 5895 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 delta 5787 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 diff --git a/scripting/L4D2FFKickProtection.sp b/scripting/L4D2FFKickProtection.sp index 4172e18..2267be6 100644 --- a/scripting/L4D2FFKickProtection.sp +++ b/scripting/L4D2FFKickProtection.sp @@ -1,7 +1,8 @@ #pragma semicolon 1 #pragma newdecls required -#define PLUGIN_VERSION "1.0" +#define ANTI_ADMIN_KICK_MIN_TIME 120 // The number of seconds after joining where vote kicking an admin, kicks the caller +#define PLUGIN_VERSION "1.1" #include #include @@ -10,8 +11,6 @@ static int disableFFClient, ffDamageCount; //client to disable FF for static ConVar forceKickFFThreshold; -static int voteController; - public Plugin myinfo = { name = "L4D2 FF Kick Protection", author = "jackzmc", @@ -33,9 +32,6 @@ public void OnPluginStart() { forceKickFFThreshold = CreateConVar("sm_votekick_force_threshold","30.0","The threshold of amount of FF to then automatically kick.\n0: Any attempted damage\n -1: No auto kick.\n>0: When FF count > this", FCVAR_NONE, true, -1.0); } -public void OnMapStart() { - voteController = FindEntityByClassname(-1, "vote_controller"); -} int iJoinTime[MAXPLAYERS+1]; public void OnClientPutInServer(int client) { @@ -65,12 +61,12 @@ public Action VoteStart(int client, const char[] command, int argc) { } if(GetClientCount(true) == 0 || client == 0 || client >= MaxClients) return Plugin_Handled; //prevent votes while server is empty or if server tries calling vote if(argc >= 1) { - static char issue[32]; + char issue[32]; GetCmdArg(1, issue, sizeof(issue)); if(StrEqual(issue, "Kick", false)) { - static char option[32]; + char option[32]; GetCmdArg(2, option, sizeof(option)); if(strlen(option) > 1) { //empty userid/console can't call votes @@ -79,22 +75,33 @@ public Action VoteStart(int client, const char[] command, int argc) { if(client <= 0 || client >= MaxClients || !IsClientConnected(client)) return Plugin_Continue; //invalid, pass it through AdminId callerAdmin = GetUserAdmin(client); AdminId targetAdmin = GetUserAdmin(target); - if(targetAdmin != INVALID_ADMIN_ID) { //Only run if vote is against an admin + //Only run if vote is against an admin + if(targetAdmin != INVALID_ADMIN_ID) { for(int i = 1; i <= MaxClients; i++) { if(target != i && IsClientConnected(i) && IsClientInGame(i) && GetUserAdmin(i) != INVALID_ADMIN_ID) { - PrintToChat(i, "%N attempted to vote-kick %N", client, target); + PrintToChat(i, "%N attempted to vote-kick admin %N", client, target); } } - if(callerAdmin == INVALID_ADMIN_ID && GetTime() - iJoinTime[client] <= 120) { - KickClient(client, "No."); - PrintToChat(target, "%N has attempted to vote kick you and was kicked.", client); + // Kick player if they are not an admin and just recently joined. + // Else, just tell the target + if(callerAdmin == INVALID_ADMIN_ID && GetTime() - iJoinTime[client] <= ANTI_ADMIN_KICK_MIN_TIME) { + if(GetClientTeam(target) >= 2) { + KickClient(client, "No."); + PrintToChat(target, "%N has attempted to vote kick you and was kicked.", client); + } else { + PrintToChat(client, "%N is an admin and cannot be vote kicked", target); + PrintToChat(target, "%N has attempted to kick you while you were afk.", client); + } } else { PrintToChat(target, "%N has attempted to vote kick you.", client); } + // TODO: remove debug + targetAdmin.GetUsername(option, sizeof(option)); + PrintToServer("debug: admin immunity is %d. username: %s", targetAdmin.ImmunityLevel, option); + PrintToServer("ADMIN VOTE KICK BLOCKED | Target=%N | Caller=%N", target, client); return Plugin_Handled; - } else if(callerAdmin != INVALID_ADMIN_ID && targetAdmin == INVALID_ADMIN_ID && IsValidEntity(voteController)) { + } else if(callerAdmin != INVALID_ADMIN_ID && targetAdmin == INVALID_ADMIN_ID) { PrintToServer("Vote kick by admin, instantly passing"); - SetEntProp(voteController, Prop_Send, "m_votesYes", 32); for(int i = 1; i <= MaxClients; i++) { if(IsClientConnected(i) && !IsFakeClient(i) && GetClientTeam(i) == GetClientTeam(target)) { ClientCommand(i, "vote Yes"); @@ -105,7 +112,7 @@ public Action VoteStart(int client, const char[] command, int argc) { disableFFClient = target; ffDamageCount = 0; } - PrintToServer("VOTE KICK STARTED | Target=%N | Caller=%N", issue, target, client); + PrintToServer("VOTE KICK STARTED | Target=%N | Caller=%N", target, client); return Plugin_Continue; } }