Paper/patches/server/1035-Make-setVelocity-method-of-Fireballs-change-the-trav.patch
Tamion bffb08c2f9
Deprecate Player#boostElytra (#9899)
The Paper method was chosen for deprecation because it was more
restrictive in that it has an isGliding check.
2023-11-04 13:20:13 -07:00

31 lines
1.3 KiB
Diff

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..774ed1fdc909c911bf93a1b720285b43e9f728b8 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
+
@Override
public AbstractHurtingProjectile getHandle() {
return (AbstractHurtingProjectile) this.entity;