From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> Date: Wed, 26 May 2021 19:34:43 -0400 Subject: [PATCH] More Projectile API Co-authored-by: Nassim Jahnke diff --git a/src/main/java/org/bukkit/entity/Firework.java b/src/main/java/org/bukkit/entity/Firework.java index d616d5941b3c7b85e350e845901da798601b9a3c..b7a6e3b1ac327c4e03f9d73952c1ce4d54967cf4 100644 --- a/src/main/java/org/bukkit/entity/Firework.java +++ b/src/main/java/org/bukkit/entity/Firework.java @@ -15,6 +15,8 @@ public interface Firework extends Projectile { /** * Apply the provided meta to the fireworks + *

+ * Adjusts detonation ticks automatically. * * @param meta The FireworkMeta to apply */ @@ -54,4 +56,52 @@ public interface Firework extends Projectile { @org.jetbrains.annotations.Nullable public LivingEntity getBoostedEntity(); // Paper end + + // Paper start - Firework API + /** + * Gets the item used in the firework. + * + * @return firework item + */ + @NotNull + public org.bukkit.inventory.ItemStack getItem(); + + /** + * Sets the item used in the firework. + *

+ * Firework explosion effects are used from this item. + * + * @param itemStack item to set + */ + void setItem(@org.jetbrains.annotations.Nullable org.bukkit.inventory.ItemStack itemStack); + + /** + * Gets the number of ticks the firework has flown. + * + * @return ticks flown + */ + int getTicksFlown(); + + /** + * Sets the number of ticks the firework has flown. + * Setting this greater than detonation ticks will cause the firework to explode. + * + * @param ticks ticks flown + */ + void setTicksFlown(int ticks); + + /** + * Gets the number of ticks the firework will detonate on. + * + * @return the tick to detonate on + */ + int getTicksToDetonate(); + + /** + * Set the amount of ticks the firework will detonate on. + * + * @param ticks ticks to detonate on + */ + void setTicksToDetonate(int ticks); + // Paper stop } diff --git a/src/main/java/org/bukkit/entity/FishHook.java b/src/main/java/org/bukkit/entity/FishHook.java index d1b37530319f6d37ee37f62080289c1e45848bc8..e94c7e279356c510f60508b26277d4891a4258fa 100644 --- a/src/main/java/org/bukkit/entity/FishHook.java +++ b/src/main/java/org/bukkit/entity/FishHook.java @@ -162,4 +162,20 @@ public interface FishHook extends Projectile { */ BOBBING; } + + // Paper start - More FishHook API + /** + * Get the number of ticks the hook needs to wait for a fish to bite. + * + * @return Number of ticks + */ + int getWaitTime(); + + /** + * Sets the number of ticks the hook needs to wait for a fish to bite. + * + * @param ticks Number of ticks + */ + void setWaitTime(int ticks); + // Paper end } diff --git a/src/main/java/org/bukkit/entity/ThrownPotion.java b/src/main/java/org/bukkit/entity/ThrownPotion.java index 10a3c297bd87ad3ab4555054858f47a479e76e1a..977e150569bed69d5d28ae685c9c4a7903fa42a0 100644 --- a/src/main/java/org/bukkit/entity/ThrownPotion.java +++ b/src/main/java/org/bukkit/entity/ThrownPotion.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; /** * Represents a thrown potion bottle */ -public interface ThrownPotion extends Projectile { +public interface ThrownPotion extends ThrowableProjectile { // Paper - extend ThrowableProjectile /** * Returns the effects that are applied by this potion. @@ -32,12 +32,34 @@ public interface ThrownPotion extends Projectile { /** * Set the ItemStack for this thrown potion. - *

- * The ItemStack must be of type {@link org.bukkit.Material#SPLASH_POTION} - * or {@link org.bukkit.Material#LINGERING_POTION}, otherwise an exception - * is thrown. * * @param item New ItemStack */ public void setItem(@NotNull ItemStack item); + + // Paper start - Projectile API + /** + * Gets a copy of the PotionMeta for this thrown potion. + * This includes what effects will be applied by this potion. + * + * @return potion meta + */ + @NotNull + org.bukkit.inventory.meta.PotionMeta getPotionMeta(); + + /** + * Sets the PotionMeta of this thrown potion. + * This will modify the effects applied by this potion. + *

+ * Note that the type of {@link #getItem()} is irrelevant + * + * @param meta potion meta + */ + void setPotionMeta(@NotNull org.bukkit.inventory.meta.PotionMeta meta); + + /** + * Splashes the potion at its current location. + */ + void splash(); + // Paper end }