Skip to content

Commit b1b5d4c

Browse files
committed
Check shooter in configurable projectile relative velocity patch
1 parent 4d7cef3 commit b1b5d4c

4 files changed

+20
-13
lines changed

patches/server/0295-Configurable-projectile-relative-velocity.patch

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,22 @@ P3) Solutions for 1) and especially 2) might not be future-proof, while this
2525
server-internal fix makes this change future-proof.
2626

2727
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
28-
index 30eb86b52f00cfa61af4f93aca50ffc3547c95e8..7863625d49baa13ea87f2ee295b16706071fb960 100644
28+
index 30eb86b52f00cfa61af4f93aca50ffc3547c95e8..19452d1e591afc06675d57bbebae963517ab7217 100644
2929
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
3030
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
31-
@@ -183,7 +183,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
31+
@@ -182,8 +182,14 @@ public abstract class Projectile extends Entity implements TraceableEntity {
32+
3233
this.shoot((double) f5, (double) f6, (double) f7, speed, divergence);
3334
Vec3 vec3d = shooter.getKnownMovement();
34-
35-
- this.setDeltaMovement(this.getDeltaMovement().add(vec3d.x, shooter.onGround() ? 0.0D : vec3d.y, vec3d.z));
36-
+ if (!shooter.level().paperConfig().misc.disableRelativeProjectileVelocity) this.setDeltaMovement(this.getDeltaMovement().add(vec3d.x, shooter.onGround() ? 0.0D : vec3d.y, vec3d.z)); // Paper - allow disabling relative velocity
35+
-
36+
+ // Paper start - allow disabling relative velocity
37+
+ if (vec3d.lengthSqr() > 4D * 4D) {
38+
+ vec3d = vec3d.normalize().scale(2D);
39+
+ }
40+
+ if (!shooter.level().paperConfig().misc.disableRelativeProjectileVelocity) {
41+
this.setDeltaMovement(this.getDeltaMovement().add(vec3d.x, shooter.onGround() ? 0.0D : vec3d.y, vec3d.z));
42+
+ }
43+
+ // Paper end - allow disabling relative velocity
3744
}
3845

3946
// CraftBukkit start - call projectile hit event

patches/server/0677-More-Projectile-API.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ index 5b7734020b496ade3740d92908ad2d399bfd55e6..e70ca1b2e6fbbc1f20e65429298d01b4
5050
public boolean calculateOpenWater(BlockPos pos) {
5151
FishingHook.OpenWaterType entityfishinghook_waterposition = FishingHook.OpenWaterType.INVALID;
5252
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
53-
index 7863625d49baa13ea87f2ee295b16706071fb960..ff6007bbf8361db7967b6bf621b27a1d23102e77 100644
53+
index 19452d1e591afc06675d57bbebae963517ab7217..bc65321aee27192c40428ac6f58ccec0f0cdc2ee 100644
5454
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
5555
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
56-
@@ -187,7 +187,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
56+
@@ -193,7 +193,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
5757
}
5858

5959
// CraftBukkit start - call projectile hit event
@@ -713,7 +713,7 @@ index e374b9f40eddca13b30855d25a2030f8df98138f..4fc893378fb0568ddcffc7593d66df6b
713713
// Paper end
714714
}
715715
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
716-
index 4180b86620aa18a95e0793f646515779801a343e..ffc55cf79d0e7f90ba2816d7604477f018d75ecd 100644
716+
index 48f320333fa859796f4fff01f721fda903238197..9c85cbc65bf7e1f539f12644ed391c98118c08d2 100644
717717
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
718718
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
719719
@@ -841,19 +841,19 @@ public class CraftEventFactory {

patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Subject: [PATCH] Stop large look changes from crashing the server
66
Co-authored-by: Jaren Knodel <Jaren@Knodel.com>
77

88
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
9-
index fa9512da351ef92a8606b3e68ee060dac4c63346..e6335a55d87444d56d6f20dfc51cc4fc797de2cf 100644
9+
index 4a9abb2457b175c640d1e59de161fa2370053613..9c8e23f92a4cf902b060af4ce74777753e32f207 100644
1010
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
1111
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
1212
@@ -3158,37 +3158,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -54,10 +54,10 @@ index fa9512da351ef92a8606b3e68ee060dac4c63346..e6335a55d87444d56d6f20dfc51cc4fc
5454
this.level().getProfiler().pop();
5555
this.animStep += f2;
5656
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
57-
index ff6007bbf8361db7967b6bf621b27a1d23102e77..d147f3cc1af28c384005c1c20e37bb588588c88d 100644
57+
index bc65321aee27192c40428ac6f58ccec0f0cdc2ee..dd53501d39113c4b0b5950bad70a5c667c0781c5 100644
5858
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
5959
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
60-
@@ -310,13 +310,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
60+
@@ -316,13 +316,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
6161
}
6262

6363
protected static float lerpRotation(float prevRot, float newRot) {

patches/server/1042-Fix-PickupStatus-getting-reset.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ index ddf47dab1ab92c45e3eea09239d418a9798ed59e..9ca29b3d4bf8bca5f51f3644e12fcbec
2424
byte b0 = 0;
2525

2626
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
27-
index 5f7d152f41eb85f17bcded4bc8099b998e5a338b..a01c0d9ae53d1b748c5da914069bd672cb1215c7 100644
27+
index 4b71538d5e921af89c4b13200484d4767e4dd6f9..de64de5d1328d3e0826c9990eb7c7eca5088cb9c 100644
2828
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
2929
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
30-
@@ -237,7 +237,13 @@ public abstract class Projectile extends Entity implements TraceableEntity {
30+
@@ -243,7 +243,13 @@ public abstract class Projectile extends Entity implements TraceableEntity {
3131
public boolean deflect(ProjectileDeflection deflection, @Nullable Entity deflector, @Nullable Entity owner, boolean fromAttack) {
3232
if (!this.level().isClientSide) {
3333
deflection.deflect(this, deflector, this.random);

0 commit comments

Comments
 (0)