aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0361-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
blob: 291761dadb492fc29d0379ba805feedc2b3d6413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: MelnCat <melncatuwu@gmail.com>
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 eabd8b926ec1c934cd7e77b7cc6adfae16771021..96ebd30d339060758e726e9e1e7428d1d0813c17 100644
--- a/src/main/java/org/bukkit/projectiles/ProjectileSource.java
+++ b/src/main/java/org/bukkit/projectiles/ProjectileSource.java
@@ -31,4 +31,23 @@ public interface ProjectileSource {
      */
     @NotNull
     public <T extends Projectile> T launchProjectile(@NotNull Class<? extends T> projectile, @Nullable Vector velocity);
+    
+    // Paper start - add consumer to launchProjectile
+    /**
+     * Launches a {@link Projectile} from the ProjectileSource with an
+     * initial velocity, with the supplied function run before the
+     * entity is added to the world.
+     * <br>
+     * 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 <T> 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
+     */
+    <T extends Projectile> @NotNull T launchProjectile(@NotNull Class<? extends T> projectile, @Nullable Vector velocity, java.util.function.@Nullable Consumer<? super T> function);
+    // Paper end - add consumer to launchProjectile
 }