diff --git a/src/main/java/com/github/jikoo/planarenchanting/enchant/EnchantData.java b/src/main/java/com/github/jikoo/planarenchanting/enchant/EnchantData.java index 73c2341..39354e0 100644 --- a/src/main/java/com/github/jikoo/planarenchanting/enchant/EnchantData.java +++ b/src/main/java/com/github/jikoo/planarenchanting/enchant/EnchantData.java @@ -28,10 +28,10 @@ public class EnchantData implements WeightedRandom.Choice { add(Enchantment.AQUA_AFFINITY, Tag.ITEMS_ENCHANTABLE_HEAD_ARMOR, 2, 4, flat(1), flat(41)); add(Enchantment.THORNS, Tag.ITEMS_ENCHANTABLE_CHEST_ARMOR, 1, 8, perLvl(10, 20), perLvl(60, 20)); add(Enchantment.DEPTH_STRIDER, Tag.ITEMS_ENCHANTABLE_FOOT_ARMOR, 2, 4, perLvl(10, 10), perLvl(25, 10)); - add(Enchantment.FROST_WALKER, Tag.ITEMS_ENCHANTABLE_FOOT_ARMOR, 2, 4, perLvl(10, 10), perLvl(25, 10)); - add(Enchantment.BINDING_CURSE, Tag.ITEMS_ENCHANTABLE_EQUIPPABLE, 1, 8, flat(25), flat(50)); - add(Enchantment.SOUL_SPEED, Tag.ITEMS_ENCHANTABLE_FOOT_ARMOR, 1, 8, perLvl(10, 10), perLvl(25, 10)); - add(Enchantment.SWIFT_SNEAK, Tag.ITEMS_ENCHANTABLE_LEG_ARMOR, 1, 8, perLvl(25, 25), perLvl(75, 25)); + add(Enchantment.FROST_WALKER, ItemUtil.TAG_EMPTY, Tag.ITEMS_ENCHANTABLE_FOOT_ARMOR, 2, 4, perLvl(10, 10), perLvl(25, 10)); + add(Enchantment.BINDING_CURSE, ItemUtil.TAG_EMPTY, Tag.ITEMS_ENCHANTABLE_EQUIPPABLE, 1, 8, flat(25), flat(50)); + add(Enchantment.SOUL_SPEED, ItemUtil.TAG_EMPTY, Tag.ITEMS_ENCHANTABLE_FOOT_ARMOR, 1, 8, perLvl(10, 10), perLvl(25, 10)); + add(Enchantment.SWIFT_SNEAK, ItemUtil.TAG_EMPTY, Tag.ITEMS_ENCHANTABLE_LEG_ARMOR, 1, 8, perLvl(25, 25), perLvl(75, 25)); // Melee weapon add(Enchantment.SHARPNESS, Tag.ITEMS_ENCHANTABLE_SHARP_WEAPON, Tag.ITEMS_ENCHANTABLE_SWORD, 10, 1, perLvl(1, 11), perLvl(21, 11)); add(Enchantment.SMITE, Tag.ITEMS_ENCHANTABLE_WEAPON, Tag.ITEMS_ENCHANTABLE_SWORD, 5, 2, perLvl(5, 8), perLvl(25, 8)); @@ -62,16 +62,13 @@ public class EnchantData implements WeightedRandom.Choice { add(Enchantment.MULTISHOT, Tag.ITEMS_ENCHANTABLE_CROSSBOW, 2, 4, flat(20), flat(50)); add(Enchantment.QUICK_CHARGE, Tag.ITEMS_ENCHANTABLE_CROSSBOW, 5, 2, perLvl(12, 20), flat(50)); add(Enchantment.PIERCING, Tag.ITEMS_ENCHANTABLE_CROSSBOW, 10, 1, perLvl(1, 10), flat(50)); - // General - add(Enchantment.MENDING, Tag.ITEMS_ENCHANTABLE_DURABILITY, 2, 4, perLvl(25, 25), perLvl(75, 25)); - add(Enchantment.VANISHING_CURSE, Tag.ITEMS_ENCHANTABLE_VANISHING, 1, 8, flat(25), flat(50)); // Mace - // NMSREF net.minecraft.world.item.enchantment.BreachEnchantment + add(Enchantment.DENSITY, Tag.ITEMS_ENCHANTABLE_MACE, 5, 2, perLvl(5, 8), perLvl(25, 8)); add(Enchantment.BREACH, Tag.ITEMS_ENCHANTABLE_MACE, 2, 4, perLvl(15, 9), perLvl(65, 9)); - // NMSREF net.minecraft.world.item.enchantment.DensityEnchantment - add(Enchantment.DENSITY, Tag.ITEMS_ENCHANTABLE_MACE, 10, 1, perLvl(1, 11), perLvl(21, 11)); - // NMSREF net.minecraft.world.item.enchantment.WindBurstEnchantment - add(Enchantment.WIND_BURST, Tag.ITEMS_ENCHANTABLE_MACE, 2, 4, perLvl(15, 9), perLvl(65, 9)); + add(Enchantment.WIND_BURST, ItemUtil.TAG_EMPTY, Tag.ITEMS_ENCHANTABLE_MACE, 2, 4, perLvl(15, 9), perLvl(65, 9)); + // General + add(Enchantment.MENDING, ItemUtil.TAG_EMPTY, Tag.ITEMS_ENCHANTABLE_DURABILITY, 2, 4, perLvl(25, 25), perLvl(75, 25)); + add(Enchantment.VANISHING_CURSE, ItemUtil.TAG_EMPTY, Tag.ITEMS_ENCHANTABLE_VANISHING, 1, 8, flat(25), flat(50)); } private static void add( @@ -92,7 +89,7 @@ private static void add( int anvilCost, @NotNull IntUnaryOperator minEnchantQuality, @NotNull IntUnaryOperator maxEnchantQuality) { - ENCHANT_DATA.put(enchant, new EnchantData(enchant, enchant.isTreasure() ? ItemUtil.TAG_EMPTY : null, items, weight, anvilCost, minEnchantQuality, maxEnchantQuality)); + ENCHANT_DATA.put(enchant, new EnchantData(enchant, null, items, weight, anvilCost, minEnchantQuality, maxEnchantQuality)); } private static @NotNull IntUnaryOperator perLvl(int base, int perLevel) { @@ -123,7 +120,7 @@ public static EnchantData of(@NotNull Enchantment enchantment) { private EnchantData(@NotNull Enchantment enchantment) { this(enchantment, null, // TODO - Tag.WALL_SIGNS, // TODO + ItemUtil.TAG_EMPTY, // TODO EnchantDataReflection.getWeight(enchantment), EnchantDataReflection.getAnvilCost(enchantment), EnchantDataReflection.getMinCost(enchantment), diff --git a/src/main/java/com/github/jikoo/planarenchanting/enchant/EnchantDataReflection.java b/src/main/java/com/github/jikoo/planarenchanting/enchant/EnchantDataReflection.java index 2a9f4f1..6c05976 100644 --- a/src/main/java/com/github/jikoo/planarenchanting/enchant/EnchantDataReflection.java +++ b/src/main/java/com/github/jikoo/planarenchanting/enchant/EnchantDataReflection.java @@ -21,7 +21,7 @@ public final class EnchantDataReflection { */ public static int getWeight(@NotNull Enchantment enchantment) { // NMSREF net.minecraft.world.item.enchantment.Enchantment#getWeight - return nmsHandler(enchantment, nmsEnchant -> (int) nmsEnchant.getClass().getMethod("d").invoke(nmsEnchant), 0); + return nmsHandler(enchantment, nmsEnchant -> (int) nmsEnchant.getClass().getMethod("b").invoke(nmsEnchant), 0); } /** @@ -32,7 +32,7 @@ public static int getWeight(@NotNull Enchantment enchantment) { */ public static int getAnvilCost(@NotNull Enchantment enchantment) { // NMSREF net.minecraft.world.item.enchantment.Enchantment#getAnvilCost - return nmsHandler(enchantment, nmsEnchant -> (int) nmsEnchant.getClass().getMethod("e").invoke(nmsEnchant), 40); + return nmsHandler(enchantment, nmsEnchant -> (int) nmsEnchant.getClass().getMethod("c").invoke(nmsEnchant), 40); } /** @@ -43,7 +43,7 @@ public static int getAnvilCost(@NotNull Enchantment enchantment) { */ public static IntUnaryOperator getMinCost(Enchantment enchantment) { // NMSREF net.minecraft.world.item.enchantment.Enchantment#getMinCost(int) - return nmsIntUnaryOperator(enchantment, "c", EnchantDataReflection::defaultMinEnchantQuality); + return nmsIntUnaryOperator(enchantment, "b", EnchantDataReflection::defaultMinEnchantQuality); } /** @@ -64,7 +64,7 @@ private static int defaultMinEnchantQuality(int level) { */ public static IntUnaryOperator getMaxCost(Enchantment enchantment) { // NMSREF net.minecraft.world.item.enchantment.Enchantment#getMaxCost(int) - return nmsIntUnaryOperator(enchantment, "d", EnchantDataReflection::defaultMaxEnchantQuality); + return nmsIntUnaryOperator(enchantment, "c", EnchantDataReflection::defaultMaxEnchantQuality); } diff --git a/src/test/java/net/minecraft/world/item/enchantment/Enchantment.java b/src/test/java/net/minecraft/world/item/enchantment/Enchantment.java index 0eafbb5..afb2efa 100644 --- a/src/test/java/net/minecraft/world/item/enchantment/Enchantment.java +++ b/src/test/java/net/minecraft/world/item/enchantment/Enchantment.java @@ -1,24 +1,24 @@ package net.minecraft.world.item.enchantment; -import org.bukkit.NamespacedKey; import java.util.function.IntUnaryOperator; +import org.bukkit.NamespacedKey; public record Enchantment( NamespacedKey key, IntUnaryOperator minCost, IntUnaryOperator maxCost, // NMSREF \nnet\.minecraft\.world\.item\.enchantment\.Enchantment(.|\n)*?int getWeight\(\) - int d, + int b, // NMSREF \nnet\.minecraft\.world\.item\.enchantment\.Enchantment(.|\n)*?int getAnvilCost\(\) - int e) { + int c) { // NMSREF \nnet\.minecraft\.world\.item\.enchantment\.Enchantment(.|\n)*?int getMinCost\(int\) - public int c(int level) { + public int b(int level) { return minCost().applyAsInt(level); } // NMSREF \nnet\.minecraft\.world\.item\.enchantment\.Enchantment(.|\n)*?int getMaxCost\(int\) - public int d(int level) { + public int c(int level) { return maxCost().applyAsInt(level); }