aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--build-data/paper.at3
-rw-r--r--patches/api/0350-Add-API-for-item-entity-health.patch35
-rw-r--r--patches/server/0837-Add-API-for-item-entity-health.patch32
3 files changed, 70 insertions, 0 deletions
diff --git a/build-data/paper.at b/build-data/paper.at
index 73cb1ac04e..da8de1a382 100644
--- a/build-data/paper.at
+++ b/build-data/paper.at
@@ -292,3 +292,6 @@ public net.minecraft.world.item.crafting.RecipeManager byName
# Entity powdered snow API
public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime
+
+# Add health methods for item entities
+public net.minecraft.world.entity.item.ItemEntity health
diff --git a/patches/api/0350-Add-API-for-item-entity-health.patch b/patches/api/0350-Add-API-for-item-entity-health.patch
new file mode 100644
index 0000000000..913f679ec0
--- /dev/null
+++ b/patches/api/0350-Add-API-for-item-entity-health.patch
@@ -0,0 +1,35 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Sat, 28 Aug 2021 09:00:35 -0700
+Subject: [PATCH] Add API for item entity health
+
+
+diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java
+index 0ee072645ecf1bf5feb74de6960947ef76db366e..87dbc00ab565377b8ae0eb6e73799ae6e2e3a376 100644
+--- a/src/main/java/org/bukkit/entity/Item.java
++++ b/src/main/java/org/bukkit/entity/Item.java
+@@ -119,5 +119,24 @@ public interface Item extends Entity {
+ * @param willAge True if the item should age
+ */
+ public void setWillAge(boolean willAge);
++
++ /**
++ * Gets the health of item stack.
++ * <p>
++ * Currently the default max health is 5.
++ *
++ * @return the health
++ */
++ public int getHealth();
++
++ /**
++ * Sets the health of the item stack. If the value is non-positive
++ * the itemstack's normal "on destroy" functionality will be run.
++ * <p>
++ * Currently, the default max health is 5.
++ *
++ * @param health the health, a non-positive value will destroy the entity
++ */
++ public void setHealth(int health);
+ // Paper end
+ }
diff --git a/patches/server/0837-Add-API-for-item-entity-health.patch b/patches/server/0837-Add-API-for-item-entity-health.patch
new file mode 100644
index 0000000000..c475b8fda1
--- /dev/null
+++ b/patches/server/0837-Add-API-for-item-entity-health.patch
@@ -0,0 +1,32 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Sat, 28 Aug 2021 09:00:45 -0700
+Subject: [PATCH] Add API for item entity health
+
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+index 342345eb04d00efb58392ccf209e3c51c1064173..8d56f0ab748373e55c0166b92382c126fe8e5381 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+@@ -85,6 +85,21 @@ public class CraftItem extends CraftEntity implements Item {
+ public void setWillAge(boolean willAge) {
+ item.age = willAge ? 0 : NO_AGE_TIME;
+ }
++
++ @Override
++ public int getHealth() {
++ return item.health;
++ }
++
++ @Override
++ public void setHealth(int health) {
++ if (health <= 0) {
++ item.getItem().onDestroyed(item);
++ item.discard();
++ } else {
++ item.health = health;
++ }
++ }
+ // Paper End
+
+ @Override