Skip to content

Commit

Permalink
Use PacketTypeMap#ofUnsequenced for packet types creation
Browse files Browse the repository at this point in the history
Fixes VV error logging showing the wrong packet name as the of method doesn't take in account the getId() implemented in PacketType.
  • Loading branch information
FlorianMichael committed Jan 30, 2025
1 parent b74491c commit e77e8cd
Showing 1 changed file with 26 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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<CU extends ClientboundPacketType, CM extends ClientboundPacketType, SM extends ServerboundPacketType, SU extends ServerboundPacketType> extends AbstractProtocol<CU, CM, SM, SU> {

public StatelessProtocol(final Class<CU> unmappedClientboundPacketType, final Class<CM> mappedClientboundPacketType, final Class<SM> mappedServerboundPacketType, final Class<SU> unmappedServerboundPacketType) {
Expand All @@ -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<CU, CM, SM, SU> createPacketTypesProvider() {
final Map<State, PacketTypeMap<CU>> unmappedClientboundPacketTypes = new HashMap<>();
final Map<State, PacketTypeMap<CM>> mappedClientboundPacketTypes = new HashMap<>();
final Map<State, PacketTypeMap<SM>> mappedServerboundPacketTypes = new HashMap<>();
final Map<State, PacketTypeMap<SU>> 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
);
}

}

0 comments on commit e77e8cd

Please sign in to comment.