From 53aca791ddd33449f6b49037698b7e97d363545e Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 19 Sep 2023 00:02:06 +1000 Subject: [PATCH] Fix reentering of the configuration state --- .../Protocol1_20_2To1_20.java | 41 +++++++++++++++++-- .../rewriter/EntityPacketRewriter1_20_2.java | 25 +++++------ .../storage/ConfigurationState.java | 25 ++++++++++- settings.gradle.kts | 2 +- 4 files changed, 76 insertions(+), 17 deletions(-) diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_2to1_20/Protocol1_20_2To1_20.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_2to1_20/Protocol1_20_2To1_20.java index b1731042e..df94577fe 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_2to1_20/Protocol1_20_2To1_20.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_2to1_20/Protocol1_20_2To1_20.java @@ -17,6 +17,7 @@ */ package com.viaversion.viaversion.protocols.protocol1_20_2to1_20; +import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.data.MappingData; @@ -117,7 +118,19 @@ public final class Protocol1_20_2To1_20 extends AbstractProtocol { + wrapper.cancel(); + + final ConfigurationState configurationState = wrapper.user().get(ConfigurationState.class); + if (configurationState.getReenterInfo() == null) { + return; + } + + // Reenter the configuration state + configurationState.setBridgePhase(BridgePhase.CONFIGURATION); + sendConfigurationPackets(wrapper.user(), configurationState.getReenterInfo().dimensionRegistry()); + configurationState.setReenterInfo(null); + }); cancelServerbound(ServerboundPackets1_20_2.CHUNK_BATCH_RECEIVED); registerServerbound(ServerboundPackets1_20_2.PING_REQUEST, null, wrapper -> { @@ -141,19 +154,25 @@ public final class Protocol1_20_2To1_20 extends AbstractProtocol