package org.bukkit.projectiles; import org.bukkit.entity.Projectile; import org.bukkit.util.Vector; /** * Represents a valid source of a projectile. */ public interface ProjectileSource { /** * Launches a {@link Projectile} from the ProjectileSource. * * @param projectile class of the projectile to launch * @return the launched projectile */ public T launchProjectile(Class projectile); /** * Launches a {@link Projectile} from the ProjectileSource with an * initial velocity. * * @param projectile class of the projectile to launch * @param velocity the velocity with which to launch * @return the launched projectile */ public T launchProjectile(Class projectile, Vector velocity); }