001 package org.bukkit.entity; 002 003 import org.bukkit.projectiles.ProjectileSource; 004 005 /** 006 * Represents a shootable entity. 007 */ 008 public interface Projectile extends Entity { 009 010 /** 011 * This method exists for legacy reasons to provide backwards 012 * compatibility. It will not exist at runtime and should not be used 013 * under any circumstances. 014 */ 015 @Deprecated 016 public LivingEntity _INVALID_getShooter(); 017 018 /** 019 * Retrieve the shooter of this projectile. 020 * 021 * @return the {@link ProjectileSource} that shot this projectile 022 */ 023 public ProjectileSource getShooter(); 024 025 /** 026 * This method exists for legacy reasons to provide backwards 027 * compatibility. It will not exist at runtime and should not be used 028 * under any circumstances. 029 */ 030 @Deprecated 031 public void _INVALID_setShooter(LivingEntity shooter); 032 033 /** 034 * Set the shooter of this projectile. 035 * 036 * @param source the {@link ProjectileSource} that shot this projectile 037 */ 038 public void setShooter(ProjectileSource source); 039 040 /** 041 * Determine if this projectile should bounce or not when it hits. 042 * <p> 043 * If a small fireball does not bounce it will set the target on fire. 044 * 045 * @return true if it should bounce. 046 */ 047 public boolean doesBounce(); 048 049 /** 050 * Set whether or not this projectile should bounce or not when it hits 051 * something. 052 * 053 * @param doesBounce whether or not it should bounce. 054 */ 055 public void setBounce(boolean doesBounce); 056 }