core/smn_player.cpp
changeset 3400 6e39456566fe
parent 2961 c3bb13e8760b
child 3418 b0e93f5101ef
     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];