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 }