diff --git a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/ItemRewriter.java b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/ItemRewriter.java index 2ddb4bc7..4c6500a5 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/ItemRewriter.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/ItemRewriter.java @@ -86,7 +86,7 @@ public class ItemRewriter { final int slot = wrapper.read(Type.VAR_INT); @@ -68,13 +68,13 @@ public final class Protocol1_20To1_20_2 extends BackwardsProtocol { wrapper.cancel(); wrapper.create(ServerboundConfigurationPackets1_20_2.FINISH_CONFIGURATION).sendToServer(Protocol1_20To1_20_2.class); wrapper.user().getProtocolInfo().setState(State.PLAY); + wrapper.user().get(ConfigurationPacketStorage.class).setFinished(true); }); registerServerbound(State.LOGIN, ServerboundLoginPackets.HELLO.getId(), ServerboundLoginPackets.HELLO.getId(), wrapper -> { @@ -85,7 +85,7 @@ public final class Protocol1_20To1_20_2 extends BackwardsProtocol { + wrapper.cancel(); + + final PacketWrapper receivedPacket = wrapper.create(ServerboundPackets1_20_2.CHUNK_BATCH_RECEIVED); + receivedPacket.write(Type.FLOAT, 500F); // Requested next batch size... arbitrary value here + receivedPacket.sendToServer(Protocol1_20To1_20_2.class); + }); protocol.registerClientbound(ClientboundPackets1_20_2.UNLOAD_CHUNK, wrapper -> { final ChunkPosition chunkPosition = wrapper.read(Type.CHUNK_POSITION); @@ -214,7 +222,7 @@ public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter(protocol) { + new RecipeRewriter1_20_2(protocol) { @Override public void handleCraftingShapeless(final PacketWrapper wrapper) throws Exception { wrapper.passthrough(Type.STRING); // Group diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_4to1_20_2/rewriter/EntityPacketRewriter1_20_2.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_4to1_20_2/rewriter/EntityPacketRewriter1_20_2.java index 2b33fe40..e60a05bb 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_4to1_20_2/rewriter/EntityPacketRewriter1_20_2.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_4to1_20_2/rewriter/EntityPacketRewriter1_20_2.java @@ -47,7 +47,7 @@ public final class EntityPacketRewriter1_20_2 extends EntityRewriter { - final ConfigurationPacketStorage configurationPacketStorage = wrapper.user().get(ConfigurationPacketStorage.class); + final ConfigurationPacketStorage configurationPacketStorage = wrapper.user().remove(ConfigurationPacketStorage.class); wrapper.passthrough(Type.INT); // Entity id wrapper.passthrough(Type.BOOLEAN); // Hardcore @@ -75,8 +75,8 @@ public final class EntityPacketRewriter1_20_2 extends EntityRewriter rawPackets = new ArrayList<>(); private CompoundTag registry; private String[] enabledFeatures; + private boolean finished; public CompoundTag registry() { + Preconditions.checkNotNull(registry); return registry; } @@ -43,6 +46,7 @@ public final class ConfigurationPacketStorage implements StorableObject { } public String[] enabledFeatures() { + Preconditions.checkNotNull(enabledFeatures); return enabledFeatures; } @@ -50,14 +54,9 @@ public final class ConfigurationPacketStorage implements StorableObject { this.enabledFeatures = enabledFeatures; } - public List getRawPackets() { - return rawPackets; - } - public void addRawPacket(final PacketWrapper wrapper, final PacketType type) throws Exception { // It's easier to just copy it to a byte array buffer than to manually read the data final ByteBuf buf = Unpooled.buffer(); - final int id = wrapper.getId(); //noinspection deprecation wrapper.setId(-1); // Don't write the packet id to the buffer wrapper.writeToBuffer(buf); @@ -75,6 +74,14 @@ public final class ConfigurationPacketStorage implements StorableObject { } } + public boolean isFinished() { + return finished; + } + + public void setFinished(final boolean finished) { + this.finished = finished; + } + public static final class QueuedPacket { private final ByteBuf buf; private final PacketType packetType;