diff --git a/Barotrauma/BarotraumaClient/ClientSource/Screens/ServerListScreen/ServerListScreen.cs b/Barotrauma/BarotraumaClient/ClientSource/Screens/ServerListScreen/ServerListScreen.cs
index 08bc32e59..b3216cfe7 100644
--- a/Barotrauma/BarotraumaClient/ClientSource/Screens/ServerListScreen/ServerListScreen.cs
+++ b/Barotrauma/BarotraumaClient/ClientSource/Screens/ServerListScreen/ServerListScreen.cs
@@ -1319,7 +1319,13 @@ namespace Barotrauma
const float MinSimilarityPercentage = 0.8f;
if (string.IsNullOrWhiteSpace(serverInfo.ServerName)) { return; }
- if (serverInfo.PlayerCount > serverInfo.MaxPlayers) { return; }
+
+ if (serverInfo.ServerName.Length > NetConfig.ServerNameMaxLength) { return; }
+ /*no newline symbols in server names!*/
+ if (serverInfo.ServerName.Contains('\n') || serverInfo.ServerName.Contains('\r')) { return; }
+ if (serverInfo.ServerMessage.Length > NetConfig.ServerMessageMaxLength) { return; }
+ //+1 because it seems the count can sometimes be slightly off (something to do with steam lobbies not immediately refreshing?)
+ if (serverInfo.PlayerCount > serverInfo.MaxPlayers + 1) { return; }
if (serverInfo.PlayerCount < 0) { return; }
if (serverInfo.MaxPlayers <= 0) { return; }
//no way a legit server can have this many players
diff --git a/Barotrauma/BarotraumaClient/LinuxClient.csproj b/Barotrauma/BarotraumaClient/LinuxClient.csproj
index d5a4d47da..ee31d4352 100644
--- a/Barotrauma/BarotraumaClient/LinuxClient.csproj
+++ b/Barotrauma/BarotraumaClient/LinuxClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 1.10.7.0
+ 1.10.7.1
Copyright © FakeFish 2018-2024
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaClient/MacClient.csproj b/Barotrauma/BarotraumaClient/MacClient.csproj
index d745a39ea..1bce93f2a 100644
--- a/Barotrauma/BarotraumaClient/MacClient.csproj
+++ b/Barotrauma/BarotraumaClient/MacClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 1.10.7.0
+ 1.10.7.1
Copyright © FakeFish 2018-2024
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaClient/WindowsClient.csproj b/Barotrauma/BarotraumaClient/WindowsClient.csproj
index 8a85440cf..ff9579d1a 100644
--- a/Barotrauma/BarotraumaClient/WindowsClient.csproj
+++ b/Barotrauma/BarotraumaClient/WindowsClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 1.10.7.0
+ 1.10.7.1
Copyright © FakeFish 2018-2024
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaServer/LinuxServer.csproj b/Barotrauma/BarotraumaServer/LinuxServer.csproj
index 836eee487..730e935d4 100644
--- a/Barotrauma/BarotraumaServer/LinuxServer.csproj
+++ b/Barotrauma/BarotraumaServer/LinuxServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 1.10.7.0
+ 1.10.7.1
Copyright © FakeFish 2018-2023
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaServer/MacServer.csproj b/Barotrauma/BarotraumaServer/MacServer.csproj
index 171c352d4..9e5a66019 100644
--- a/Barotrauma/BarotraumaServer/MacServer.csproj
+++ b/Barotrauma/BarotraumaServer/MacServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 1.10.7.0
+ 1.10.7.1
Copyright © FakeFish 2018-2023
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs b/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs
index c55f018f1..6bb3c990f 100644
--- a/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs
+++ b/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs
@@ -1293,9 +1293,9 @@ namespace Barotrauma
CharacterInfo firedCharacter = null;
(ushort id, string newName) appliedRename = (Entity.NullEntityID, string.Empty);
- if (location != null && HasCampaignInteractionAvailable(sender, InteractionType.Crew))
+ if (location != null)
{
- if (fireCharacter && AllowedToManageCampaign(sender, ClientPermissions.ManageHires))
+ if (fireCharacter && AllowedToManageCampaign(sender, ClientPermissions.ManageHires) && HasCampaignInteractionAvailable(sender, InteractionType.Crew))
{
firedCharacter = CrewManager.GetCharacterInfos(includeReserveBench: true).FirstOrDefault(info => info.ID == firedIdentifier);
if (firedCharacter != null && (firedCharacter.Character?.IsBot ?? true))
@@ -1307,6 +1307,10 @@ namespace Barotrauma
DebugConsole.ThrowError($"Tried to fire an invalid character ({firedIdentifier})");
}
}
+ else
+ {
+ GameServer.Log($"{sender.Name} attempted to fire a character without having access to an appropriate NPC.", ServerLog.MessageType.Error);
+ }
if (renameCharacter)
{
@@ -1321,8 +1325,13 @@ namespace Barotrauma
{
characterInfo = location.HireManager.AvailableCharacters.FirstOrDefault(info => info.ID == renamedIdentifier);
}
+ if (characterInfo != null && characterInfo != sender.CharacterInfo && !HasCampaignInteractionAvailable(sender, InteractionType.Crew))
+ {
+ GameServer.Log($"{sender.Name} attempted to rename a character without having access to an appropriate NPC.", ServerLog.MessageType.Error);
+ characterInfo = null;
+ }
}
- if (characterInfo == null && renamedIdentifier == sender.CharacterInfo?.ID)
+ else if (characterInfo == null && renamedIdentifier == sender.CharacterInfo?.ID)
{
characterInfo = sender.CharacterInfo;
}
@@ -1353,7 +1362,7 @@ namespace Barotrauma
}
}
- if (location.HireManager != null)
+ if (location.HireManager != null && HasCampaignInteractionAvailable(sender, InteractionType.Crew))
{
if (validateHires)
{
@@ -1396,10 +1405,10 @@ namespace Barotrauma
}
});
}
- }
- else
- {
- GameServer.Log($"{sender.Name} attempted to manage hires without having access to an appropriate NPC.", ServerLog.MessageType.Error);
+ else
+ {
+ GameServer.Log($"{sender.Name} attempted to hire characters without having access to an appropriate NPC.", ServerLog.MessageType.Error);
+ }
}
// bounce back
diff --git a/Barotrauma/BarotraumaServer/WindowsServer.csproj b/Barotrauma/BarotraumaServer/WindowsServer.csproj
index 416c1cb1a..5e1fd9707 100644
--- a/Barotrauma/BarotraumaServer/WindowsServer.csproj
+++ b/Barotrauma/BarotraumaServer/WindowsServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 1.10.7.0
+ 1.10.7.1
Copyright © FakeFish 2018-2023
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaShared/changelog.txt b/Barotrauma/BarotraumaShared/changelog.txt
index 9d3063420..cbc56da81 100644
--- a/Barotrauma/BarotraumaShared/changelog.txt
+++ b/Barotrauma/BarotraumaShared/changelog.txt
@@ -1,4 +1,11 @@
-------------------------------------------------------------------------------------------------------------------------------------------------
+v1.10.7.1
+-------------------------------------------------------------------------------------------------------------------------------------------------
+
+- Additional fixes to multiplayer exploits.
+- Fixed inability to rename a bot you've taken over in permadeath mode.
+
+-------------------------------------------------------------------------------------------------------------------------------------------------
v1.10.7.0
-------------------------------------------------------------------------------------------------------------------------------------------------