From 375cd44cbd61d83b95445bc7b82ff8659c05301c Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Tue, 27 Aug 2024 16:35:22 +0500 Subject: [PATCH] Do not start generator until server responds with config --- .../distanthorizons/core/level/DhClientLevel.java | 2 +- .../multiplayer/client/ClientNetworkState.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java index 8eb62a033..4b83379dc 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java @@ -185,7 +185,7 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel boolean isClientUsable = false, isAllowedDimension = false; if (networkState != null) { - isClientUsable = !networkState.getSession().isClosed(); + isClientUsable = networkState.isReady(); isAllowedDimension = MC_CLIENT.getWrappedClientLevel() == this.levelWrapper; } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/multiplayer/client/ClientNetworkState.java b/core/src/main/java/com/seibel/distanthorizons/core/multiplayer/client/ClientNetworkState.java index 2e2c35e09..9729e573b 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/multiplayer/client/ClientNetworkState.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/multiplayer/client/ClientNetworkState.java @@ -34,22 +34,22 @@ public class ClientNetworkState implements Closeable () -> Config.Client.Advanced.Logging.logNetworkEvent.get()); private final Session session = new Session(null); - private EServerSupportStatus serverSupportStatus = EServerSupportStatus.NONE; - + /** + * Returns the client used by this instance.
+ * If you need to subscribe to any packet events, create an instance of {@link ScopedNetworkEventSource} using the returned instance. + */ + public Session getSession() { return this.session; } public MultiplayerConfig config = new MultiplayerConfig(); private volatile boolean configReceived = false; private final MultiplayerConfigChangeListener configChangeListener = new MultiplayerConfigChangeListener(this::sendConfigMessage); public boolean isReady() { return this.configReceived; } + private EServerSupportStatus serverSupportStatus = EServerSupportStatus.NONE; + /** Protocol version closest to supported by this mod version */ @Nullable private Integer closestProtocolVersion; - /** - * Returns the client used by this instance.
- * If you need to subscribe to any packet events, create an instance of {@link ScopedNetworkEventSource} using the returned instance.
- */
- public Session getSession() { return this.session; }
private final ConcurrentMap