Disallow kicking from within a game.
This commit is contained in:
@@ -186,8 +186,9 @@ AbstractServerGameStateReceiving::Process(ServerGameThread &server)
|
||||
}
|
||||
else if (packet->ToNetPacketKickPlayer())
|
||||
{
|
||||
// Only admins are allowed to kick.
|
||||
if (session.playerData->GetRights() == PLAYER_RIGHTS_ADMIN)
|
||||
// Only admins are allowed to kick, and only in the lobby.
|
||||
// After leaving the lobby, a vote needs to be initiated to kick.
|
||||
if (session.playerData->GetRights() == PLAYER_RIGHTS_ADMIN && !server.IsRunning())
|
||||
{
|
||||
NetPacketKickPlayer::Data kickPlayerData;
|
||||
packet->ToNetPacketKickPlayer()->GetData(kickPlayerData);
|
||||
@@ -195,6 +196,17 @@ AbstractServerGameStateReceiving::Process(ServerGameThread &server)
|
||||
server.InternalKickPlayer(kickPlayerData.playerId);
|
||||
}
|
||||
}
|
||||
else if (packet->ToNetPacketAskKickPlayer())
|
||||
{
|
||||
if (server.IsRunning())
|
||||
{
|
||||
NetPacketAskKickPlayer::Data askKickData;
|
||||
packet->ToNetPacketAskKickPlayer()->GetData(askKickData);
|
||||
|
||||
// TODO start vote kick.
|
||||
//askKickData.playerId
|
||||
}
|
||||
}
|
||||
// Chat text is always allowed.
|
||||
else if (packet->ToNetPacketSendChatText())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user