1.1 --- a/core/smn_player.cpp Tue Oct 11 19:47:20 2011 -0400
1.2 +++ b/core/smn_player.cpp Tue Oct 11 19:50:53 2011 -0400
1.3 @@ -1307,17 +1307,6 @@
1.4 return 1;
1.5 }
1.6
1.7 - pPlayer->MarkAsBeingKicked();
1.8 -
1.9 - if (pPlayer->IsFakeClient())
1.10 - {
1.11 - char kickcmd[40];
1.12 - UTIL_Format(kickcmd, sizeof(kickcmd), "kick %s\n", pPlayer->GetName());
1.13 -
1.14 - engine->ServerCommand(kickcmd);
1.15 - return 1;
1.16 - }
1.17 -
1.18 g_SourceMod.SetGlobalTarget(client);
1.19
1.20 char buffer[256];
1.21 @@ -1328,6 +1317,15 @@
1.22 return 0;
1.23 }
1.24
1.25 + if (pPlayer->IsFakeClient())
1.26 + {
1.27 + // Kick uses the kickid command for bots. It is already delayed
1.28 + // until the next frame unless someone flushes command buffer
1.29 + pPlayer->Kick(buffer);
1.30 + return 1;
1.31 + }
1.32 +
1.33 + pPlayer->MarkAsBeingKicked();
1.34 g_HL2.AddDelayedKick(client, pPlayer->GetUserId(), buffer);
1.35
1.36 return 1;
1.37 @@ -1347,23 +1345,6 @@
1.38 return pContext->ThrowNativeError("Client %d is not connected", client);
1.39 }
1.40
1.41 - /* Ignore duplicate kicks */
1.42 - if (pPlayer->IsInKickQueue())
1.43 - {
1.44 - return 1;
1.45 - }
1.46 -
1.47 - pPlayer->MarkAsBeingKicked();
1.48 -
1.49 - if (pPlayer->IsFakeClient())
1.50 - {
1.51 - char kickcmd[40];
1.52 - UTIL_Format(kickcmd, sizeof(kickcmd), "kick %s\n", pPlayer->GetName());
1.53 -
1.54 - engine->ServerCommand(kickcmd);
1.55 - return 1;
1.56 - }
1.57 -
1.58 g_SourceMod.SetGlobalTarget(client);
1.59
1.60 char buffer[256];