From 11a4d6693efb134d15383d791e3a9d29f5b8339c Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Fri, 21 Feb 2020 09:53:46 +1100 Subject: [PATCH] SPIGOT-5311: Add API to get/set item associated with throwable projectiles By: Lars Dormans --- .../src/main/java/org/bukkit/entity/Egg.java | 2 +- .../java/org/bukkit/entity/EnderPearl.java | 2 +- .../java/org/bukkit/entity/LargeFireball.java | 2 +- .../java/org/bukkit/entity/SizedFireball.java | 25 +++++++++++++++++++ .../java/org/bukkit/entity/SmallFireball.java | 2 +- .../main/java/org/bukkit/entity/Snowball.java | 2 +- .../bukkit/entity/ThrowableProjectile.java | 22 ++++++++++++++++ .../org/bukkit/entity/ThrownExpBottle.java | 2 +- 8 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 paper-api/src/main/java/org/bukkit/entity/SizedFireball.java create mode 100644 paper-api/src/main/java/org/bukkit/entity/ThrowableProjectile.java diff --git a/paper-api/src/main/java/org/bukkit/entity/Egg.java b/paper-api/src/main/java/org/bukkit/entity/Egg.java index 2dcc00b94b..2713bee68f 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Egg.java +++ b/paper-api/src/main/java/org/bukkit/entity/Egg.java @@ -3,4 +3,4 @@ package org.bukkit.entity; /** * Represents a thrown egg. */ -public interface Egg extends Projectile {} +public interface Egg extends ThrowableProjectile {} diff --git a/paper-api/src/main/java/org/bukkit/entity/EnderPearl.java b/paper-api/src/main/java/org/bukkit/entity/EnderPearl.java index db18a90ba4..aae65bbba5 100644 --- a/paper-api/src/main/java/org/bukkit/entity/EnderPearl.java +++ b/paper-api/src/main/java/org/bukkit/entity/EnderPearl.java @@ -3,6 +3,6 @@ package org.bukkit.entity; /** * Represents a thrown Ender Pearl entity */ -public interface EnderPearl extends Projectile { +public interface EnderPearl extends ThrowableProjectile { } diff --git a/paper-api/src/main/java/org/bukkit/entity/LargeFireball.java b/paper-api/src/main/java/org/bukkit/entity/LargeFireball.java index fc3a1093cc..b5f3cc9de7 100644 --- a/paper-api/src/main/java/org/bukkit/entity/LargeFireball.java +++ b/paper-api/src/main/java/org/bukkit/entity/LargeFireball.java @@ -3,5 +3,5 @@ package org.bukkit.entity; /** * Represents a large {@link Fireball} */ -public interface LargeFireball extends Fireball { +public interface LargeFireball extends SizedFireball { } diff --git a/paper-api/src/main/java/org/bukkit/entity/SizedFireball.java b/paper-api/src/main/java/org/bukkit/entity/SizedFireball.java new file mode 100644 index 0000000000..976739f8c7 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/SizedFireball.java @@ -0,0 +1,25 @@ +package org.bukkit.entity; + +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +/** + * Represents a sized fireball. + */ +public interface SizedFireball extends Fireball { + + /** + * Gets the display {@link ItemStack}. + * + * @return display ItemStack + */ + @NotNull + ItemStack getDisplayItem(); + + /** + * Sets the display {@link ItemStack} for the fireball. + * + * @param item the ItemStack to display + */ + void setDisplayItem(@NotNull ItemStack item); +} diff --git a/paper-api/src/main/java/org/bukkit/entity/SmallFireball.java b/paper-api/src/main/java/org/bukkit/entity/SmallFireball.java index 33f54d3eff..8c051c84e3 100644 --- a/paper-api/src/main/java/org/bukkit/entity/SmallFireball.java +++ b/paper-api/src/main/java/org/bukkit/entity/SmallFireball.java @@ -3,6 +3,6 @@ package org.bukkit.entity; /** * Represents a small {@link Fireball} */ -public interface SmallFireball extends Fireball { +public interface SmallFireball extends SizedFireball { } diff --git a/paper-api/src/main/java/org/bukkit/entity/Snowball.java b/paper-api/src/main/java/org/bukkit/entity/Snowball.java index 8c6b43339d..102a5df62d 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Snowball.java +++ b/paper-api/src/main/java/org/bukkit/entity/Snowball.java @@ -3,4 +3,4 @@ package org.bukkit.entity; /** * Represents a snowball. */ -public interface Snowball extends Projectile {} +public interface Snowball extends ThrowableProjectile {} diff --git a/paper-api/src/main/java/org/bukkit/entity/ThrowableProjectile.java b/paper-api/src/main/java/org/bukkit/entity/ThrowableProjectile.java new file mode 100644 index 0000000000..ceb3e2c511 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/ThrowableProjectile.java @@ -0,0 +1,22 @@ +package org.bukkit.entity; + +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +public interface ThrowableProjectile extends Projectile { + + /** + * Gets the ItemStack the thrown projectile will display. + * + * @return The thrown item display ItemStack + */ + @NotNull + ItemStack getItem(); + + /** + * Sets the display ItemStack for the thrown projectile. + * + * @param item ItemStack set to be displayed + */ + void setItem(@NotNull ItemStack item); +} diff --git a/paper-api/src/main/java/org/bukkit/entity/ThrownExpBottle.java b/paper-api/src/main/java/org/bukkit/entity/ThrownExpBottle.java index 671282ed2f..3653efe3d9 100644 --- a/paper-api/src/main/java/org/bukkit/entity/ThrownExpBottle.java +++ b/paper-api/src/main/java/org/bukkit/entity/ThrownExpBottle.java @@ -3,6 +3,6 @@ package org.bukkit.entity; /** * Represents a thrown Experience bottle. */ -public interface ThrownExpBottle extends Projectile { +public interface ThrownExpBottle extends ThrowableProjectile { }