Fixed ItemConversions bugs

This commit is contained in:
Auxilor 2022-03-17 15:18:52 +00:00
parent 7e7d8e9f49
commit 1dad05e834
2 changed files with 11 additions and 7 deletions

View File

@ -1,6 +1,7 @@
package com.willfp.ecoenchants.enchantments.util;
import com.willfp.eco.core.EcoPlugin;
import com.willfp.eco.core.config.updating.ConfigUpdater;
import com.willfp.ecoenchants.EcoEnchantsPlugin;
import lombok.Getter;
import lombok.experimental.UtilityClass;
@ -79,6 +80,7 @@ public class ItemConversionOptions {
*
* @param plugin Instance of ecoenchants.
*/
@ConfigUpdater
public void reload(@NotNull final EcoPlugin plugin) {
usingLoreGetter = plugin.getConfigYml().getBool("advanced.lore-getter.enabled");
usingAggressiveLoreGetter = plugin.getConfigYml().getBool("advanced.lore-getter.aggressive");

View File

@ -247,7 +247,7 @@ public class ItemConversions extends PluginDependent<EcoPlugin> implements Liste
return;
}
ItemStack itemStack = event.getPlayer().getInventory().getItem(event.getNewSlot());
ItemStack itemStack = event.getPlayer().getInventory().getItemInMainHand();
clampItemLevels(itemStack, event.getPlayer());
}
@ -267,15 +267,17 @@ public class ItemConversions extends PluginDependent<EcoPlugin> implements Liste
return;
}
if (meta instanceof EnchantmentStorageMeta) {
new HashMap<>(((EnchantmentStorageMeta) meta).getStoredEnchants()).forEach((enchantment, integer) -> {
Map<Enchantment, Integer> levels = FastItemStack.wrap(itemStack).getEnchants(true);
if (meta instanceof EnchantmentStorageMeta storageMeta) {
levels.forEach((enchantment, integer) -> {
if (integer > enchantment.getMaxLevel()) {
((EnchantmentStorageMeta) meta).removeStoredEnchant(enchantment);
((EnchantmentStorageMeta) meta).addStoredEnchant(enchantment, enchantment.getMaxLevel(), true);
storageMeta.removeStoredEnchant(enchantment);
storageMeta.addStoredEnchant(enchantment, enchantment.getMaxLevel(), true);
}
});
} else {
new HashMap<>(meta.getEnchants()).forEach((enchantment, integer) -> {
levels.forEach((enchantment, integer) -> {
if (integer > enchantment.getMaxLevel()) {
meta.removeEnchant(enchantment);
meta.addEnchant(enchantment, enchantment.getMaxLevel(), true);
@ -287,7 +289,7 @@ public class ItemConversions extends PluginDependent<EcoPlugin> implements Liste
if (ItemConversionOptions.isUsingLevelClampDelete()) {
itemStack.setType(Material.AIR);
itemStack.setItemMeta(new ItemStack(Material.AIR).getItemMeta());
itemStack.setAmount(0);
Bukkit.getLogger().warning(player.getName() + " has/had an illegal item!");
}
}