diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/data/Enchantments1_20_3.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/data/Enchantments1_20_3.java deleted file mode 100644 index f3b8121ce..000000000 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/data/Enchantments1_20_3.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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 Enchantments1_20_3 { - - public static final KeyMappings ENCHANTMENTS = new KeyMappings( - "protection", - "fire_protection", - "feather_falling", - "blast_protection", - "projectile_protection", - "respiration", - "aqua_affinity", - "thorns", - "depth_strider", - "frost_walker", - "binding_curse", - "soul_speed", - "swift_sneak", - "sharpness", - "smite", - "bane_of_arthropods", - "knockback", - "fire_aspect", - "looting", - "sweeping", - "efficiency", - "silk_touch", - "unbreaking", - "fortune", - "power", - "punch", - "flame", - "infinity", - "luck_of_the_sea", - "lure", - "loyalty", - "impaling", - "riptide", - "channeling", - "multishot", - "quick_charge", - "piercing", - "mending", - "vanishing_curse" - ); - - public static @Nullable String idToKey(final int id) { - return ENCHANTMENTS.idToKey(id); - } - - public static int keyToId(final String enchantment) { - return ENCHANTMENTS.keyToId(enchantment); - } -} diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/StructuredDataConverter.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/StructuredDataConverter.java index d43c2c3f4..1092a686d 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/StructuredDataConverter.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_20_5to1_20_3/rewriter/StructuredDataConverter.java @@ -53,7 +53,7 @@ import com.viaversion.viaversion.api.minecraft.item.data.ToolRule; import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.Protocol1_20_5To1_20_3; import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.Attributes1_20_5; 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.Enchantments1_20_3; +import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.Enchantments1_20_5; 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; @@ -773,21 +773,20 @@ public final class StructuredDataConverter { private void convertEnchantments(final Enchantments data, final CompoundTag tag, final boolean storedEnchantments) { final ListTag enchantments = new ListTag<>(CompoundTag.class); - final int piercingId = Enchantments1_20_3.keyToId("piercing"); for (final Int2IntMap.Entry entry : data.enchantments().int2IntEntrySet()) { - int id = entry.getIntKey(); - if (id > piercingId) { - if (id <= piercingId + 3) { - // Density, breach, wind burst - Already backed up by VB - continue; - } - id -= 3; - } - - final String identifier = Enchantments1_20_3.idToKey(id); + final int enchantmentId = entry.getIntKey(); + String identifier = Enchantments1_20_5.idToKey(enchantmentId); if (identifier == null) { continue; } + if (identifier.equals("density") || identifier.equals("breach") || identifier.equals("wind_burst")) { + // New ones, backed up by VB + continue; + } + + if (identifier.equals("sweeping_edge")) { + identifier = "sweeping"; + } final CompoundTag enchantment = new CompoundTag(); enchantment.putString("id", identifier);