From e48e76e503f317bdf30fbc4fcc8768e973af9838 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 21 Aug 2023 12:47:42 +0500 Subject: [PATCH] v3.5.5 --- Core/pom.xml | 12 +++++----- .../excellentenchants/config/Config.java | 4 ++++ .../enchantment/impl/ExcellentEnchant.java | 3 +++ .../listener/EnchantHandlerListener.java | 23 +++++++++++-------- .../menu/EnchantmentsListMenu.java | 2 +- .../enchantment/util/EnchantUtils.java | 12 +++++++--- NMS/pom.xml | 2 +- V1_17_R1/pom.xml | 4 ++-- V1_18_R2/pom.xml | 4 ++-- V1_19_R3/pom.xml | 4 ++-- V1_20_R1/pom.xml | 4 ++-- pom.xml | 2 +- 12 files changed, 46 insertions(+), 30 deletions(-) diff --git a/Core/pom.xml b/Core/pom.xml index 685c3d6..27dffd8 100644 --- a/Core/pom.xml +++ b/Core/pom.xml @@ -5,7 +5,7 @@ ExcellentEnchants su.nightexpress.excellentenchants - 3.5.4 + 3.5.5 4.0.0 @@ -81,27 +81,27 @@ su.nightexpress.excellentenchants NMS - 3.5.4 + 3.5.5 su.nightexpress.excellentenchants V1_17_R1 - 3.5.4 + 3.5.5 su.nightexpress.excellentenchants V1_18_R2 - 3.5.4 + 3.5.5 su.nightexpress.excellentenchants V1_19_R3 - 3.5.4 + 3.5.5 su.nightexpress.excellentenchants V1_20_R1 - 3.5.4 + 3.5.5 diff --git a/Core/src/main/java/su/nightexpress/excellentenchants/config/Config.java b/Core/src/main/java/su/nightexpress/excellentenchants/config/Config.java index 0003f82..7e0aa92 100644 --- a/Core/src/main/java/su/nightexpress/excellentenchants/config/Config.java +++ b/Core/src/main/java/su/nightexpress/excellentenchants/config/Config.java @@ -60,6 +60,10 @@ public class Config { "Use '" + Placeholders.GENERIC_AMOUNT + "' placeholder for amount of charges.") .setWriter((cfg, path, map) -> map.forEach((perc, str) -> cfg.set(path + "." + perc, str))); + public static final JOption ENCHANTMENTS_CHARGES_COMPARE_TYPE_ONLY = JOption.create("Enchantments.Charges.Compare_Material_Only", false, + "When enabled, only item material will be checked to determine if item can be used as an enchantment fuel.", + "When disabled (default), it will compare the whole item meta including name, lore, model data etc."); + public static final JOption ENCHANTMENTS_CHARGES_FUEL_ITEM = JOption.create("Enchantments.Charges.Fuel_Item", new ItemStack(Material.LAPIS_LAZULI), "Default item used to recharge item's enchantments on anvils.", diff --git a/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/impl/ExcellentEnchant.java b/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/impl/ExcellentEnchant.java index 4fbe20b..28ebee4 100644 --- a/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/impl/ExcellentEnchant.java +++ b/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/impl/ExcellentEnchant.java @@ -333,6 +333,9 @@ public abstract class ExcellentEnchant extends Enchantment implements IEnchantme } public boolean isChargesFuel(@NotNull ItemStack item) { + if (Config.ENCHANTMENTS_CHARGES_COMPARE_TYPE_ONLY.get()) { + return item.getType() == this.getChargesFuel().getType(); + } return item.isSimilar(this.getChargesFuel()); } diff --git a/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/listener/EnchantHandlerListener.java b/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/listener/EnchantHandlerListener.java index f3cb69f..fe145a8 100644 --- a/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/listener/EnchantHandlerListener.java +++ b/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/listener/EnchantHandlerListener.java @@ -27,6 +27,7 @@ import su.nexmedia.engine.utils.EntityUtil; import su.nightexpress.excellentenchants.ExcellentEnchants; import su.nightexpress.excellentenchants.api.enchantment.meta.Arrowed; import su.nightexpress.excellentenchants.api.enchantment.type.*; +import su.nightexpress.excellentenchants.config.Config; import su.nightexpress.excellentenchants.enchantment.EnchantManager; import su.nightexpress.excellentenchants.enchantment.util.EnchantDropContainer; import su.nightexpress.excellentenchants.enchantment.util.EnchantUtils; @@ -97,7 +98,7 @@ public class EnchantHandlerListener extends AbstractListener combatEnchant.consumeChargesNoUpdate(weapon, level); } }); - EnchantUtils.updateDisplay(weapon); + EnchantUtils.updateChargesDisplay(weapon); } private void handleCombatArmorEnchants(@NotNull EntityDamageByEntityEvent e, @@ -116,7 +117,7 @@ public class EnchantHandlerListener extends AbstractListener combatEnchant.consumeChargesNoUpdate(armor, level); } }); - EnchantUtils.updateDisplay(armor); + EnchantUtils.updateChargesDisplay(armor); } } @@ -128,7 +129,7 @@ public class EnchantHandlerListener extends AbstractListener enchant.consumeChargesNoUpdate(item, level); } }); - EnchantUtils.updateDisplay(item); + EnchantUtils.updateChargesDisplay(item); }); } @@ -165,7 +166,7 @@ public class EnchantHandlerListener extends AbstractListener bowEnchant.consumeChargesNoUpdate(bow, level); } }); - EnchantUtils.updateDisplay(bow); + EnchantUtils.updateChargesDisplay(bow); if (e.getProjectile() instanceof Projectile projectile) { this.setSourceWeapon(projectile, bow); @@ -208,7 +209,7 @@ public class EnchantHandlerListener extends AbstractListener interEnchant.consumeChargesNoUpdate(item, level); } }); - EnchantUtils.updateDisplay(item); + EnchantUtils.updateChargesDisplay(item); } @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @@ -225,7 +226,7 @@ public class EnchantHandlerListener extends AbstractListener enchant.consumeChargesNoUpdate(item, level); } }); - EnchantUtils.updateDisplay(item); + EnchantUtils.updateChargesDisplay(item); } // --------------------------------------------------------------- @@ -242,7 +243,9 @@ public class EnchantHandlerListener extends AbstractListener deathEnchant.consumeChargesNoUpdate(item, level); } })); - EnchantUtils.updateDisplay(item); + if (Config.ENCHANTMENTS_CHARGES_ENABLED.get()) { + EnchantUtils.updateChargesDisplay(item); + } }); Player killer = entity.getKiller(); @@ -257,7 +260,7 @@ public class EnchantHandlerListener extends AbstractListener deathEnchant.consumeChargesNoUpdate(weapon, level); } }); - EnchantUtils.updateDisplay(weapon); + EnchantUtils.updateChargesDisplay(weapon); } // Handle BlockBreak enchantments. @@ -275,7 +278,7 @@ public class EnchantHandlerListener extends AbstractListener blockEnchant.consumeChargesNoUpdate(tool, level); } }); - EnchantUtils.updateDisplay(tool); + EnchantUtils.updateChargesDisplay(tool); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @@ -293,7 +296,7 @@ public class EnchantHandlerListener extends AbstractListener enchant.consumeChargesNoUpdate(tool, level); } }); - EnchantUtils.updateDisplay(tool); + EnchantUtils.updateChargesDisplay(tool); BlockState state = e.getBlockState(); World world = state.getWorld(); diff --git a/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/menu/EnchantmentsListMenu.java b/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/menu/EnchantmentsListMenu.java index 8e61b11..a7e1980 100644 --- a/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/menu/EnchantmentsListMenu.java +++ b/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/menu/EnchantmentsListMenu.java @@ -124,7 +124,7 @@ public class EnchantmentsListMenu extends ConfigMenu implemen if (lore == null) lore = new ArrayList<>(); List conflicts = enchant.getConflicts().isEmpty() ? Collections.emptyList() : new ArrayList<>(this.enchantLoreConflicts); - List conflictNames = enchant.getConflicts().stream().map(EnchantUtils::getLocalized).toList(); + List conflictNames = enchant.getConflicts().stream().map(EnchantUtils::getLocalized).filter(Objects::nonNull).toList(); conflicts = StringUtil.replace(conflicts, Placeholders.ENCHANTMENT_NAME, true, conflictNames); List charges = enchant.isChargesEnabled() ? new ArrayList<>(this.enchantLoreCharges) : Collections.emptyList(); diff --git a/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/util/EnchantUtils.java b/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/util/EnchantUtils.java index 746a549..9aa5a55 100644 --- a/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/util/EnchantUtils.java +++ b/Core/src/main/java/su/nightexpress/excellentenchants/enchantment/util/EnchantUtils.java @@ -45,10 +45,10 @@ public class EnchantUtils { return NamespacedKey.minecraft(id.toLowerCase()); } - @NotNull + @Nullable public static String getLocalized(@NotNull String keyRaw) { Enchantment enchantment = Enchantment.getByKey(NamespacedKey.minecraft(keyRaw)); - return enchantment == null ? "null" : getLocalized(enchantment); + return enchantment == null ? null : getLocalized(enchantment); } @NotNull @@ -175,6 +175,12 @@ public class EnchantUtils { item.setItemMeta(meta); } + public static void updateChargesDisplay(@NotNull ItemStack item) { + if (Config.ENCHANTMENTS_CHARGES_ENABLED.get()) { + updateDisplay(item); + } + } + public static boolean updateDisplay(@NotNull ItemStack item) { if (Config.ENCHANTMENTS_DISPLAY_MODE.get() != 1) return false; @@ -399,7 +405,7 @@ public class EnchantUtils { } } }); - EnchantUtils.updateDisplay(item); + EnchantUtils.updateChargesDisplay(item); }); } } diff --git a/NMS/pom.xml b/NMS/pom.xml index 7ee132a..2c0c747 100644 --- a/NMS/pom.xml +++ b/NMS/pom.xml @@ -5,7 +5,7 @@ ExcellentEnchants su.nightexpress.excellentenchants - 3.5.4 + 3.5.5 4.0.0 diff --git a/V1_17_R1/pom.xml b/V1_17_R1/pom.xml index 644d8f2..3b104fa 100644 --- a/V1_17_R1/pom.xml +++ b/V1_17_R1/pom.xml @@ -5,7 +5,7 @@ ExcellentEnchants su.nightexpress.excellentenchants - 3.5.4 + 3.5.5 4.0.0 @@ -26,7 +26,7 @@ su.nightexpress.excellentenchants NMS - 3.5.4 + 3.5.5 diff --git a/V1_18_R2/pom.xml b/V1_18_R2/pom.xml index 79c49b1..9c59476 100644 --- a/V1_18_R2/pom.xml +++ b/V1_18_R2/pom.xml @@ -5,7 +5,7 @@ ExcellentEnchants su.nightexpress.excellentenchants - 3.5.4 + 3.5.5 4.0.0 @@ -26,7 +26,7 @@ su.nightexpress.excellentenchants NMS - 3.5.4 + 3.5.5 diff --git a/V1_19_R3/pom.xml b/V1_19_R3/pom.xml index 26110ed..29c4c8f 100644 --- a/V1_19_R3/pom.xml +++ b/V1_19_R3/pom.xml @@ -5,7 +5,7 @@ ExcellentEnchants su.nightexpress.excellentenchants - 3.5.4 + 3.5.5 4.0.0 @@ -26,7 +26,7 @@ su.nightexpress.excellentenchants NMS - 3.5.4 + 3.5.5 diff --git a/V1_20_R1/pom.xml b/V1_20_R1/pom.xml index 0921015..b2b86c8 100644 --- a/V1_20_R1/pom.xml +++ b/V1_20_R1/pom.xml @@ -5,7 +5,7 @@ ExcellentEnchants su.nightexpress.excellentenchants - 3.5.4 + 3.5.5 4.0.0 @@ -26,7 +26,7 @@ su.nightexpress.excellentenchants NMS - 3.5.4 + 3.5.5 diff --git a/pom.xml b/pom.xml index e15dd08..7af8f5f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ su.nightexpress.excellentenchants ExcellentEnchants pom - 3.5.4 + 3.5.5 Core NMS