diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/options/DisplayOptions.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/options/DisplayOptions.java index 6d94af17..d8ce2d58 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/options/DisplayOptions.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/options/DisplayOptions.java @@ -59,7 +59,13 @@ public class DisplayOptions extends PluginDependent { * Allow reading enchantments from lore-based plugins. */ @Getter - private boolean useLoreGetter = false; + private boolean usingLoreGetter = false; + + /** + * Allow reading enchantments from lore-based plugins aggressively. + */ + @Getter + private boolean usingAggressiveLoreGetter = false; /** * If the experimental hide fixer is being used. @@ -106,7 +112,8 @@ public class DisplayOptions extends PluginDependent { .collect(Collectors.toList())); sortedRarities.addAll(EnchantmentRarity.values().stream().filter(enchantmentRarity -> !sortedRarities.contains(enchantmentRarity)).collect(Collectors.toList())); - useLoreGetter = this.getPlugin().getConfigYml().getBool("advanced.lore-getter"); + usingLoreGetter = this.getPlugin().getConfigYml().getBool("advanced.lore-getter.enabled"); + usingAggressiveLoreGetter = this.getPlugin().getConfigYml().getBool("advanced.lore-getter.aggressive"); usingExperimentalHideFixer = this.getPlugin().getConfigYml().getBool("advanced.hide-fixer.enabled"); usingAggressiveExperimentalHideFixer = this.getPlugin().getConfigYml().getBool("advanced.hide-fixer.aggressive"); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/ItemConversions.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/ItemConversions.java index 25c3aa79..33b11381 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/ItemConversions.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/ItemConversions.java @@ -46,8 +46,34 @@ public class ItemConversions extends PluginDependent implements Listener { */ @EventHandler public void loreConverter(@NotNull final PlayerItemHeldEvent event) { + if (!((EnchantDisplay) this.getPlugin().getDisplayModule()).getOptions().isUsingLoreGetter()) { + return; + } + ItemStack itemStack = event.getPlayer().getInventory().getItem(event.getNewSlot()); + convertLore(itemStack); + } + + /** + * On player hold item. + *
+ * Listener for lore conversion.
+ *
+ * @param event The event to listen for.
+ */
+ @EventHandler
+ public void aggressiveLoreConverter(@NotNull final InventoryOpenEvent event) {
+ if (!((EnchantDisplay) this.getPlugin().getDisplayModule()).getOptions().isUsingAggressiveLoreGetter()) {
+ return;
+ }
+
+ for (ItemStack itemStack : event.getInventory().getContents()) {
+ convertLore(itemStack);
+ }
+ }
+
+ private void convertLore(@Nullable final ItemStack itemStack) {
if (itemStack == null) {
return;
}
@@ -59,10 +85,6 @@ public class ItemConversions extends PluginDependent implements Listener {
Map