From 68c0a0b333e631a96b9253976eafde51f7dda354 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 14 May 2022 12:32:10 +0200 Subject: [PATCH] Handle argument types, update Via usage --- .../viabackwards/api/data/BackwardsMappings.java | 2 +- .../api/rewriters/EntityRewriterBase.java | 7 +++---- .../data/CommandRewriter1_14.java | 2 +- .../data/CommandRewriter1_13_1.java | 2 +- .../data/CommandRewriter1_16.java | 2 +- .../data/CommandRewriter1_16_2.java | 2 +- .../Protocol1_18_2To1_19.java | 16 +++++++++++----- .../data/CommandRewriter1_19.java | 12 ++---------- .../packets/EntityPackets1_19.java | 5 ++--- .../data/CommandRewriter1_18_2.java | 2 +- .../viabackwards/data/mapping-1.18to1.19.json | 4 ++++ 11 files changed, 28 insertions(+), 28 deletions(-) diff --git a/common/src/main/java/com/viaversion/viabackwards/api/data/BackwardsMappings.java b/common/src/main/java/com/viaversion/viabackwards/api/data/BackwardsMappings.java index 63732bbe..8673afc3 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/data/BackwardsMappings.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/data/BackwardsMappings.java @@ -108,7 +108,7 @@ public class BackwardsMappings extends MappingDataBase { } protected boolean shouldWarnOnMissing(String key) { - return !key.equals("blocks") && !key.equals("statistics"); + return !key.equals("blocks") && !key.equals("statistics") && !key.equals("entities"); } @Override diff --git a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java index f86a5303..03d404db 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java @@ -23,13 +23,13 @@ import com.viaversion.viabackwards.api.BackwardsProtocol; import com.viaversion.viabackwards.api.entities.storage.EntityData; import com.viaversion.viabackwards.api.entities.storage.WrappedMetadata; import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.data.Int2IntMapMappings; import com.viaversion.viaversion.api.data.entity.StoredEntityData; import com.viaversion.viaversion.api.minecraft.entities.EntityType; import com.viaversion.viaversion.api.minecraft.metadata.MetaType; import com.viaversion.viaversion.api.minecraft.metadata.Metadata; import com.viaversion.viaversion.api.protocol.remapper.PacketHandler; import com.viaversion.viaversion.api.type.Type; -import com.viaversion.viaversion.libs.fastutil.ints.Int2IntOpenHashMap; import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectMap; import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectOpenHashMap; import com.viaversion.viaversion.libs.gson.JsonElement; @@ -147,13 +147,12 @@ public abstract class EntityRewriterBase extends En @Override public & EntityType> void mapTypes(EntityType[] oldTypes, Class newTypeClass) { if (typeMappings == null) { - typeMappings = new Int2IntOpenHashMap(oldTypes.length, 0.99F); - typeMappings.defaultReturnValue(-1); + typeMappings = Int2IntMapMappings.of(); } for (EntityType oldType : oldTypes) { try { E newType = Enum.valueOf(newTypeClass, oldType.name()); - typeMappings.put(oldType.getId(), newType.getId()); + typeMappings.setNewId(oldType.getId(), newType.getId()); } catch (IllegalArgumentException ignored) { // Don't warn } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/data/CommandRewriter1_14.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/data/CommandRewriter1_14.java index 83b26c98..e6eca9a4 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/data/CommandRewriter1_14.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/data/CommandRewriter1_14.java @@ -37,7 +37,7 @@ public class CommandRewriter1_14 extends CommandRewriter { } @Override - protected @Nullable String handleArgumentType(String argumentType) { + public @Nullable String handleArgumentType(String argumentType) { switch (argumentType) { case "minecraft:nbt_compound_tag": return "minecraft:nbt"; diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/data/CommandRewriter1_13_1.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/data/CommandRewriter1_13_1.java index c4d7dcd2..9a70190e 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/data/CommandRewriter1_13_1.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/data/CommandRewriter1_13_1.java @@ -33,7 +33,7 @@ public class CommandRewriter1_13_1 extends CommandRewriter { } @Override - protected @Nullable String handleArgumentType(String argumentType) { + public @Nullable String handleArgumentType(String argumentType) { if (argumentType.equals("minecraft:column_pos")) { return "minecraft:vec2"; } else if (argumentType.equals("minecraft:dimension")) { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/data/CommandRewriter1_16.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/data/CommandRewriter1_16.java index 5bd061bd..7b3120e3 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/data/CommandRewriter1_16.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/data/CommandRewriter1_16.java @@ -28,7 +28,7 @@ public class CommandRewriter1_16 extends CommandRewriter { } @Override - protected @Nullable String handleArgumentType(String argumentType) { + public @Nullable String handleArgumentType(String argumentType) { if (argumentType.equals("minecraft:uuid")) { return "minecraft:game_profile"; } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_1to1_16_2/data/CommandRewriter1_16_2.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_1to1_16_2/data/CommandRewriter1_16_2.java index 37b90595..31de06fe 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_1to1_16_2/data/CommandRewriter1_16_2.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_1to1_16_2/data/CommandRewriter1_16_2.java @@ -33,7 +33,7 @@ public class CommandRewriter1_16_2 extends CommandRewriter { } @Override - protected @Nullable String handleArgumentType(String argumentType) { + public @Nullable String handleArgumentType(String argumentType) { if (argumentType.equals("minecraft:angle")) { return "brigadier:string"; } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java index 2a5a8702..bbe6ffc1 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java @@ -71,8 +71,10 @@ public final class Protocol1_18_2To1_19 extends BackwardsProtocol { + MAPPINGS.load(); + entityRewriter.onMappingDataLoaded(); + }); //TODO update translation mappings on release translatableRewriter.registerComponentPacket(ClientboundPackets1_19.ACTIONBAR); @@ -169,7 +171,7 @@ public final class Protocol1_18_2To1_19 extends BackwardsProtocol { + // Send the unsigned message if present, otherwise the signed message + final JsonElement message = wrapper.read(Type.COMPONENT); + final JsonElement unsignedMessage = wrapper.read(Type.OPTIONAL_COMPONENT); + wrapper.write(Type.COMPONENT, unsignedMessage != null ? unsignedMessage : message); + }); map(Type.VAR_INT, Type.BYTE); // Chat type map(Type.UUID); // Sender handler(wrapper -> { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/data/CommandRewriter1_19.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/data/CommandRewriter1_19.java index d1af5b67..6844de16 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/data/CommandRewriter1_19.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/data/CommandRewriter1_19.java @@ -20,20 +20,12 @@ package com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.data; import com.viaversion.viaversion.api.protocol.Protocol; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.rewriter.CommandRewriter; -import org.checkerframework.checker.nullness.qual.Nullable; public final class CommandRewriter1_19 extends CommandRewriter { public CommandRewriter1_19(Protocol protocol) { super(protocol); - //TODO - } - - @Override - protected @Nullable String handleArgumentType(String argumentType) { - if (argumentType.equals("minecraft:resource") || argumentType.equals("minecraft:resource_or_tag")) { - return "brigadier:string"; - } - return super.handleArgumentType(argumentType); + this.parserHandlers.put("minecraft:template_mirror", wrapper -> wrapper.write(Type.VAR_INT, 0)); + this.parserHandlers.put("minecraft:template_rotation", wrapper -> wrapper.write(Type.VAR_INT, 0)); } } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/EntityPackets1_19.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/EntityPackets1_19.java index 1753cdd8..0de425a5 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/EntityPackets1_19.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/packets/EntityPackets1_19.java @@ -24,7 +24,6 @@ import com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.storage.StoredP import com.viaversion.viaversion.api.data.ParticleMappings; import com.viaversion.viaversion.api.data.entity.StoredEntityData; import com.viaversion.viaversion.api.minecraft.Position; -import com.viaversion.viaversion.api.minecraft.entities.Entity1_17Types; import com.viaversion.viaversion.api.minecraft.entities.Entity1_19Types; import com.viaversion.viaversion.api.minecraft.entities.EntityType; import com.viaversion.viaversion.api.minecraft.metadata.MetaType; @@ -231,7 +230,7 @@ public final class EntityPackets1_19 extends EntityRewriter { if (meta.metaType().typeId() <= Types1_18.META_TYPES.poseType.typeId()) { meta.setMetaType(Types1_18.META_TYPES.byId(meta.metaType().typeId())); @@ -267,7 +266,7 @@ public final class EntityPackets1_19 extends EntityRewriter { final int data = (int) meta.getValue(); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18to1_18_2/data/CommandRewriter1_18_2.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18to1_18_2/data/CommandRewriter1_18_2.java index 2e6d657a..8b02f122 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18to1_18_2/data/CommandRewriter1_18_2.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18to1_18_2/data/CommandRewriter1_18_2.java @@ -39,7 +39,7 @@ public final class CommandRewriter1_18_2 extends CommandRewriter { } @Override - protected @Nullable String handleArgumentType(String argumentType) { + public @Nullable String handleArgumentType(String argumentType) { if (argumentType.equals("minecraft:resource") || argumentType.equals("minecraft:resource_or_tag")) { return "brigadier:string"; } diff --git a/common/src/main/resources/assets/viabackwards/data/mapping-1.18to1.19.json b/common/src/main/resources/assets/viabackwards/data/mapping-1.18to1.19.json index 749e42e8..76d07902 100644 --- a/common/src/main/resources/assets/viabackwards/data/mapping-1.18to1.19.json +++ b/common/src/main/resources/assets/viabackwards/data/mapping-1.18to1.19.json @@ -728,6 +728,10 @@ "minecraft:water": "minecraft:void", "minecraft:wind": "minecraft:void" }, + "argumenttypes": { + "minecraft:template_mirror": "brigadier:string", + "minecraft:template_rotation": "brigadier:string" + }, "entitynames": { "warden": "Warden", "frog": "Frog",