From eaa58affd170935de4d4211f380daa64fa46643d Mon Sep 17 00:00:00 2001 From: KennyTV Date: Tue, 1 Jun 2021 22:52:05 +0200 Subject: [PATCH] Minor changes --- .../api/protocol/packet/PacketWrapper.java | 38 ++++++---- .../protocol/packet/PacketWrapperImpl.java | 16 ++--- .../Protocol1_13To1_12_2.java | 70 +++++++++---------- 3 files changed, 63 insertions(+), 61 deletions(-) diff --git a/api/src/main/java/com/viaversion/viaversion/api/protocol/packet/PacketWrapper.java b/api/src/main/java/com/viaversion/viaversion/api/protocol/packet/PacketWrapper.java index 5a3b1a0e9..979adc596 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/protocol/packet/PacketWrapper.java +++ b/api/src/main/java/com/viaversion/viaversion/api/protocol/packet/PacketWrapper.java @@ -238,30 +238,44 @@ public interface PacketWrapper { void send() throws Exception; /** - * Create a new packet for the target of this packet. + * Creates a new packet for the target of this packet. * * @param packetType packet type of the new packet * @return The newly created packet wrapper */ - PacketWrapper create(PacketType packetType); + default PacketWrapper create(PacketType packetType) { + return create(packetType.getId()); + } /** - * Create a new packet for the target of this packet. + * Creates a new packet with values. * - * @param packetID The ID of the new packet - * @return The newly created packet wrapper + * @param packetType packet type of the new packet + * @param valueCreator ValueCreator to write to the packet + * @return newly created packet wrapper + * @throws Exception if it failed to write the values from the ValueCreator. */ - PacketWrapper create(int packetID); + default PacketWrapper create(PacketType packetType, ValueCreator valueCreator) throws Exception { + return create(packetType.getId(), valueCreator); + } /** - * Create a new packet with values. + * Creates a new packet for the target of this packet. * - * @param packetID The ID of the new packet - * @param init A ValueCreator to write to the packet. - * @return The newly created packet wrapper - * @throws Exception If it failed to write the values from the ValueCreator. + * @param packetId id of the packet + * @return newly created packet wrapper */ - PacketWrapper create(int packetID, ValueCreator init) throws Exception; + PacketWrapper create(int packetId); + + /** + * Creates a new packet with values. + * + * @param packetId id of the packet + * @param valueCreator ValueCreator to write to the packet. + * @return newly created packet wrapper + * @throws Exception if it failed to write the values from the ValueCreator. + */ + PacketWrapper create(int packetId, ValueCreator valueCreator) throws Exception; /** * Applies a pipeline from an index to the wrapper. diff --git a/common/src/main/java/com/viaversion/viaversion/protocol/packet/PacketWrapperImpl.java b/common/src/main/java/com/viaversion/viaversion/protocol/packet/PacketWrapperImpl.java index fede3ab16..43549e048 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocol/packet/PacketWrapperImpl.java +++ b/common/src/main/java/com/viaversion/viaversion/protocol/packet/PacketWrapperImpl.java @@ -22,7 +22,6 @@ import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.protocol.Protocol; import com.viaversion.viaversion.api.protocol.packet.Direction; -import com.viaversion.viaversion.api.protocol.packet.PacketType; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.protocol.packet.State; import com.viaversion.viaversion.api.protocol.remapper.ValueCreator; @@ -322,19 +321,14 @@ public class PacketWrapperImpl implements PacketWrapper { } @Override - public PacketWrapperImpl create(PacketType packetType) { - return new PacketWrapperImpl(packetType.getId(), null, user()); + public PacketWrapperImpl create(int packetId) { + return new PacketWrapperImpl(packetId, null, user()); } @Override - public PacketWrapperImpl create(int packetID) { - return new PacketWrapperImpl(packetID, null, user()); - } - - @Override - public PacketWrapperImpl create(int packetID, ValueCreator init) throws Exception { - PacketWrapperImpl wrapper = create(packetID); - init.write(wrapper); + public PacketWrapperImpl create(int packetId, ValueCreator valueCreator) throws Exception { + PacketWrapperImpl wrapper = create(packetId); + valueCreator.write(wrapper); return wrapper; } diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java index c2d607332..229490201 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java @@ -113,49 +113,43 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol { // Send fake declare commands - w.create(0x11, new ValueCreator() { - @Override - public void write(PacketWrapper wrapper) { - wrapper.write(Type.VAR_INT, 2); // Size - // Write root node - wrapper.write(Type.BYTE, (byte) 0); // Mark as command - wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, new int[]{1}); // 1 child at index 1 + w.create(ClientboundPackets1_13.DECLARE_COMMANDS, wrapper -> { + wrapper.write(Type.VAR_INT, 2); // Size + // Write root node + wrapper.write(Type.BYTE, (byte) 0); // Mark as command + wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, new int[]{1}); // 1 child at index 1 - // Write arg node - wrapper.write(Type.BYTE, (byte) (0x02 | 0x04 | 0x10)); // Mark as command - wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, new int[0]); // No children - // Extra data - wrapper.write(Type.STRING, "args"); // Arg name - wrapper.write(Type.STRING, "brigadier:string"); - wrapper.write(Type.VAR_INT, 2); // Greedy - wrapper.write(Type.STRING, "minecraft:ask_server"); // Ask server + // Write arg node + wrapper.write(Type.BYTE, (byte) (0x02 | 0x04 | 0x10)); // Mark as command + wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, new int[0]); // No children + // Extra data + wrapper.write(Type.STRING, "args"); // Arg name + wrapper.write(Type.STRING, "brigadier:string"); + wrapper.write(Type.VAR_INT, 2); // Greedy + wrapper.write(Type.STRING, "minecraft:ask_server"); // Ask server - wrapper.write(Type.VAR_INT, 0); // Root node index - } + wrapper.write(Type.VAR_INT, 0); // Root node index }).send(Protocol1_13To1_12_2.class); // Send tags packet - w.create(0x55, new ValueCreator() { - @Override - public void write(PacketWrapper wrapper) throws Exception { - wrapper.write(Type.VAR_INT, MAPPINGS.getBlockTags().size()); // block tags - for (Map.Entry tag : MAPPINGS.getBlockTags().entrySet()) { - wrapper.write(Type.STRING, tag.getKey()); - // Needs copy as other protocols may modify it - wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue())); - } - wrapper.write(Type.VAR_INT, MAPPINGS.getItemTags().size()); // item tags - for (Map.Entry tag : MAPPINGS.getItemTags().entrySet()) { - wrapper.write(Type.STRING, tag.getKey()); - // Needs copy as other protocols may modify it - wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue())); - } - wrapper.write(Type.VAR_INT, MAPPINGS.getFluidTags().size()); // fluid tags - for (Map.Entry tag : MAPPINGS.getFluidTags().entrySet()) { - wrapper.write(Type.STRING, tag.getKey()); - // Needs copy as other protocols may modify it - wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue())); - } + w.create(ClientboundPackets1_13.TAGS, wrapper -> { + wrapper.write(Type.VAR_INT, MAPPINGS.getBlockTags().size()); // block tags + for (Map.Entry tag : MAPPINGS.getBlockTags().entrySet()) { + wrapper.write(Type.STRING, tag.getKey()); + // Needs copy as other protocols may modify it + wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue())); + } + wrapper.write(Type.VAR_INT, MAPPINGS.getItemTags().size()); // item tags + for (Map.Entry tag : MAPPINGS.getItemTags().entrySet()) { + wrapper.write(Type.STRING, tag.getKey()); + // Needs copy as other protocols may modify it + wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue())); + } + wrapper.write(Type.VAR_INT, MAPPINGS.getFluidTags().size()); // fluid tags + for (Map.Entry tag : MAPPINGS.getFluidTags().entrySet()) { + wrapper.write(Type.STRING, tag.getKey()); + // Needs copy as other protocols may modify it + wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue())); } }).send(Protocol1_13To1_12_2.class); };