From 1455cf2d1c4c47037b40145e9a89ad786f927035 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Tue, 11 Apr 2023 19:23:05 +0200 Subject: [PATCH] Fix enchant book loot --- .../com/songoda/core/lootables/loot/Loot.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Core/src/main/java/com/songoda/core/lootables/loot/Loot.java b/Core/src/main/java/com/songoda/core/lootables/loot/Loot.java index cb13e30e..d8d900a9 100644 --- a/Core/src/main/java/com/songoda/core/lootables/loot/Loot.java +++ b/Core/src/main/java/com/songoda/core/lootables/loot/Loot.java @@ -4,9 +4,11 @@ import com.google.gson.annotations.SerializedName; import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.utils.ItemUtils; import com.songoda.core.utils.TextUtils; +import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.EnchantmentStorageMeta; import java.util.ArrayList; import java.util.Arrays; @@ -149,6 +151,25 @@ public class Loot { return null; } + //Create enchantment book + if (item.getType().equals(Material.ENCHANTED_BOOK)) { + EnchantmentStorageMeta meta = (EnchantmentStorageMeta) item.getItemMeta(); + for (Map.Entry entry : this.enchants.entrySet()) { + if (entry.getValue() == null) continue; + + //TODO add random enchants +// if (entry.getKey().equalsIgnoreCase("RANDOM")) { +// item = ItemUtils.applyRandomEnchants(item, entry.getValue()); +// +// continue; +// } + + meta.addStoredEnchant(Enchantment.getByName(entry.getKey()), entry.getValue(), true); + } + item.setItemMeta(meta); + return item; + } + Map enchants = new HashMap<>(); for (Map.Entry entry : this.enchants.entrySet()) { if (entry.getValue() == null) continue;