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