Fixed bug when kicking during game.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user