core/smn_banning.cpp
changeset 1425 ac6b2fd99743
parent 1424 34b4d6cbb670
child 1426 02e4b4a871ba
     1.1 --- a/core/smn_banning.cpp	Fri Sep 14 02:14:35 2007 +0000
     1.2 +++ b/core/smn_banning.cpp	Fri Sep 14 02:20:23 2007 +0000
     1.3 @@ -305,18 +305,10 @@
     1.4  		g_pOnBanClient->Execute(NULL);
     1.5  	}
     1.6  
     1.7 -	if ((ban_flags & BANFLAG_NOKICK) != BANFLAG_NOKICK)
     1.8 +	/* Sanitize the kick message */
     1.9 +	if (kick_message[0] == '\0')
    1.10  	{
    1.11 -		/* Build a kick message */
    1.12 -		const char *kick_message = "";
    1.13 -		pContext->LocalToString(params[5], (char **)&kick_message);	
    1.14 -		if (kick_message[0] == '\0')
    1.15 -		{
    1.16 -			kick_message = "Kicked";
    1.17 -		}
    1.18 -
    1.19 -		/* Disconnect the client now */
    1.20 -	    pClient->Disconnect("%s", kick_message);
    1.21 +		kick_message = "Kicked";
    1.22  	}
    1.23  
    1.24  	if ((ban_flags & BANFLAG_IP) == BANFLAG_IP)
    1.25 @@ -337,6 +329,12 @@
    1.26  			"addip %d %s\n",
    1.27  			ban_time,
    1.28  			ip);
    1.29 +
    1.30 +		/* Kick, then ban */
    1.31 +		if ((ban_flags & BANFLAG_NOKICK) != BANFLAG_NOKICK)
    1.32 +		{
    1.33 +    		pClient->Disconnect("%s", kick_message);
    1.34 +		}
    1.35  		engine->ServerCommand(command);
    1.36  
    1.37  		/* Physically write the ban */
    1.38 @@ -355,6 +353,12 @@
    1.39  			"banid %d %s\n", 
    1.40  			ban_time,
    1.41  			pPlayer->GetAuthString());
    1.42 +
    1.43 +		/* Kick, then ban */
    1.44 +		if ((ban_flags & BANFLAG_NOKICK) != BANFLAG_NOKICK)
    1.45 +		{
    1.46 +    		pClient->Disconnect("%s", kick_message);
    1.47 +		}
    1.48  		engine->ServerCommand(command);
    1.49  
    1.50  		/* Physically write the ban if it's permanent */