Interface ProjectileSource

All Known Subinterfaces:
AcceleratingProjectile, Aerial, Ageable, Agent, Allay, Ambient, Angerable, Animal, Aquatic, AreaEffectCloud, Armadillo, ArmorStand, Arrow, ArrowLike, Attackable, Axolotl, Bat, Bee, Blaze, BlockDisplay, BlockOccupiedMinecart, BlockProjectileSource, Boat, Bogged, Boss, Breedable, Breeze, BreezeWindCharge, Camel, CarrierMinecart<M>, Cat, CaveSpider, Chargeable, ChestBoat, ChestMinecart, Chicken, ClientPlayer, Cod, CommandBlockMinecart, ComplexLiving<T>, ComplexLivingPart<P>, Cow, Creeper, Dispenser, DisplayEntity, Dolphin, Donkey, DragonFireball, Drowned, Egg, ElderGuardian, EndCrystal, EnderDragon, EnderDragonPart, Enderman, Endermite, EnderPearl, Entity, EntityProjectileSource, Evoker, EvokerFangs, ExperienceBottle, ExperienceOrb, Explosive, ExplosiveFireball, EyeOfEnder, FallingBlock, FireworkRocket, Fish, FishingBobber, Fox, Frog, FurnaceMinecart, FusedExplosive, Ghast, Giant, GlowItemFrame, GlowSquid, Goat, Golem, Guardian, Hanging, Hoglin, HopperMinecart, Horse, HorseLike, Hostile, Human, Humanoid, Husk, IgnitingProjectile, Illager, Illusioner, Interaction, IronGolem, Item, ItemDisplay, ItemFrame, ItemRepresentable, Leashable, LeashKnot, LightningBolt, Living, Llama, LlamaSpit, LocalPlayer, MagmaCube, Marker, Minecart, MinecartLike, Monster, Mooshroom, Mule, Ocelot, OminousItemSpawner, Ownable, PackHorse, Painting, Panda, Parrot, PathfinderAgent, Patroller, Phantom, Pig, Piglin, PiglinBrute, PiglinLike, Pillager, Player, PolarBear, Potion, PrimedTNT, Projectile, Pufferfish, Rabbit, Raider, RangedAgent, Ranger, Ravager, RemotePlayer, Saddleable, Salmon, SchoolingFish, ServerPlayer, Sheep, Shulker, ShulkerBullet, Silverfish, Sittable, Skeleton, SkeletonHorse, SkeletonLike, Slime, SmallFireball, Sniffer, Snowball, SnowGolem, SpawnerMinecart, SpectralArrow, Spellcaster, Spider, Squid, Stray, Strider, Tadpole, TameableAnimal, Targeting, TextDisplay, ThrowableItemProjectile, TNTMinecart, TraderLlama, Trident, TropicalFish, Turtle, Vehicle, Vex, Villager, VillagerLike, Vindicator, WanderingTrader, Warden, WindCharge, WindChargeLike, Witch, Wither, WitherSkeleton, WitherSkull, Wolf, Zoglin, Zombie, ZombieHorse, ZombieVillager, ZombifiedPiglin

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

    • launchProjectile

      <T extends Projectile> Optional<T> launchProjectile(EntityType<T> projectileType)
      Launches a Projectile from this projectile source.
      Type Parameters:
      T - The Type of Projectile
      Parameters:
      projectileType - The type of the projectile
      Returns:
      The projectile instance if it was launched, or absent
    • launchProjectile

      default <T extends Projectile> Optional<T> launchProjectile(Supplier<EntityType<T>> projectileType)
      Launches a Projectile from this projectile source.
      Type Parameters:
      T - The Type of Projectile
      Parameters:
      projectileType - The type of the projectile
      Returns:
      The projectile instance if it was launched, or absent
    • launchProjectile

      <T extends Projectile> Optional<T> launchProjectile(EntityType<T> projectileType, Vector3d velocity)
      Launches a Projectile from this projectile source.
      Type Parameters:
      T - The Type of Projectile
      Parameters:
      projectileType - The type of the projectile
      velocity - The velocity to launch the projectile
      Returns:
      The projectile instance if it was launched, or absent
    • launchProjectile

      default <T extends Projectile> Optional<T> launchProjectile(Supplier<EntityType<T>> projectileType, Vector3d velocity)
      Launches a Projectile from this projectile source.
      Type Parameters:
      T - The Type of Projectile
      Parameters:
      projectileType - The type of the projectile
      velocity - The velocity to launch the projectile
      Returns:
      The projectile instance if it was launched, or absent
    • launchProjectileTo

      <T extends Projectile> Optional<T> launchProjectileTo(EntityType<T> projectileType, Entity target)
      Launches a new Projectile from this projectile source.
      Type Parameters:
      T - The Type of Projectile
      Parameters:
      projectileType - The type of the projectile
      target - the target to launch the projectile at
      Returns:
      the projectile if successfully launched, Optional.empty() otherwise
    • launchProjectileTo

      default <T extends Projectile> Optional<T> launchProjectileTo(Supplier<EntityType<T>> projectileType, Entity target)
      Launches a new Projectile from this projectile source.
      Type Parameters:
      T - The Type of Projectile
      Parameters:
      projectileType - The type of the projectile
      target - the target to launch the projectile at
      Returns:
      the projectile if successfully launched, Optional.empty() otherwise