From cdecd05fe4a41c032eb78a311d3a73ceea52b296 Mon Sep 17 00:00:00 2001 From: Krakenied Date: Thu, 27 Feb 2025 18:58:21 +0100 Subject: Fix HIDE_ATTRIBUTES on Spigot Closes https://github.com/LMBishop/Quests/issues/766 --- .../quests/bukkit/hook/itemgetter/ItemGetter20.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'bukkit/src/main/java/com/leonardobishop') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter20.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter20.java index cca3e903..a7d97a02 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter20.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter20.java @@ -1,5 +1,6 @@ package com.leonardobishop.quests.bukkit.hook.itemgetter; +import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.util.NamespacedKeyUtils; @@ -17,6 +18,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.SkullMeta; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -129,9 +131,6 @@ public class ItemGetter20 extends ItemGetter { // item flags List itemFlagStrings = config.getStringList("itemflags"); if (!itemFlagStrings.isEmpty() && !filters.contains(Filter.ITEM_FLAGS)) { - // in case some idiot adds a flag twice - not sure about its behaviour - boolean modifiersAdded = false; - for (String itemFlagString : itemFlagStrings) { ItemFlag itemFlag; try { @@ -140,16 +139,10 @@ public class ItemGetter20 extends ItemGetter { continue; } - if (!modifiersAdded && itemFlag == ItemFlag.HIDE_ATTRIBUTES) { - Material type = item.getType(); - - for (EquipmentSlot equipmentSlot : EquipmentSlot.values()) { - Multimap attributeModifiers = type.getDefaultAttributeModifiers(equipmentSlot); - - attributeModifiers.forEach(meta::addAttributeModifier); - } - - modifiersAdded = true; + if (itemFlag == ItemFlag.HIDE_ATTRIBUTES) { + // I don't like the solution due to the loss of the original attributes, + // however ItemGetters are used only for GUIs so it's not a real loss. + meta.setAttributeModifiers(ImmutableMultimap.of()); } meta.addItemFlags(itemFlag); -- cgit v1.2.3-70-g09d2