From e27be889422495d1c7e7f4991f7889a4b1fce2c6 Mon Sep 17 00:00:00 2001 From: lotodore Date: Sat, 27 Oct 2007 19:53:04 +0000 Subject: [PATCH] Fixed bug when kicking during game. --- src/net/common/servergamestate.cpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/net/common/servergamestate.cpp b/src/net/common/servergamestate.cpp index 823ab208..2e63871e 100644 --- a/src/net/common/servergamestate.cpp +++ b/src/net/common/servergamestate.cpp @@ -168,7 +168,14 @@ AbstractServerGameStateReceiving::Process(ServerGameThread &server) } else if (packet->ToNetPacketKickPlayer()) { - server.MoveSessionToLobby(session, NTF_NET_REMOVED_KICKED); + // Only admins are allowed to kick. + if (session.playerData->GetRights() == PLAYER_RIGHTS_ADMIN) + { + NetPacketKickPlayer::Data kickPlayerData; + packet->ToNetPacketKickPlayer()->GetData(kickPlayerData); + + server.InternalKickPlayer(kickPlayerData.playerId); + } } // Chat text is always allowed. else if (packet->ToNetPacketSendChatText()) @@ -330,17 +337,6 @@ ServerGameStateInit::InternalProcess(ServerGameThread &server, SessionWrapper se server.SetState(ServerGameStateWaitAck::Instance()); } } - else if (packet->ToNetPacketKickPlayer()) - { - // Only admins are allowed to kick. - if (session.playerData->GetRights() == PLAYER_RIGHTS_ADMIN) - { - NetPacketKickPlayer::Data kickPlayerData; - packet->ToNetPacketKickPlayer()->GetData(kickPlayerData); - - server.InternalKickPlayer(kickPlayerData.playerId); - } - } else { server.SessionError(session, ERR_SOCK_INVALID_PACKET);