remove mending from enchanted book storage data

This commit is contained in:
2023-11-15 19:31:26 +01:00
parent 6d5862a5e3
commit 21684454a6
2 changed files with 14 additions and 1 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
<groupId>me.youhavetrouble</groupId> <groupId>me.youhavetrouble</groupId>
<artifactId>MendingBeGone</artifactId> <artifactId>MendingBeGone</artifactId>
<version>1.1</version> <version>1.2</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>MendingBeGone</name> <name>MendingBeGone</name>
@@ -16,6 +16,7 @@ import org.bukkit.inventory.Merchant;
import org.bukkit.inventory.MerchantInventory; import org.bukkit.inventory.MerchantInventory;
import org.bukkit.inventory.MerchantRecipe; import org.bukkit.inventory.MerchantRecipe;
import org.bukkit.inventory.meta.EnchantmentStorageMeta; import org.bukkit.inventory.meta.EnchantmentStorageMeta;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList; import java.util.ArrayList;
@@ -69,12 +70,24 @@ public final class MendingBeGone extends JavaPlugin implements Listener {
private void replaceMendingOnItem(ItemStack itemStack) { private void replaceMendingOnItem(ItemStack itemStack) {
if (itemStack == null) return; if (itemStack == null) return;
if (!itemStack.hasItemMeta()) return;
if (itemStack.containsEnchantment(Enchantment.MENDING)) { if (itemStack.containsEnchantment(Enchantment.MENDING)) {
itemStack.removeEnchantment(Enchantment.MENDING); itemStack.removeEnchantment(Enchantment.MENDING);
if (itemStack.containsEnchantment(Enchantment.DURABILITY)) if (itemStack.containsEnchantment(Enchantment.DURABILITY))
itemStack.removeEnchantment(Enchantment.DURABILITY); itemStack.removeEnchantment(Enchantment.DURABILITY);
itemStack.addEnchantment(Enchantment.DURABILITY, 3); itemStack.addEnchantment(Enchantment.DURABILITY, 3);
} }
if (!Material.ENCHANTED_BOOK.equals(itemStack.getType())) return;
ItemMeta meta = itemStack.getItemMeta();
if (!(meta instanceof EnchantmentStorageMeta)) return;
EnchantmentStorageMeta storage = (EnchantmentStorageMeta) meta;
if (storage.hasStoredEnchant(Enchantment.MENDING)) {
storage.removeStoredEnchant(Enchantment.MENDING);
if (storage.hasStoredEnchant(Enchantment.DURABILITY))
storage.removeStoredEnchant(Enchantment.DURABILITY);
storage.addStoredEnchant(Enchantment.DURABILITY, 3, true);
itemStack.setItemMeta(storage);
}
} }
private void removeMendingTrade(Merchant merchant) { private void removeMendingTrade(Merchant merchant) {