From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Tue, 28 May 2024 19:59:01 -0700 Subject: [PATCH] General ItemMeta fixes diff --git a/src/main/java/org/bukkit/FireworkEffect.java b/src/main/java/org/bukkit/FireworkEffect.java index 637fa73d4366c2d88e2716e5c8d3465706d788a7..0f03c546ecdd6383fb36a362d18d6fb57f2ccfee 100644 --- a/src/main/java/org/bukkit/FireworkEffect.java +++ b/src/main/java/org/bukkit/FireworkEffect.java @@ -322,9 +322,7 @@ public final class FireworkEffect implements ConfigurationSerializable { private String string = null; FireworkEffect(boolean flicker, boolean trail, @NotNull ImmutableList colors, @NotNull ImmutableList fadeColors, @NotNull Type type) { - if (colors.isEmpty()) { - throw new IllegalStateException("Cannot make FireworkEffect without any color"); - } + // Paper - can have empty colors this.flicker = flicker; this.trail = trail; this.colors = colors; diff --git a/src/main/java/org/bukkit/inventory/meta/Damageable.java b/src/main/java/org/bukkit/inventory/meta/Damageable.java index ff6818b6d9e0207eafdd749928f33aeac3f27191..992f39da07bafe9769effaa7dc6adc018c89329d 100644 --- a/src/main/java/org/bukkit/inventory/meta/Damageable.java +++ b/src/main/java/org/bukkit/inventory/meta/Damageable.java @@ -9,14 +9,17 @@ import org.jetbrains.annotations.Nullable; public interface Damageable extends ItemMeta { /** - * Checks to see if this item has damage + * Checks to see if this item has damage greater than 0. * - * @return true if this has damage + * @return true if this has damage > 0 */ boolean hasDamage(); /** * Gets the damage + *

+ * Call {@link #hasDamageValue()} to be sure + * a damage value is set. * * @return the damage */ @@ -26,9 +29,27 @@ public interface Damageable extends ItemMeta { * Sets the damage * * @param damage item damage + * @see #resetDamage() to reset and clear the damage data component */ void setDamage(int damage); + // Paper start + /** + * Checks if any damage value, including 0, + * is set on this meta. + * + * @return true if any value is set + */ + boolean hasDamageValue(); + + /** + * Clears the damage component from the meta. Differs + * from {@code setDamage(0)} in that it removes the component + * instead of adding the component with a value of 0. + */ + void resetDamage(); + // Paper end + /** * Checks to see if this item has a maximum amount of damage. * diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java index 1a4260b00b193b94ce4b1b2954644f4e41baff4c..5d5fcb2720b62e47d47f441032c4de02574b051a 100644 --- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java @@ -673,8 +673,9 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste /** * Set all {@link Attribute}s and their {@link AttributeModifier}s. - * To clear all currently set Attributes and AttributeModifiers use - * null or an empty Multimap. + * To clear all custom attribute modifiers, use {@code null}. To set + * no modifiers (which will override the default modifiers), use an + * empty map. * If not null nor empty, this will filter all entries that are not-null * and add them to the ItemStack. *