From d5bd36a2d4a7717625c278ce7e3d7d97f2c9938b Mon Sep 17 00:00:00 2001 From: DerFrZocker Date: Sat, 25 Dec 2021 12:17:55 +0100 Subject: [PATCH] Fix / Implement merge changes --- src/main/java/org/bukkit/Material.java | 10 +++++----- src/main/java/org/bukkit/UnsafeValues.java | 6 ------ .../java/org/bukkit/inventory/ItemType.java | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java index 8f012207..61e599bd 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java @@ -2657,13 +2657,13 @@ public interface Material extends Keyed, Comparable { * @param slot the {@link EquipmentSlot} to check * @return the immutable {@link Multimap} with the respective default * Attributes and modifiers, or an empty map if no attributes are set. + * @see Material#asItemType() + * @see ItemType#getDefaultAttributeModifiers() + * @deprecated Can only get default attribute modifiers from ItemType */ @NotNull - public Multimap getDefaultAttributeModifiers(@NotNull EquipmentSlot slot) { - Validate.isTrue(isItem(), "The Material is not an item!"); - - return Bukkit.getUnsafe().getDefaultAttributeModifiers(this, slot); - } + @Deprecated + Multimap getDefaultAttributeModifiers(@NotNull EquipmentSlot slot); /** * @param other to compare to. diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java index 7f53da84..915c16be 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -1,11 +1,7 @@ package org.bukkit; -import com.google.common.collect.Multimap; import org.bukkit.advancement.Advancement; -import org.bukkit.attribute.Attribute; -import org.bukkit.attribute.AttributeModifier; import org.bukkit.block.data.BlockData; -import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; import org.bukkit.plugin.InvalidPluginException; @@ -74,8 +70,6 @@ public interface UnsafeValues { */ boolean removeAdvancement(NamespacedKey key); - Multimap getDefaultAttributeModifiers(Material material, EquipmentSlot slot); - Material getLegacyMaterial(String name); @Deprecated diff --git a/src/main/java/org/bukkit/inventory/ItemType.java b/src/main/java/org/bukkit/inventory/ItemType.java index b6b4fa0b..4c69cf0a 100644 --- a/src/main/java/org/bukkit/inventory/ItemType.java +++ b/src/main/java/org/bukkit/inventory/ItemType.java @@ -1,6 +1,9 @@ package org.bukkit.inventory; +import com.google.common.collect.Multimap; import org.bukkit.Material; +import org.bukkit.attribute.Attribute; +import org.bukkit.attribute.AttributeModifier; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -1173,4 +1176,18 @@ public interface ItemType extends Material { */ @NotNull EquipmentSlot getEquipmentSlot(); + + /** + * Return an immutable copy of all default {@link Attribute}s and their + * {@link AttributeModifier}s for a given {@link EquipmentSlot}. + * + * Default attributes are those that are always preset on some items, such + * as the attack damage on weapons or the armor value on armor. + * + * @param slot the {@link EquipmentSlot} to check + * @return the immutable {@link Multimap} with the respective default + * Attributes and modifiers, or an empty map if no attributes are set. + */ + @NotNull + Multimap getDefaultAttributeModifiers(@NotNull EquipmentSlot slot); }