All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.event.entity.EntityShootBowEvent Maven / Gradle / Ivy

package org.bukkit.event.entity;

import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Projectile;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;

/**
 * Called when a LivingEntity shoots a bow firing an arrow
 */
public class EntityShootBowEvent extends EntityEvent implements Cancellable {
  private static final HandlerList handlers = new HandlerList();
  private final ItemStack bow;
  private final float force;
  private Entity projectile;
  private boolean cancelled;

  public EntityShootBowEvent(final LivingEntity shooter, final ItemStack bow, final Projectile projectile, final float force) {
    super(shooter);
    this.bow = bow;
    this.projectile = projectile;
    this.force = force;
  }

  public static HandlerList getHandlerList() {
    return handlers;
  }

  @Override
  public LivingEntity getEntity() {
    return (LivingEntity) entity;
  }

  /**
   * Gets the bow ItemStack used to fire the arrow.
   *
   * @return the bow involved in this event
   */
  public ItemStack getBow() {
    return bow;
  }

  /**
   * Gets the projectile which will be launched by this event
   *
   * @return the launched projectile
   */
  public Entity getProjectile() {
    return projectile;
  }

  /**
   * Replaces the projectile which will be launched
   *
   * @param projectile the new projectile
   */
  public void setProjectile(Entity projectile) {
    this.projectile = projectile;
  }

  /**
   * Gets the force the arrow was launched with
   *
   * @return bow shooting force, up to 1.0
   */
  public float getForce() {
    return force;
  }

  public boolean isCancelled() {
    return cancelled;
  }

  public void setCancelled(boolean cancel) {
    cancelled = cancel;
  }

  @Override
  public HandlerList getHandlers() {
    return handlers;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy