From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MelnCat Date: Mon, 19 Sep 2022 14:04:13 -0700 Subject: [PATCH] Add a consumer parameter to ProjectileSource#launchProjectile diff --git a/src/main/java/org/bukkit/projectiles/ProjectileSource.java b/src/main/java/org/bukkit/projectiles/ProjectileSource.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/projectiles/ProjectileSource.java +++ b/src/main/java/org/bukkit/projectiles/ProjectileSource.java @@ -0,0 +0,0 @@ public interface ProjectileSource { */ @NotNull public T launchProjectile(@NotNull Class projectile, @Nullable Vector velocity); + + // Paper start + /** + * Launches a {@link 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. + * + * @param a projectile subclass + * @param projectile class of the projectile to launch + * @param velocity the velocity with which to launch + * @param function the function to be run before the entity is spawned + * @return the launched projectile + */ + @NotNull + public T launchProjectile(@NotNull Class projectile, @Nullable Vector velocity, @Nullable org.bukkit.util.Consumer function); + // Paper end }