From dbdda22170e781bd77c5796e2eb49f86a30240bf Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 15 Oct 2020 20:14:36 +0100 Subject: [PATCH] Reverted changes --- .../ecoenchants/curse/DecayCurse.java | 30 +++++++++++-------- .../ecoenchants/special/Repairing.java | 24 ++++++++------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/DecayCurse.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/DecayCurse.java index 9ea222b9..1aa1057d 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/DecayCurse.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/DecayCurse.java @@ -15,12 +15,11 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.Repairable; import java.util.Arrays; import java.util.HashSet; -import java.util.List; import java.util.Set; -import java.util.stream.Collectors; public final class DecayCurse extends EcoEnchant implements EcoRunnable { public DecayCurse() { @@ -65,24 +64,29 @@ public final class DecayCurse extends EcoEnchant implements EcoRunnable { private void refresh() { players.clear(); EcoEnchantsPlugin.getInstance().getServer().getOnlinePlayers().forEach(player -> { - if(Arrays.stream(player.getInventory().getContents()).parallel().anyMatch(item -> EnchantChecks.item(item, EcoEnchants.DECAY_CURSE))) + if(Arrays.stream(player.getInventory().getContents()).parallel().anyMatch(item -> EnchantChecks.item(item, EcoEnchants.REPAIRING))) players.add(player); }); - amount = EcoEnchants.DECAY_CURSE.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "damage"); + amount = EcoEnchants.REPAIRING.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "damage"); } @Override public void run() { players.forEach((player -> { - List toRepair = Arrays.stream(player.getInventory().getContents()) - .filter(ItemStack::hasItemMeta) - .filter(item -> item.getItemMeta().hasEnchant(EcoEnchants.DECAY_CURSE)) - .filter(item -> !player.getInventory().getItemInOffHand().equals(item)) - .filter(item -> !player.getInventory().getItemInMainHand().equals(item)) - .filter(item -> !player.getItemOnCursor().equals(item)).collect(Collectors.toList()); - toRepair.forEach(itemStack -> { - DurabilityUtils.damageItemNoBreak(itemStack, amount, player); - }); + for(ItemStack item : player.getInventory().getContents()) { + if(!EnchantChecks.item(item, EcoEnchants.DECAY_CURSE)) continue; + + if(!(item.getItemMeta() instanceof Repairable)) continue; + + if(player.getInventory().getItemInMainHand().equals(item)) continue; + if(player.getInventory().getItemInOffHand().equals(item)) continue; + if(player.getItemOnCursor().equals(item)) continue; + + + int damage = EcoEnchants.DECAY_CURSE.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "damage"); + + DurabilityUtils.damageItemNoBreak(item, damage, player); + } })); } diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Repairing.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Repairing.java index 58d29f86..47df6c7b 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Repairing.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Repairing.java @@ -15,12 +15,11 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.Repairable; import java.util.Arrays; import java.util.HashSet; -import java.util.List; import java.util.Set; -import java.util.stream.Collectors; public final class Repairing extends EcoEnchant implements EcoRunnable { public Repairing() { @@ -73,17 +72,22 @@ public final class Repairing extends EcoEnchant implements EcoRunnable { @Override public void run() { players.forEach((player -> { - List toRepair = Arrays.stream(player.getInventory().getContents()) - .filter(ItemStack::hasItemMeta) - .filter(item -> item.getItemMeta().hasEnchant(EcoEnchants.REPAIRING)) - .filter(item -> !player.getInventory().getItemInOffHand().equals(item)) - .filter(item -> !player.getInventory().getItemInMainHand().equals(item)) - .filter(item -> !player.getItemOnCursor().equals(item)).collect(Collectors.toList()); - toRepair.forEach(item -> { + for(ItemStack item : player.getInventory().getContents()) { + if(!EnchantChecks.item(item, EcoEnchants.REPAIRING)) continue; + + if(!(item.getItemMeta() instanceof Repairable)) continue; + + if(player.getInventory().getItemInMainHand().equals(item)) continue; + if(player.getInventory().getItemInOffHand().equals(item)) continue; + if(player.getItemOnCursor().equals(item)) continue; + + int level = EnchantChecks.getItemLevel(item, EcoEnchants.REPAIRING); + int multiplier = EcoEnchants.REPAIRING.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "multiplier"); int repairAmount = level * multiplier; + DurabilityUtils.repairItem(item, repairAmount); - }); + } })); }