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);