diff --git a/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs b/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs index 82c1b866a..dd8cd532f 100644 --- a/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs +++ b/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs @@ -1332,31 +1332,31 @@ namespace Barotrauma.Networking public override bool SelectCrewCharacter(Character character, GUIComponent characterFrame) { if (character == null) return false; - + if (character != myCharacter) { var client = GameMain.NetworkMember.ConnectedClients.Find(c => c.Character == character); if (client == null) return false; - + if (HasPermission(ClientPermissions.Ban)) { - var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Ban", Alignment.BottomRight, "", characterFrame); + var banButton = new GUIButton(new Rectangle(0, 0, 100, 20), TextManager.Get("Ban"), Alignment.BottomRight, "", characterFrame); banButton.UserData = character.Name; - banButton.OnClicked += GameMain.NetLobbyScreen.BanPlayer; + banButton.OnClicked += GameMain.NetLobbyScreen.BanPlayer; } if (HasPermission(ClientPermissions.Kick)) { - var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Kick", Alignment.BottomLeft, "", characterFrame); + var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), TextManager.Get("Kick"), Alignment.BottomLeft, "", characterFrame); kickButton.UserData = character.Name; kickButton.OnClicked += GameMain.NetLobbyScreen.KickPlayer; } else if (Voting.AllowVoteKick) { - var kickVoteButton = new GUIButton(new Rectangle(0, 0, 120, 20), "Vote to Kick", Alignment.BottomLeft, "", characterFrame); - + var kickVoteButton = new GUIButton(new Rectangle(0, 0, 120, 20), TextManager.Get("VoteToKick"), Alignment.BottomLeft, "", characterFrame); + if (GameMain.NetworkMember.ConnectedClients != null) { - kickVoteButton.Enabled = !client.HasKickVoteFromID(myID); + kickVoteButton.Enabled = !client.HasKickVoteFromID(myID); } kickVoteButton.UserData = character; diff --git a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs index 585482600..8b7334903 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs @@ -871,17 +871,20 @@ namespace Barotrauma private bool SelectPlayer(GUIComponent component, object obj) { + var selectedClient = GameMain.NetworkMember.ConnectedClients.Find(c => c.Name == obj.ToString()); + if (selectedClient == null) return false; + if (GameMain.Client != null) { + if (selectedClient.ID == GameMain.Client.ID) return false; + if (!GameMain.Client.HasPermission(ClientPermissions.Ban) && !GameMain.Client.HasPermission(ClientPermissions.Kick) && !GameMain.Client.Voting.AllowVoteKick) { return false; } - } - - var selectedClient = GameMain.NetworkMember.ConnectedClients.Find(c => c.Name == obj.ToString()); + } playerFrame = new GUIFrame(new Rectangle(0, 0, 0, 0), Color.Black * 0.6f); @@ -1030,7 +1033,7 @@ namespace Barotrauma if (GameMain.Client != null && GameMain.Client.Voting.AllowVoteKick && selectedClient != null) { - var kickVoteButton = new GUIButton(new Rectangle(0, -30, 120, 20), "Vote to Kick", Alignment.BottomLeft, "", playerFrameInner); + var kickVoteButton = new GUIButton(new Rectangle(0, -30, 120, 20), TextManager.Get("VoteToKick"), Alignment.BottomLeft, "", playerFrameInner); kickVoteButton.Enabled = !selectedClient.HasKickVoteFromID(GameMain.Client.ID); kickVoteButton.UserData = selectedClient; kickVoteButton.OnClicked += GameMain.Client.VoteForKick; diff --git a/Barotrauma/BarotraumaShared/Content/Texts.xml b/Barotrauma/BarotraumaShared/Content/Texts.xml index cd3156417..d3d9c85f3 100644 --- a/Barotrauma/BarotraumaShared/Content/Texts.xml +++ b/Barotrauma/BarotraumaShared/Content/Texts.xml @@ -190,6 +190,7 @@ Permissions Permitted console commands Kick + Vote to kick Ban Ban range [PM]