From e77e8cd7196650baf4cdc7473022135b65610b86 Mon Sep 17 00:00:00 2001 From: FlorianMichael Date: Thu, 30 Jan 2025 14:08:58 +0100 Subject: [PATCH] Use PacketTypeMap#ofUnsequenced for packet types creation Fixes VV error logging showing the wrong packet name as the of method doesn't take in account the getId() implemented in PacketType. --- .../api/protocol/StatelessProtocol.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main/java/net/raphimc/vialegacy/api/protocol/StatelessProtocol.java b/src/main/java/net/raphimc/vialegacy/api/protocol/StatelessProtocol.java index c492c8b..b266df6 100644 --- a/src/main/java/net/raphimc/vialegacy/api/protocol/StatelessProtocol.java +++ b/src/main/java/net/raphimc/vialegacy/api/protocol/StatelessProtocol.java @@ -19,9 +19,15 @@ import com.viaversion.viaversion.api.protocol.AbstractProtocol; import com.viaversion.viaversion.api.protocol.packet.*; +import com.viaversion.viaversion.api.protocol.packet.provider.PacketTypeMap; +import com.viaversion.viaversion.api.protocol.packet.provider.PacketTypesProvider; +import com.viaversion.viaversion.api.protocol.packet.provider.SimplePacketTypesProvider; import com.viaversion.viaversion.exception.CancelException; import com.viaversion.viaversion.exception.InformativeException; +import java.util.HashMap; +import java.util.Map; + public abstract class StatelessProtocol extends AbstractProtocol { public StatelessProtocol(final Class unmappedClientboundPacketType, final Class mappedClientboundPacketType, final Class mappedServerboundPacketType, final Class unmappedServerboundPacketType) { @@ -33,4 +39,24 @@ public void transform(Direction direction, State state, PacketWrapper packetWrap super.transform(direction, direction == Direction.SERVERBOUND ? state : State.PLAY, packetWrapper); } + @Override + protected PacketTypesProvider createPacketTypesProvider() { + final Map> unmappedClientboundPacketTypes = new HashMap<>(); + final Map> mappedClientboundPacketTypes = new HashMap<>(); + final Map> mappedServerboundPacketTypes = new HashMap<>(); + final Map> unmappedServerboundPacketTypes = new HashMap<>(); + + unmappedClientboundPacketTypes.put(State.PLAY, PacketTypeMap.ofUnsequenced(unmappedClientboundPacketType)); + mappedClientboundPacketTypes.put(State.PLAY, PacketTypeMap.ofUnsequenced(mappedClientboundPacketType)); + mappedServerboundPacketTypes.put(State.PLAY, PacketTypeMap.ofUnsequenced(mappedServerboundPacketType)); + unmappedServerboundPacketTypes.put(State.PLAY, PacketTypeMap.ofUnsequenced(unmappedServerboundPacketType)); + + return new SimplePacketTypesProvider<>( + unmappedClientboundPacketTypes, + mappedClientboundPacketTypes, + mappedServerboundPacketTypes, + unmappedServerboundPacketTypes + ); + } + }