From 9f4f29f7adc2884b1bb9557679f8471fb1b7b213 Mon Sep 17 00:00:00 2001 From: JasperLorelai Date: Wed, 30 Sep 2026 15:58:53 +0200 Subject: [PATCH] revert: Parts of ffbe97c642 I didn't check the implementation details of "Player#setCooldown(ItemStack, ticks)" when adding magic item support instead of leaving it material support. The ItemStack method takes the item's cooldown group to apply the cooldown, it doesn't match items in any other way. It could be misleading, as I was misled, to leave Magic Item support, especially since we already have a "key" option for explicit cooldown groups. Users would probably favour that instead of configuring an item there, then having to double-check its config for its cooldown group. --- .../effecttypes/ItemCooldownEffect.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/com/nisovin/magicspells/spelleffects/effecttypes/ItemCooldownEffect.java b/core/src/main/java/com/nisovin/magicspells/spelleffects/effecttypes/ItemCooldownEffect.java index aac279ba7..91cd34763 100644 --- a/core/src/main/java/com/nisovin/magicspells/spelleffects/effecttypes/ItemCooldownEffect.java +++ b/core/src/main/java/com/nisovin/magicspells/spelleffects/effecttypes/ItemCooldownEffect.java @@ -1,5 +1,6 @@ package com.nisovin.magicspells.spelleffects.effecttypes; +import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -10,21 +11,19 @@ import com.nisovin.magicspells.util.SpellData; import com.nisovin.magicspells.util.config.ConfigData; import com.nisovin.magicspells.spelleffects.SpellEffect; -import com.nisovin.magicspells.util.magicitems.MagicItem; import com.nisovin.magicspells.util.config.ConfigDataUtil; -import com.nisovin.magicspells.util.magicitems.MagicItems; @Name("itemcooldown") public class ItemCooldownEffect extends SpellEffect { - private ConfigData item; + private ConfigData item; private ConfigData duration; private ConfigData key; @Override protected void loadFromConfig(ConfigurationSection config) { - item = ConfigDataUtil.getString(config, "item", "stone"); key = ConfigDataUtil.getNamespacedKey(config, "key", null); + item = ConfigDataUtil.getMaterial(config, "item", Material.STONE); duration = ConfigDataUtil.getInteger(config, "duration", TimeUtil.TICKS_PER_SECOND); } @@ -35,10 +34,8 @@ protected Runnable playEffectEntity(Entity entity, SpellData data) { int duration = this.duration.get(data); NamespacedKey key = this.key.get(data); - if (key == null) { - MagicItem item = MagicItems.getMagicItemFromString(this.item.get(data)); - if (item != null) player.setCooldown(item.getItemStack(), duration); - } else player.setCooldown(key, duration); + if (key == null) player.setCooldown(item.get(data), duration); + else player.setCooldown(key, duration); return null; }