From 70f9a779f3c61732eca119874e5768406b93214e Mon Sep 17 00:00:00 2001 From: Warrior <50800980+Warriorrrr@users.noreply.github.com> Date: Mon, 24 Nov 2025 19:42:12 +0100 Subject: [PATCH 1/2] Add and clarify Attribute#getDefaultValue --- .../src/main/java/org/bukkit/attribute/Attribute.java | 8 ++++++++ .../main/java/org/bukkit/attribute/AttributeInstance.java | 6 ++++++ .../org/bukkit/craftbukkit/attribute/CraftAttribute.java | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/paper-api/src/main/java/org/bukkit/attribute/Attribute.java b/paper-api/src/main/java/org/bukkit/attribute/Attribute.java index a1b2208eaff4..9e2cb7fadd4e 100644 --- a/paper-api/src/main/java/org/bukkit/attribute/Attribute.java +++ b/paper-api/src/main/java/org/bukkit/attribute/Attribute.java @@ -9,6 +9,7 @@ import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.Translatable; +import org.bukkit.entity.EntityType; import org.bukkit.util.OldEnum; import org.jetbrains.annotations.NotNull; @@ -169,6 +170,13 @@ private static Attribute getAttribute(@NotNull String key) { @NotNull Sentiment getSentiment(); + /** + * {@return the default value of this attribute} + *
+ * Default attribute values may differ between entity types, use {@link EntityType#getDefaultAttributes()} to get default attribute values for a specific entity type. + */ + double getDefaultValue(); + /** * @param name of the attribute. * @return the attribute with the given name. diff --git a/paper-api/src/main/java/org/bukkit/attribute/AttributeInstance.java b/paper-api/src/main/java/org/bukkit/attribute/AttributeInstance.java index 788ac9c22fd6..0f879ace2241 100644 --- a/paper-api/src/main/java/org/bukkit/attribute/AttributeInstance.java +++ b/paper-api/src/main/java/org/bukkit/attribute/AttributeInstance.java @@ -111,6 +111,12 @@ public interface AttributeInstance { * Gets the default value of the Attribute attached to this instance. * * @return server default value + * + * @deprecated This method is placed misleadingly as it does not return the default value in the current entity's context, but in the server's context. + * Use {@link Attribute#getDefaultValue()} as a replacement and see the note there about default values for specific entity types. + * @see Attribute#getDefaultValue() + * @see org.bukkit.entity.EntityType#getDefaultAttributes() */ + @Deprecated(since = "1.21.10") double getDefaultValue(); } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttribute.java b/paper-server/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttribute.java index bdb4d0b55a41..69d892cc5558 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttribute.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttribute.java @@ -61,6 +61,11 @@ public Sentiment getSentiment() { return Sentiment.valueOf(this.getHandle().sentiment.name()); } + @Override + public double getDefaultValue() { + return this.getHandle().getDefaultValue(); + } + @Override public String getTranslationKey() { return this.getHandle().getDescriptionId(); From 54f2c422f86fd251b2d9665347b36c671b9440ca Mon Sep 17 00:00:00 2001 From: Warrior <50800980+Warriorrrr@users.noreply.github.com> Date: Fri, 2 Jan 2026 13:03:48 +0100 Subject: [PATCH 2/2] Adjust deprecation version to current one --- .../src/main/java/org/bukkit/attribute/AttributeInstance.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper-api/src/main/java/org/bukkit/attribute/AttributeInstance.java b/paper-api/src/main/java/org/bukkit/attribute/AttributeInstance.java index 0f879ace2241..c1264ae6a0e8 100644 --- a/paper-api/src/main/java/org/bukkit/attribute/AttributeInstance.java +++ b/paper-api/src/main/java/org/bukkit/attribute/AttributeInstance.java @@ -117,6 +117,6 @@ public interface AttributeInstance { * @see Attribute#getDefaultValue() * @see org.bukkit.entity.EntityType#getDefaultAttributes() */ - @Deprecated(since = "1.21.10") + @Deprecated(since = "1.21.11") double getDefaultValue(); }