From a4adef3cecbf0f6af5b90d0d94ebadcadd31e53f Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 22 Apr 2024 23:49:13 +0200 Subject: [PATCH] Fix attribute slot handling --- .../data/EquipmentSlots1_20_5.java | 45 +++++++++++++++++++ .../BlockItemPacketRewriter1_20_5.java | 10 ++++- .../rewriter/ComponentRewriter1_20_5.java | 8 ++-- .../rewriter/StructuredDataConverter.java | 5 ++- 4 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/data/EquipmentSlots1_20_5.java diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/data/EquipmentSlots1_20_5.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/data/EquipmentSlots1_20_5.java new file mode 100644 index 000000000..add88ce27 --- /dev/null +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/data/EquipmentSlots1_20_5.java @@ -0,0 +1,45 @@ +/* + * This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion + * Copyright (C) 2016-2024 ViaVersion and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data; + +import com.viaversion.viaversion.util.KeyMappings; +import org.checkerframework.checker.nullness.qual.Nullable; + +public final class EquipmentSlots1_20_5 { + + public static final KeyMappings SLOTS = new KeyMappings( + "any", + "mainhand", + "offhand", + "hand", + "feet", + "legs", + "chest", + "head", + "armor", + "body" + ); + + public static @Nullable String idToKey(final int id) { + return SLOTS.idToKey(id); + } + + public static int keyToId(final String enchantment) { + return SLOTS.keyToId(enchantment); + } +} diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/BlockItemPacketRewriter1_20_5.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/BlockItemPacketRewriter1_20_5.java index 4c9945ef3..f37d8ee28 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/BlockItemPacketRewriter1_20_5.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/BlockItemPacketRewriter1_20_5.java @@ -85,6 +85,7 @@ import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.Attribute import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.BannerPatterns1_20_5; import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.DyeColors; import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.Enchantments1_20_3; +import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.EquipmentSlots1_20_5; import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.Instruments1_20_3; import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.MapDecorations1_20_5; import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.PotionEffects1_20_5; @@ -795,11 +796,16 @@ public final class BlockItemPacketRewriter1_20_5 extends ItemRewriter 2) { continue; @@ -818,7 +824,7 @@ public final class BlockItemPacketRewriter1_20_5 extends ItemRewriter