13
0
geforkt von Mirrors/Paper

#691: Add Material#getDefaultAttributeModifiers

By: coll1234567 <joshl5324@gmail.com>
Dieser Commit ist enthalten in:
Bukkit/Spigot 2021-12-24 12:06:21 +11:00
Ursprung 0503e4faed
Commit 489aef2efc
2 geänderte Dateien mit 29 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -1,11 +1,14 @@
package org.bukkit; package org.bukkit;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.function.Consumer; import java.util.function.Consumer;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.block.data.Ageable; import org.bukkit.block.data.Ageable;
import org.bukkit.block.data.AnaloguePowerable; import org.bukkit.block.data.AnaloguePowerable;
import org.bukkit.block.data.Bisected; import org.bukkit.block.data.Bisected;
@ -9757,4 +9760,24 @@ public enum Material implements Keyed {
// </editor-fold> // </editor-fold>
} }
} }
/**
* 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.
*
* Only available when {@link #isItem()} is true.
*
* @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
public Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(@NotNull EquipmentSlot slot) {
Validate.isTrue(isItem(), "The Material is not an item!");
return Bukkit.getUnsafe().getDefaultAttributeModifiers(this, slot);
}
} }

Datei anzeigen

@ -1,7 +1,11 @@
package org.bukkit; package org.bukkit;
import com.google.common.collect.Multimap;
import org.bukkit.advancement.Advancement; import org.bukkit.advancement.Advancement;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.material.MaterialData; import org.bukkit.material.MaterialData;
import org.bukkit.plugin.InvalidPluginException; import org.bukkit.plugin.InvalidPluginException;
@ -69,4 +73,6 @@ public interface UnsafeValues {
* @return true if a file matching this key was found and deleted * @return true if a file matching this key was found and deleted
*/ */
boolean removeAdvancement(NamespacedKey key); boolean removeAdvancement(NamespacedKey key);
Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(Material material, EquipmentSlot slot);
} }