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 2799ba689..c8a55164b 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 @@ -29,7 +29,6 @@ import com.viaversion.viaversion.api.protocol.AbstractProtocol; import com.viaversion.viaversion.api.protocol.packet.Direction; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.protocol.packet.State; -import com.viaversion.viaversion.api.protocol.remapper.PacketHandler; import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; import com.viaversion.viaversion.api.rewriter.EntityRewriter; import com.viaversion.viaversion.api.rewriter.ItemRewriter; @@ -52,9 +51,8 @@ import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.storage.LastReso import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.storage.LastTags; import com.viaversion.viaversion.rewriter.SoundRewriter; import com.viaversion.viaversion.util.Key; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.UUID; +import org.checkerframework.checker.nullness.qual.Nullable; public final class Protocol1_20_2To1_20 extends AbstractProtocol { @@ -75,20 +73,8 @@ public final class Protocol1_20_2To1_20 extends AbstractProtocol { - final String channel = Key.namespaced(wrapper.passthrough(Type.STRING)); - if (channel.equals("minecraft:brand")) { - wrapper.passthrough(Type.STRING); - wrapper.clearInputBuffer(); - } - }); - registerServerbound(ServerboundPackets1_20_2.PLUGIN_MESSAGE, wrapper -> { - final String channel = Key.namespaced(wrapper.passthrough(Type.STRING)); - if (channel.equals("minecraft:brand")) { - wrapper.passthrough(Type.STRING); - wrapper.clearInputBuffer(); - } - }); + registerClientbound(ClientboundPackets1_19_4.PLUGIN_MESSAGE, this::sanitizeCustomPayload); + registerServerbound(ServerboundPackets1_20_2.PLUGIN_MESSAGE, this::sanitizeCustomPayload); registerClientbound(ClientboundPackets1_19_4.RESOURCE_PACK, wrapper -> { final String url = wrapper.passthrough(Type.STRING); @@ -164,9 +150,12 @@ public final class Protocol1_20_2To1_20 extends AbstractProtocol { + wrapper.setPacketType(ServerboundPackets1_19_4.PLUGIN_MESSAGE); + sanitizeCustomPayload(wrapper); + }); + registerServerbound(State.CONFIGURATION, ServerboundConfigurationPackets1_20_2.KEEP_ALIVE.getId(), -1, wrapper -> wrapper.setPacketType(ServerboundPackets1_19_4.KEEP_ALIVE)); + registerServerbound(State.CONFIGURATION, ServerboundConfigurationPackets1_20_2.PONG.getId(), -1, wrapper -> wrapper.setPacketType(ServerboundPackets1_19_4.PONG)); // Cancel this, as it will always just be the response to a re-sent pack from us registerServerbound(State.CONFIGURATION, ServerboundConfigurationPackets1_20_2.RESOURCE_PACK.getId(), -1, PacketWrapper::cancel); @@ -199,14 +188,6 @@ public final class Protocol1_20_2To1_20 extends AbstractProtocol { - wrapper.setPacketType(packetType); - wrapper.user().get(ConfigurationState.class).addPacketToQueue(wrapper, false); - wrapper.cancel(); - }; - } - @Override public void transform(final Direction direction, final State state, final PacketWrapper packetWrapper) throws Exception { if (direction == Direction.SERVERBOUND) { @@ -321,6 +302,14 @@ public final class Protocol1_20_2To1_20 extends AbstractProtocol packetQueue = new ArrayList<>(); private BridgePhase bridgePhase = BridgePhase.NONE; private QueuedPacket joinGamePacket; @@ -117,7 +118,7 @@ public class ConfigurationState implements StorableObject { packetQueue.add(hasJoinGamePacket ? 1 : 0, toQueuedPacket(clientInformationPacket, false, true)); } - final ConfigurationState.QueuedPacket[] queuedPackets = packetQueue.toArray(new ConfigurationState.QueuedPacket[0]); + final ConfigurationState.QueuedPacket[] queuedPackets = packetQueue.toArray(EMPTY_PACKET_ARRAY); packetQueue.clear(); for (final ConfigurationState.QueuedPacket packet : queuedPackets) { diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_3to1_20_2/rewriter/BlockItemPacketRewriter1_20_3.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_3to1_20_2/rewriter/BlockItemPacketRewriter1_20_3.java index c36cfac2e..73f4f1f56 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_3to1_20_2/rewriter/BlockItemPacketRewriter1_20_3.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_3to1_20_2/rewriter/BlockItemPacketRewriter1_20_3.java @@ -18,10 +18,12 @@ package com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.rewriter; import com.viaversion.viaversion.api.data.ParticleMappings; +import com.viaversion.viaversion.api.minecraft.Particle; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_20_2; +import com.viaversion.viaversion.api.type.types.version.Types1_20_3; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ClientboundPackets1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.rewriter.RecipeRewriter1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.Protocol1_20_3To1_20_2; @@ -117,8 +119,8 @@ public final class BlockItemPacketRewriter1_20_3 extends ItemRewriter { public BlockItemPacketRewriter1_99(final Protocol1_99To_98 protocol) { @@ -62,9 +62,11 @@ public final class BlockItemPacketRewriter1_99 extends ItemRewriter(protocol).register(ClientboundPackets1_20_2.DECLARE_RECIPES); // OR do this if serialization of recipes changed and override the relevant method // Add new serializers to RecipeRewriter, or extend the last one for changes - // new RecipeRewriter1_20_2(this) {}.register(ClientboundPackets1_20_2.DECLARE_RECIPES); + // new RecipeRewriter1_20_3(this) {}.register(ClientboundPackets1_20_2.DECLARE_RECIPES); } } \ No newline at end of file