diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2025-04-26 05:48:31 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-26 05:48:31 +1000 |
commit | b9aef0b9d1bac48ab68361f9aad1724bc286f5f1 (patch) | |
tree | c6311bf1257307ba9f7dafff00d7534efccbd95e /source/game | |
parent | 87751c5a84925cbd9d630c65738e0e77b01a66f0 (diff) | |
parent | 621864b9b00ba7a9ae0fceb0a7db3ace6d4906b9 (diff) |
Merge pull request #231 from Bottinator22/main
allow forcing legacy connections
Diffstat (limited to 'source/game')
-rw-r--r-- | source/game/StarUniverseClient.cpp | 12 | ||||
-rw-r--r-- | source/game/StarUniverseClient.hpp | 2 |
2 files changed, 8 insertions, 6 deletions
diff --git a/source/game/StarUniverseClient.cpp b/source/game/StarUniverseClient.cpp index f33c953..b41d19e 100644 --- a/source/game/StarUniverseClient.cpp +++ b/source/game/StarUniverseClient.cpp @@ -71,7 +71,7 @@ PlayerPtr UniverseClient::mainPlayer() const { return m_mainPlayer; } -Maybe<String> UniverseClient::connect(UniverseConnection connection, bool allowAssetsMismatch, String const& account, String const& password) { +Maybe<String> UniverseClient::connect(UniverseConnection connection, bool allowAssetsMismatch, String const& account, String const& password, bool const& forceLegacy) { auto& root = Root::singleton(); auto assets = root.assets(); @@ -85,9 +85,11 @@ Maybe<String> UniverseClient::connect(UniverseConnection connection, bool allowA { auto protocolRequest = make_shared<ProtocolRequestPacket>(StarProtocolVersion); - protocolRequest->setCompressionMode(PacketCompressionMode::Enabled); - // Signal that we're OpenStarbound. Vanilla Starbound only compresses - // packets above 64 bytes - by forcing it, we can communicate this. + if (!forceLegacy) { + protocolRequest->setCompressionMode(PacketCompressionMode::Enabled); + // Signal that we're OpenStarbound. Vanilla Starbound only compresses + // packets above 64 bytes - by forcing it, we can communicate this. + } connection.pushSingle(protocolRequest); } connection.sendAll(timeout); @@ -101,7 +103,7 @@ Maybe<String> UniverseClient::connect(UniverseConnection connection, bool allowA NetCompatibilityRules compatibilityRules; compatibilityRules.setVersion(LegacyVersion); - bool legacyServer = protocolResponsePacket->compressionMode() != PacketCompressionMode::Enabled; + bool legacyServer = forceLegacy || (protocolResponsePacket->compressionMode() != PacketCompressionMode::Enabled); if (!legacyServer) { auto compressedSocket = as<CompressedPacketSocket>(&connection.packetSocket()); if (protocolResponsePacket->info) { diff --git a/source/game/StarUniverseClient.hpp b/source/game/StarUniverseClient.hpp index 1cb3bfa..b1c589f 100644 --- a/source/game/StarUniverseClient.hpp +++ b/source/game/StarUniverseClient.hpp @@ -41,7 +41,7 @@ public: PlayerPtr mainPlayer() const; // Returns error if connection failed - Maybe<String> connect(UniverseConnection connection, bool allowAssetsMismatch, String const& account = "", String const& password = ""); + Maybe<String> connect(UniverseConnection connection, bool allowAssetsMismatch, String const& account = "", String const& password = "", bool const& forceLegacy = false); bool isConnected() const; void disconnect(); Maybe<String> disconnectReason() const; |