From 8e6727c350a8490ab09c5b42e81290ae2fc52e0c Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Wed, 27 Sep 2023 14:58:03 +1000 Subject: [PATCH] Handle changed custom potion effects tag --- .../BlockItemPacketRewriter1_20_2.java | 104 ++++++++---------- 1 file changed, 44 insertions(+), 60 deletions(-) diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20to1_20_2/rewriter/BlockItemPacketRewriter1_20_2.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20to1_20_2/rewriter/BlockItemPacketRewriter1_20_2.java index 15b590f6..366a08c8 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20to1_20_2/rewriter/BlockItemPacketRewriter1_20_2.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20to1_20_2/rewriter/BlockItemPacketRewriter1_20_2.java @@ -31,8 +31,6 @@ import com.viaversion.viaversion.api.minecraft.metadata.ChunkPosition; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; import com.viaversion.viaversion.api.type.Type; -import com.viaversion.viaversion.libs.fastutil.objects.Object2IntMap; -import com.viaversion.viaversion.libs.fastutil.objects.Object2IntOpenHashMap; import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag; import com.viaversion.viaversion.libs.opennbt.tag.builtin.IntTag; import com.viaversion.viaversion.libs.opennbt.tag.builtin.StringTag; @@ -42,59 +40,16 @@ import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.Clientbou import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ServerboundPackets1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.rewriter.RecipeRewriter1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.type.ChunkType1_20_2; +import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.util.PotionEffects; import com.viaversion.viaversion.rewriter.BlockRewriter; import com.viaversion.viaversion.util.Key; import com.viaversion.viaversion.util.MathUtil; -import java.util.Arrays; -import java.util.List; import org.checkerframework.checker.nullness.qual.Nullable; public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter { - private final Object2IntMap effects = new Object2IntOpenHashMap<>(); - public BlockItemPacketRewriter1_20_2(final Protocol1_20To1_20_2 protocol) { super(protocol, Type.ITEM1_20_2, Type.ITEM1_20_2_VAR_INT_ARRAY); - - final List effects = Arrays.asList( - "speed", - "slowness", - "haste", - "mining_fatigue", - "strength", - "instant_health", - "instant_damage", - "jump_boost", - "nausea", - "regeneration", - "resistance", - "fire_resistance", - "water_breathing", - "invisibility", - "blindness", - "night_vision", - "hunger", - "weakness", - "poison", - "wither", - "health_boost", - "absorption", - "saturation", - "glowing", - "levitation", - "luck", - "unluck", - "slow_falling", - "conduit_power", - "dolphins_grace", - "bad_omen", - "hero_of_the_village", - "darkness" - ); - for (int i = 0; i < effects.size(); i++) { - final String effect = effects.get(i); - this.effects.put(effect, i + 1); // Effects start at 1 before 1.20.2 - } } @Override @@ -170,8 +125,13 @@ public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter { - wrapper.write(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT, wrapper.read(Type.ITEM1_20_2_VAR_INT_ARRAY)); // Items - wrapper.write(Type.FLAT_VAR_INT_ITEM, wrapper.read(Type.ITEM1_20_2)); // Carried item + final Item[] items = wrapper.read(Type.ITEM1_20_2_VAR_INT_ARRAY); + for (final Item item : items) { + handleItemToClient(item); + } + + wrapper.write(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT, items); + wrapper.write(Type.FLAT_VAR_INT_ITEM, handleItemToClient(wrapper.read(Type.ITEM1_20_2))); // Carried item }); } }); @@ -181,7 +141,7 @@ public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter wrapper.write(Type.FLAT_VAR_INT_ITEM, handleItemToClient(wrapper.read(Type.ITEM1_20_2)))); } }); protocol.registerClientbound(ClientboundPackets1_20_2.ADVANCEMENTS, wrapper -> { @@ -199,7 +159,7 @@ public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter wrapper.write(Type.ITEM1_20_2, handleItemToServer(wrapper.read(Type.FLAT_VAR_INT_ITEM)))); // 1 - Clicked Item } }); protocol.registerClientbound(ClientboundPackets1_20_2.SPAWN_PARTICLE, new PacketHandlers() { @@ -299,7 +259,7 @@ public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter