Interface ProjectileSource

All Known Subinterfaces:
AbstractHorse, AbstractSkeleton, AbstractVillager, Ageable, Allay, Ambient, Animals, ArmorStand, Axolotl, Bat, Bee, Blaze, BlockProjectileSource, Breedable, Camel, Cat, CaveSpider, ChestedHorse, Chicken, Cod, CollarColorable, ComplexLivingEntity, Cow, Creature, Creeper, Dolphin, Donkey, Drowned, ElderGuardian, EnderDragon, Enderman, Endermite, Enemy, Evoker, Fish, Flying, Fox, Frog, Ghast, Giant, GlowSquid, Goat, Golem, Guardian, Hoglin, Horse, HumanEntity, Husk, Illager, Illusioner, IronGolem, LivingEntity, Llama, MagmaCube, Mob, Monster, Mule, MushroomCow, NPC, Ocelot, Panda, Parrot, Phantom, Pig, Piglin, PiglinAbstract, PiglinBrute, PigZombie, Pillager, Player, PolarBear, PufferFish, Rabbit, Raider, RangedEntity, Ravager, Salmon, SchoolableFish, Sheep, Shulker, Silverfish, Skeleton, SkeletonHorse, Slime, Snowman, Spellcaster, Spider, Squid, Steerable, Stray, Strider, Tadpole, Tameable, TraderLlama, TropicalFish, Turtle, Vex, Villager, Vindicator, WanderingTrader, Warden, WaterMob, Witch, Wither, WitherSkeleton, Wolf, Zoglin, Zombie, ZombieHorse, ZombieVillager

public interface ProjectileSource
Represents a valid source of a projectile.
  • Method Details

    • launchProjectile

      @NotNull <T extends Projectile> T launchProjectile(@NotNull @NotNull Class<? extends T> projectile)
      Launches a Projectile from the ProjectileSource.
      Type Parameters:
      T - a projectile subclass
      Parameters:
      projectile - class of the projectile to launch
      Returns:
      the launched projectile
    • launchProjectile

      @NotNull <T extends Projectile> T launchProjectile(@NotNull @NotNull Class<? extends T> projectile, @Nullable @Nullable Vector velocity)
      Launches a Projectile from the ProjectileSource with an initial velocity.
      Type Parameters:
      T - a projectile subclass
      Parameters:
      projectile - class of the projectile to launch
      velocity - the velocity with which to launch
      Returns:
      the launched projectile
    • launchProjectile

      @NotNull <T extends Projectile> T launchProjectile(@NotNull @NotNull Class<? extends T> projectile, @Nullable @Nullable Vector velocity, @Nullable Consumer<T> function)
      Launches a Projectile from the ProjectileSource with an initial velocity, with the supplied function run before the entity is added to the world.
      Note that when the function is run, the entity will not be actually in the world. Any operation involving such as teleporting the entity is undefined until after this function returns.
      Type Parameters:
      T - a projectile subclass
      Parameters:
      projectile - class of the projectile to launch
      velocity - the velocity with which to launch
      function - the function to be run before the entity is spawned
      Returns:
      the launched projectile