Fixed bug when kicking during game.

This commit is contained in:
lotodore
2007-10-27 19:53:04 +00:00
parent 6b19b3291a
commit e27be88942
+8 -12
View File
@@ -168,7 +168,14 @@ AbstractServerGameStateReceiving::Process(ServerGameThread &server)
} }
else if (packet->ToNetPacketKickPlayer()) 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. // Chat text is always allowed.
else if (packet->ToNetPacketSendChatText()) else if (packet->ToNetPacketSendChatText())
@@ -330,17 +337,6 @@ ServerGameStateInit::InternalProcess(ServerGameThread &server, SessionWrapper se
server.SetState(ServerGameStateWaitAck::Instance()); 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 else
{ {
server.SessionError(session, ERR_SOCK_INVALID_PACKET); server.SessionError(session, ERR_SOCK_INVALID_PACKET);