diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_4to1_19_3/Protocol1_19_4To1_19_3.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_4to1_19_3/Protocol1_19_4To1_19_3.java index 3115f6580..f83ab3815 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_4to1_19_3/Protocol1_19_4To1_19_3.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_19_4to1_19_3/Protocol1_19_4To1_19_3.java @@ -18,21 +18,19 @@ package com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3; import com.viaversion.viaversion.api.connection.UserConnection; -import com.viaversion.viaversion.api.data.MappingData; -import com.viaversion.viaversion.api.data.MappingDataBase; import com.viaversion.viaversion.api.minecraft.entities.Entity1_19_3Types; import com.viaversion.viaversion.api.protocol.AbstractProtocol; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.data.entity.EntityTrackerBase; import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ClientboundPackets1_19_3; +import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.Protocol1_19_3To1_19_1; import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ServerboundPackets1_19_3; -import com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.data.EntityPackets; +import com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.packets.EntityPackets; import com.viaversion.viaversion.rewriter.CommandRewriter; public final class Protocol1_19_4To1_19_3 extends AbstractProtocol { - private static final MappingData MAPPINGS = new MappingDataBase("1.19.3", "1.19.3"); private final EntityPackets entityRewriter = new EntityPackets(this); public Protocol1_19_4To1_19_3() { @@ -53,6 +51,16 @@ public final class Protocol1_19_4To1_19_3 extends AbstractProtocol. */ -package com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.data; +package com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.packets; import com.github.steveice10.opennbt.tag.builtin.ByteTag; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; diff --git a/common/src/main/java/com/viaversion/viaversion/rewriter/CommandRewriter.java b/common/src/main/java/com/viaversion/viaversion/rewriter/CommandRewriter.java index 08e4daf0c..ddeb31092 100644 --- a/common/src/main/java/com/viaversion/viaversion/rewriter/CommandRewriter.java +++ b/common/src/main/java/com/viaversion/viaversion/rewriter/CommandRewriter.java @@ -23,8 +23,6 @@ import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper; import com.viaversion.viaversion.api.type.Type; -import org.checkerframework.checker.nullness.qual.Nullable; - import java.util.HashMap; import java.util.Map; @@ -82,13 +80,6 @@ public class CommandRewriter { }); } - public void handleArgument(PacketWrapper wrapper, String argumentType) throws Exception { - CommandArgumentConsumer handler = parserHandlers.get(argumentType); - if (handler != null) { - handler.accept(wrapper); - } - } - public void registerDeclareCommands(ClientboundPacketType packetType) { protocol.registerClientbound(packetType, new PacketRemapper() { @Override @@ -149,10 +140,10 @@ public class CommandRewriter { if (nodeType == 2) { // Argument node int argumentTypeId = wrapper.read(Type.VAR_INT); - String argumentType = protocol.getMappingData().getArgumentTypeMappings().identifier(argumentTypeId); + String argumentType = argumentType(argumentTypeId); String newArgumentType = handleArgumentType(argumentType); - Preconditions.checkArgument(newArgumentType != null, "No mapping for argument type " + argumentType); - wrapper.write(Type.VAR_INT, protocol.getMappingData().getArgumentTypeMappings().mappedId(newArgumentType)); + Preconditions.checkNotNull(newArgumentType, "No mapping for argument type %s", argumentType); + wrapper.write(Type.VAR_INT, mappedArgumentTypeId(newArgumentType)); // Always call the handler using the previous name handleArgument(wrapper, argumentType); @@ -169,19 +160,34 @@ public class CommandRewriter { }); } + public void handleArgument(PacketWrapper wrapper, String argumentType) throws Exception { + CommandArgumentConsumer handler = parserHandlers.get(argumentType); + if (handler != null) { + handler.accept(wrapper); + } + } + /** * Can be overridden if needed. * * @param argumentType argument type - * @return new argument type, or null if it should be removed + * @return mapped argument type */ - public @Nullable String handleArgumentType(String argumentType) { + public String handleArgumentType(String argumentType) { if (protocol.getMappingData() != null && protocol.getMappingData().getArgumentTypeMappings() != null) { return protocol.getMappingData().getArgumentTypeMappings().mappedIdentifier(argumentType); } return argumentType; } + protected String argumentType(int argumentTypeId) { + return protocol.getMappingData().getArgumentTypeMappings().identifier(argumentTypeId); + } + + protected int mappedArgumentTypeId(String mappedArgumentType) { + return protocol.getMappingData().getArgumentTypeMappings().mappedId(mappedArgumentType); + } + @FunctionalInterface public interface CommandArgumentConsumer {