aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0955-Make-setVelocity-method-of-Fireballs-change-the-trav.patch
blob: 3af04ed113ac5b3b799f0db725fd5781ff86d56a (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
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: TrollyLoki <trollyloki@gmail.com>
Date: Tue, 10 Oct 2023 00:45:01 -0400
Subject: [PATCH] Make setVelocity method of Fireballs change the travel
 direction to an arbitrary vector


diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
index 2783e218d5e5c24787429237974e196761f4d02b..1d8aab2fda18c6e2bb30f6ba4a6325263267b628 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
@@ -46,6 +46,18 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
         this.update(); // SPIGOT-6579
     }
 
+    // Paper start - set direction without normalizing
+    @Override
+    public void setVelocity(Vector velocity) {
+        Preconditions.checkArgument(velocity != null, "Vector velocity cannot be null");
+        velocity.checkFinite();
+        this.getHandle().xPower = velocity.getX();
+        this.getHandle().yPower = velocity.getY();
+        this.getHandle().zPower = velocity.getZ();
+        update();
+    }
+    // Paper end - set direction without normalizing
+
     @Override
     public AbstractHurtingProjectile getHandle() {
         return (AbstractHurtingProjectile) this.entity;