2022-09-17 05:30:00 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: MWHunter <s0521458@student.rockvalleycollege.edu>
|
|
|
|
Date: Wed, 24 Aug 2022 09:54:11 -0400
|
|
|
|
Subject: [PATCH] Stop large look changes from crashing the server
|
|
|
|
|
|
|
|
Co-authored-by: Jaren Knodel <Jaren@Knodel.com>
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
2024-01-22 21:04:08 +01:00
|
|
|
index 6b561cb21497f214b82d8d91affb79ce1f63fbad..fca8970baaf7dea9397024f8c1aa2a044f7b721c 100644
|
2022-09-17 05:30:00 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
2023-12-06 17:21:56 +01:00
|
|
|
@@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
2023-06-08 10:47:19 +02:00
|
|
|
this.level().getProfiler().pop();
|
|
|
|
this.level().getProfiler().push("rangeChecks");
|
2022-09-17 05:30:00 +02:00
|
|
|
|
|
|
|
- while (this.getYRot() - this.yRotO < -180.0F) {
|
|
|
|
- this.yRotO -= 360.0F;
|
|
|
|
- }
|
2023-03-23 22:57:03 +01:00
|
|
|
-
|
2022-09-17 05:30:00 +02:00
|
|
|
- while (this.getYRot() - this.yRotO >= 180.0F) {
|
|
|
|
- this.yRotO += 360.0F;
|
|
|
|
- }
|
2023-03-23 22:57:03 +01:00
|
|
|
+ // Paper start - stop large pitch and yaw changes from crashing the server
|
|
|
|
+ this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F;
|
2022-09-17 05:30:00 +02:00
|
|
|
|
|
|
|
- while (this.yBodyRot - this.yBodyRotO < -180.0F) {
|
|
|
|
- this.yBodyRotO -= 360.0F;
|
|
|
|
- }
|
2023-03-23 22:57:03 +01:00
|
|
|
+ this.yBodyRotO += Math.round((this.yBodyRot - this.yBodyRotO) / 360.0F) * 360.0F;
|
2022-09-17 05:30:00 +02:00
|
|
|
|
|
|
|
- while (this.yBodyRot - this.yBodyRotO >= 180.0F) {
|
|
|
|
- this.yBodyRotO += 360.0F;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- while (this.getXRot() - this.xRotO < -180.0F) {
|
|
|
|
- this.xRotO -= 360.0F;
|
|
|
|
- }
|
2023-03-23 22:57:03 +01:00
|
|
|
+ this.xRotO += Math.round((this.getXRot() - this.xRotO) / 360.0F) * 360.0F;
|
|
|
|
|
2022-09-17 05:30:00 +02:00
|
|
|
- while (this.getXRot() - this.xRotO >= 180.0F) {
|
|
|
|
- this.xRotO += 360.0F;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- while (this.yHeadRot - this.yHeadRotO < -180.0F) {
|
|
|
|
- this.yHeadRotO -= 360.0F;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- while (this.yHeadRot - this.yHeadRotO >= 180.0F) {
|
|
|
|
- this.yHeadRotO += 360.0F;
|
|
|
|
- }
|
|
|
|
+ this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F;
|
|
|
|
+ // Paper end
|
|
|
|
|
2023-06-08 10:47:19 +02:00
|
|
|
this.level().getProfiler().pop();
|
2022-09-17 05:30:00 +02:00
|
|
|
this.animStep += f2;
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
2024-01-22 21:04:08 +01:00
|
|
|
index 20842ed5b730dda88efd0cda9292a37f879a4017..0a207f3f2e4c0790e784fb4b0c3c2dfa49c39724 100644
|
2022-09-17 05:30:00 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
2023-12-06 21:09:14 +01:00
|
|
|
@@ -259,13 +259,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
2022-09-17 05:30:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
protected static float lerpRotation(float prevRot, float newRot) {
|
|
|
|
- while (newRot - prevRot < -180.0F) {
|
|
|
|
- prevRot -= 360.0F;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- while (newRot - prevRot >= 180.0F) {
|
|
|
|
- prevRot += 360.0F;
|
|
|
|
- }
|
|
|
|
+ prevRot += Math.round((newRot - prevRot) / 360.0F) * 360.0F; // Paper - stop large look changes from crashing the server
|
|
|
|
|
|
|
|
return Mth.lerp(0.2F, prevRot, newRot);
|
|
|
|
}
|