From b769b5752f8992e2862baaf5afbf8a228e575382 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Sat, 18 Jan 2025 00:03:26 -0300 Subject: [PATCH] Whoops, I forgot to commit the API classes --- .../EntityGetProjectileForWeaponEvent.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 sparklypaper-api/src/main/java/net/sparklypower/sparklypaper/event/entity/EntityGetProjectileForWeaponEvent.java diff --git a/sparklypaper-api/src/main/java/net/sparklypower/sparklypaper/event/entity/EntityGetProjectileForWeaponEvent.java b/sparklypaper-api/src/main/java/net/sparklypower/sparklypaper/event/entity/EntityGetProjectileForWeaponEvent.java new file mode 100644 index 0000000..bdb4f23 --- /dev/null +++ b/sparklypaper-api/src/main/java/net/sparklypower/sparklypaper/event/entity/EntityGetProjectileForWeaponEvent.java @@ -0,0 +1,57 @@ +package net.sparklypower.sparklypaper.event.entity; + +import org.bukkit.entity.Entity; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Called when the server attempts to get the projectiles for a weapon. This is called before any projectiles are decided for a specific weapon + */ +public class EntityGetProjectileForWeaponEvent extends EntityEvent { + private static final HandlerList handlers = new HandlerList(); + private final ItemStack bow; + private ItemStack arrow; + + public EntityGetProjectileForWeaponEvent(@NotNull final Entity entity, @NotNull ItemStack bow) { + super(entity); + this.entity = entity; + this.bow = bow; + } + + /** + * @return the item that the player is using to fire the arrow + */ + @NotNull + public ItemStack getBow() { + return this.bow; + } + + /** + * @return the arrow that is attempting to be used, this is null if setArrow was not used + */ + @Nullable + public ItemStack getArrow() { + return this.arrow; + } + + /** + * Sets the arrow that is going to be used + */ + public void setArrow(@Nullable final ItemStack arrow) { + this.arrow = arrow; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +}