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 */