papermc/Spigot-Server-Patches/0093-Waving-banner-workaround.patch
Aikar 3faaaab75d Optimize isInvalidYLocation, getType and getBlockData
Some pretty micro optimizations, but this is the hottest method in the server....

This will drastically reduce number of operations to perform getType

the 2 previous patches was squashed into 1
2016-06-22 22:43:02 -04:00

37 lines
1.3 KiB
Diff

From 0754b1047b0b70fc03196ae2754d6b87355061b5 Mon Sep 17 00:00:00 2001
From: Gabscap <sonstige.netzwerke@gabriel-paradzik.de>
Date: Sat, 19 Mar 2016 22:25:11 +0100
Subject: [PATCH] Waving banner workaround
This patch is a workaround for MC-63720
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutUpdateTime.java b/src/main/java/net/minecraft/server/PacketPlayOutUpdateTime.java
index c5c3f40..3ed2356 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutUpdateTime.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutUpdateTime.java
@@ -4,7 +4,11 @@ import java.io.IOException;
public class PacketPlayOutUpdateTime implements Packet<PacketListenerPlayOut> {
+ // World Age in ticks
+ // Not changed by server commands
private long a;
+ // Time of Day in ticks
+ // If negative the sun will stop moving at the Math.abs of the time
private long b;
public PacketPlayOutUpdateTime() {}
@@ -19,6 +23,10 @@ public class PacketPlayOutUpdateTime implements Packet<PacketListenerPlayOut> {
}
}
+ // Paper start
+ this.a = this.a % 192000; // World age must not be negative
+ this.b = this.b % 192000 - (this.b < 0 ? 192000 : 0); // Keep sign
+ // Paper end
}
public void a(PacketDataSerializer packetdataserializer) throws IOException {
--
2.9.0