Updated Upstream (Bukkit/CraftBukkit/Spigot)
Developers!: You will need to clean up your work/Minecraft/1.13.2 folder for this Upstream has released updates that appears 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: b850a822 SPIGOT-4526: Add conversion time API for Zombie & subclasses CraftBukkit Changes: 38cf676e SPIGOT-4534: CreatureSpawnEvent not being called for CHUNK_GEN b446cb5d SPIGOT-4527: Fix sponges with waterlogged blocks 6ec8ea5c SPIGOT-4526: Add conversion time API for Zombie & subclasses c64fe508 Mappings Update a3c2ec03 Fix missing ServerListPingEvent call for legacy pings Spigot Changes: 1dc156ce Rebuild patches 140f654d Mappings Update
This commit is contained in:
@@ -17,16 +17,16 @@ from networking or during connections flood of chunk packets on slower clients,
|
||||
at the cost of dead connections being kept open for longer.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
index 587f00286..870b59ce1 100644
|
||||
index fb63496a0..921e1ec9e 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
||||
private final MinecraftServer minecraftServer;
|
||||
public EntityPlayer player;
|
||||
private int e;
|
||||
- private long f; private void setLastPing(long lastPing) { this.f = lastPing;}; private long getLastPing() { return this.f;}; // Paper - OBFHELPER
|
||||
+ private long f = SystemUtils.b(); private void setLastPing(long lastPing) { this.f = lastPing;}; private long getLastPing() { return this.f;}; // Paper - OBFHELPER - set ping to delay initial
|
||||
private boolean g; private void setPendingPing(boolean isPending) { this.g = isPending;}; private boolean isPendingPing() { return this.g;}; // Paper - OBFHELPER
|
||||
- private long lastKeepAlive; private void setLastPing(long lastPing) { this.lastKeepAlive = lastPing;}; private long getLastPing() { return this.lastKeepAlive;}; // Paper - OBFHELPER
|
||||
+ private long lastKeepAlive = SystemUtils.getMonotonicMillis(); private void setLastPing(long lastPing) { this.lastKeepAlive = lastPing;}; private long getLastPing() { return this.lastKeepAlive;}; // Paper - OBFHELPER
|
||||
private boolean awaitingKeepAlive; private void setPendingPing(boolean isPending) { this.awaitingKeepAlive = isPending;}; private boolean isPendingPing() { return this.awaitingKeepAlive;}; // Paper - OBFHELPER
|
||||
private long h; private void setKeepAliveID(long keepAliveID) { this.h = keepAliveID;}; private long getKeepAliveID() {return this.h; }; // Paper - OBFHELPER
|
||||
// CraftBukkit start - multithreaded fields
|
||||
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
||||
@@ -40,14 +40,14 @@ index 587f00286..870b59ce1 100644
|
||||
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
||||
}
|
||||
|
||||
this.minecraftServer.methodProfiler.a("keepAlive");
|
||||
- long i = SystemUtils.b();
|
||||
this.minecraftServer.methodProfiler.enter("keepAlive");
|
||||
- long i = SystemUtils.getMonotonicMillis();
|
||||
-
|
||||
- if (i - this.f >= 25000L) { // CraftBukkit
|
||||
- if (this.g) {
|
||||
- if (i - this.lastKeepAlive >= 25000L) { // CraftBukkit
|
||||
- if (this.awaitingKeepAlive) {
|
||||
+ // Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings
|
||||
+ // This should effectively place the keepalive handling back to "as it was" before 1.12.2
|
||||
+ long currentTime = SystemUtils.b();
|
||||
+ long currentTime = SystemUtils.getMonotonicMillis();
|
||||
+ long elapsedTime = currentTime - this.getLastPing();
|
||||
+
|
||||
+ if (this.isPendingPing()) {
|
||||
@@ -55,8 +55,8 @@ index 587f00286..870b59ce1 100644
|
||||
+ PlayerConnection.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); // more info
|
||||
this.disconnect(new ChatMessage("disconnect.timeout", new Object[0]));
|
||||
- } else {
|
||||
- this.g = true;
|
||||
- this.f = i;
|
||||
- this.awaitingKeepAlive = true;
|
||||
- this.lastKeepAlive = i;
|
||||
- this.h = i;
|
||||
- this.sendPacket(new PacketPlayOutKeepAlive(this.h));
|
||||
+ }
|
||||
@@ -71,6 +71,6 @@ index 587f00286..870b59ce1 100644
|
||||
}
|
||||
+ // Paper end
|
||||
|
||||
this.minecraftServer.methodProfiler.e();
|
||||
this.minecraftServer.methodProfiler.exit();
|
||||
// CraftBukkit start
|
||||
--
|
||||
Reference in New Issue
Block a user