From 3978f765c9890a1155fee05757124d144ad27651 Mon Sep 17 00:00:00 2001 From: Aria Date: Thu, 12 Sep 2019 03:44:45 +0200 Subject: [PATCH] Fixed infinite smithing xp bug --- .../experience/source/RepairItemExperienceSource.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/Indyuce/mmocore/api/experience/source/RepairItemExperienceSource.java b/src/main/java/net/Indyuce/mmocore/api/experience/source/RepairItemExperienceSource.java index bae98566..134c3583 100644 --- a/src/main/java/net/Indyuce/mmocore/api/experience/source/RepairItemExperienceSource.java +++ b/src/main/java/net/Indyuce/mmocore/api/experience/source/RepairItemExperienceSource.java @@ -6,6 +6,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.AnvilInventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.Damageable; @@ -44,9 +45,16 @@ public class RepairItemExperienceSource extends ExperienceSource { ItemStack item = event.getCurrentItem(); PlayerData data = PlayerData.get((Player) event.getWhoClicked()); - + for (RepairItemExperienceSource source : getSources()) if (source.matches(data, item)) { + + if(!(event.getInventory() instanceof AnvilInventory)) + return; + + if(((AnvilInventory) event.getInventory()).getRepairCost() > + ((Player) event.getWhoClicked()).getLevel()) return; + /* * make sure the items can actually be repaired * before getting the amount of durability repaired