geforkt von Mirrors/Paper
4af62f6d1d
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 2d009e64 Update SnakeYAML javadoc link b4fd213c Switch Player#updateInventory deprecation for internal API annotation CraftBukkit Changes: f3b2b2210 SPIGOT-7376: Exception with getBlockData when hasBlockData is false 725545630 SPIGOT-7375: Fix crash breeding certain entities b9873b0d4 Update Brigadier version with fix 68b320562 SPIGOT-7266: Found typo in CraftBukkit package 98b4d2ff8 SPIGOT-7372, SPIGOT-7373: Signs can't be edited, issues with SignChangeEvent 5f7bd4d78 SPIGOT-7371: Sign does not open edit text on placement b4cf99d24 SPIGOT-7371: Fix editing signs with API a2b6c2744 PR-1200: Implement open sign by side a345bb940 SPIGOT-7368: Downgrade SpecialSource version Spigot Changes: 723951c3 Rebuild patches b655c57d Drop old collision API deprecated since 1.9.4 55b0fed4 Rebuild patches
75 Zeilen
3.1 KiB
Diff
75 Zeilen
3.1 KiB
Diff
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
|
|
index 9ee16dc1f425e4f0795eec3dcc18affc70e85a31..de67999120b52daafa4fb40dd32a348f39ce8df3 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
@@ -3034,37 +3034,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
this.level().getProfiler().pop();
|
|
this.level().getProfiler().push("rangeChecks");
|
|
|
|
- while (this.getYRot() - this.yRotO < -180.0F) {
|
|
- this.yRotO -= 360.0F;
|
|
- }
|
|
-
|
|
- while (this.getYRot() - this.yRotO >= 180.0F) {
|
|
- this.yRotO += 360.0F;
|
|
- }
|
|
+ // Paper start - stop large pitch and yaw changes from crashing the server
|
|
+ this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F;
|
|
|
|
- while (this.yBodyRot - this.yBodyRotO < -180.0F) {
|
|
- this.yBodyRotO -= 360.0F;
|
|
- }
|
|
+ this.yBodyRotO += Math.round((this.yBodyRot - this.yBodyRotO) / 360.0F) * 360.0F;
|
|
|
|
- while (this.yBodyRot - this.yBodyRotO >= 180.0F) {
|
|
- this.yBodyRotO += 360.0F;
|
|
- }
|
|
-
|
|
- while (this.getXRot() - this.xRotO < -180.0F) {
|
|
- this.xRotO -= 360.0F;
|
|
- }
|
|
+ this.xRotO += Math.round((this.getXRot() - this.xRotO) / 360.0F) * 360.0F;
|
|
|
|
- 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
|
|
|
|
this.level().getProfiler().pop();
|
|
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
|
|
index 24b549cb21926a02d736f0bbb991006b9453068d..6d7ac0c8c171834fa8da94f158258a4774d80ec4 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
|
@@ -251,13 +251,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
|
}
|
|
|
|
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);
|
|
}
|