Updated Upstream (Paper)

Upstream has released updates that appears to apply and compile correctly

Paper Changes:
9dfe1321 Delay Chunk Unloads based on Player Movement
f0409edc Drop Close region files patch, doesn't add any value.
700070c5 Fix undesirable behavior around world level changes due to priority
This commit is contained in:
William Blake Galbreath
2020-06-08 20:04:51 -05:00
parent 1564cefa74
commit 2fbbafa299
12 changed files with 19 additions and 244 deletions

View File

@@ -0,0 +1,63 @@
From 51abcd28f8b674ab671d50a661ecdb0607e142a9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 6 Jul 2019 21:12:58 -0500
Subject: [PATCH] MC-4 Fix - Item position desync
---
src/main/java/net/minecraft/server/EntityTrackerEntry.java | 6 ++++++
src/main/java/net/minecraft/server/PacketPlayOutEntity.java | 2 ++
src/main/java/net/pl3x/purpur/PurpurConfig.java | 2 ++
3 files changed, 10 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 390cb8e767..4e63fd83e0 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -131,6 +131,12 @@ public class EntityTrackerEntry {
double vec3d_dz = this.tracker.locZ() - 2.44140625E-4D*(this.zLoc);
boolean flag1 = (vec3d_dx * vec3d_dx + vec3d_dy * vec3d_dy + vec3d_dz * vec3d_dz) >= 7.62939453125E-6D;
// Paper end - reduce allocation of Vec3D here
+ // Purpur start - fixes MC-4
+ if (net.pl3x.purpur.PurpurConfig.fixItemPositionDesync && this.tracker instanceof EntityItem) {
+ Vec3D loc = PacketPlayOutEntity.decrypt(PacketPlayOutEntity.encrypt(tracker.locX()), PacketPlayOutEntity.encrypt(tracker.locY()), PacketPlayOutEntity.encrypt(tracker.locZ()));
+ tracker.setPosition(loc.getX(), loc.getY(), loc.getZ());
+ }
+ // Purpur end
Packet<?> packet1 = null;
boolean flag2 = flag1 || this.tickCounter % 60 == 0;
boolean flag3 = Math.abs(i - this.yRot) >= 1 || Math.abs(j - this.xRot) >= 1;
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
index 5b1d959354..0010448e3a 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
@@ -14,10 +14,12 @@ public class PacketPlayOutEntity implements Packet<PacketListenerPlayOut> {
protected boolean h;
protected boolean i;
+ public static long encrypt(double d) { return a(d); } // Purpur - OBFHELPER
public static long a(double d0) {
return MathHelper.d(d0 * 4096.0D);
}
+ public static Vec3D decrypt(long x, long y, long z) { return a(x, y, z); } // Purpur - OBFHELPER
public static Vec3D a(long i, long j, long k) {
return (new Vec3D((double) i, (double) j, (double) k)).a(2.44140625E-4D);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 68bad6a13a..ab88636cad 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -163,8 +163,10 @@ public class PurpurConfig {
}
public static boolean dontSendUselessEntityPackets = false;
+ public static boolean fixItemPositionDesync = false;
private static void dontSendUselessEntityPackets() {
dontSendUselessEntityPackets = getBoolean("settings.dont-send-useless-entity-packets", dontSendUselessEntityPackets);
+ fixItemPositionDesync = getBoolean("settings.fix-item-position-desync", fixItemPositionDesync);
}
public static boolean barrelSixRows = false;
--
2.26.2