From 9cab1e3ab7c5da364bcae6ae41e98ba6e3b94a1f Mon Sep 17 00:00:00 2001 From: systematicmania Date: Thu, 18 Jul 2013 11:38:04 -0400 Subject: [PATCH] Fixed clients not being marked as in kick queue in some cases (bug 5746, r=psychonic). --- core/HalfLife2.cpp | 8 ++++++++ core/smn_player.cpp | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/HalfLife2.cpp b/core/HalfLife2.cpp index dfbaf620..98389426 100644 --- a/core/HalfLife2.cpp +++ b/core/HalfLife2.cpp @@ -831,6 +831,14 @@ const char *CHalfLife2::CurrentCommandName() void CHalfLife2::AddDelayedKick(int client, int userid, const char *msg) { + CPlayer *pPlayer = g_Players.GetPlayerByIndex(client); + if (!pPlayer || !pPlayer->IsConnected() || pPlayer->IsInKickQueue()) + { + return; + } + + pPlayer->MarkAsBeingKicked(); + DelayedKickInfo kick; kick.client = client; diff --git a/core/smn_player.cpp b/core/smn_player.cpp index ca3f8416..c7752595 100644 --- a/core/smn_player.cpp +++ b/core/smn_player.cpp @@ -1400,7 +1400,6 @@ static cell_t KickClient(IPluginContext *pContext, const cell_t *params) return 1; } - pPlayer->MarkAsBeingKicked(); g_HL2.AddDelayedKick(client, pPlayer->GetUserId(), buffer); return 1;