Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2025-04-26 05:48:31 +1000
committerGitHub <noreply@github.com>2025-04-26 05:48:31 +1000
commitb9aef0b9d1bac48ab68361f9aad1724bc286f5f1 (patch)
treec6311bf1257307ba9f7dafff00d7534efccbd95e /source/game
parent87751c5a84925cbd9d630c65738e0e77b01a66f0 (diff)
parent621864b9b00ba7a9ae0fceb0a7db3ace6d4906b9 (diff)
Merge pull request #231 from Bottinator22/main
allow forcing legacy connections
Diffstat (limited to 'source/game')
-rw-r--r--source/game/StarUniverseClient.cpp12
-rw-r--r--source/game/StarUniverseClient.hpp2
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;