Use BigDecimal to improve accracy of TPS results - long live 20 TPS!
It's always been commonly said to 'ignore' that TPS was '19.X', that it was fine. I suspect that the inaccuracy of floating point math resulted in us losing precision over time, making it difficult to actually get back to 20, as you know the fun 0.1 + 0.1 ... 9 more times != 1 problem. BigDecimal supports working with doubles with higher precision. This change makes it so our RollingAverage class maintains all of the data using BigDecimal and using BigDecimal arithematic operations. This ensures we have extremely high precision, enabling us to actually be able print '20 TPS' when TPS is perfect.
This commit is contained in:
parent
2b349bb02b
commit
3aaba8c301
11 changed files with 68 additions and 64 deletions
|
@ -1,4 +1,4 @@
|
|||
From cf80f60fecc7b5c5eb6ae69985789c8cdadffc0c Mon Sep 17 00:00:00 2001
|
||||
From c72a223551fa640d606dc0281553972891d52411 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Tue, 1 Mar 2016 23:09:29 -0600
|
||||
Subject: [PATCH] Further improve server tick loop
|
||||
|
@ -12,7 +12,7 @@ Previous implementation did not calculate TPS correctly.
|
|||
Switch to a realistic rolling average and factor in std deviation as an extra reporting variable
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 788f0519a8..13c6021ffa 100644
|
||||
index 788f0519a8..d6ea4ae532 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -146,7 +146,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
|
@ -42,7 +42,7 @@ index 788f0519a8..13c6021ffa 100644
|
|||
}
|
||||
|
||||
// Spigot Start
|
||||
@@ -697,6 +697,53 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -697,6 +697,57 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
{
|
||||
return ( avg * exp ) + ( tps * ( 1 - exp ) );
|
||||
}
|
||||
|
@ -59,44 +59,48 @@ index 788f0519a8..13c6021ffa 100644
|
|||
+ public static class RollingAverage {
|
||||
+ private final int size;
|
||||
+ private long time;
|
||||
+ private double total;
|
||||
+ private java.math.BigDecimal total;
|
||||
+ private int index = 0;
|
||||
+ private final double[] samples;
|
||||
+ private final java.math.BigDecimal[] samples;
|
||||
+ private final long[] times;
|
||||
+
|
||||
+ RollingAverage(int size) {
|
||||
+ this.size = size;
|
||||
+ this.time = size * SEC_IN_NANO;
|
||||
+ this.total = TPS * SEC_IN_NANO * size;
|
||||
+ this.samples = new double[size];
|
||||
+ this.total = dec(TPS).multiply(dec(SEC_IN_NANO)).multiply(dec(size));
|
||||
+ this.samples = new java.math.BigDecimal[size];
|
||||
+ this.times = new long[size];
|
||||
+ for (int i = 0; i < size; i++) {
|
||||
+ this.samples[i] = TPS;
|
||||
+ this.samples[i] = dec(TPS);
|
||||
+ this.times[i] = SEC_IN_NANO;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public void add(double x, long t) {
|
||||
+ private static java.math.BigDecimal dec(long t) {
|
||||
+ return new java.math.BigDecimal(t);
|
||||
+ }
|
||||
+ public void add(java.math.BigDecimal x, long t) {
|
||||
+ time -= times[index];
|
||||
+ total -= samples[index] * times[index];
|
||||
+ total = total.subtract(samples[index].multiply(dec(times[index])));
|
||||
+ samples[index] = x;
|
||||
+ times[index] = t;
|
||||
+ time += t;
|
||||
+ total += x * t;
|
||||
+ total = total.add(x.multiply(dec(t)));
|
||||
+ if (++index == size) {
|
||||
+ index = 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public double getAverage() {
|
||||
+ return total / time;
|
||||
+ return total.divide(dec(time), 30, java.math.RoundingMode.HALF_UP).doubleValue();
|
||||
+ }
|
||||
+ }
|
||||
+ private static final java.math.BigDecimal TPS_BASE = new java.math.BigDecimal(1E9).multiply(new java.math.BigDecimal(SAMPLE_INTERVAL));
|
||||
+ // Paper End
|
||||
// Spigot End
|
||||
|
||||
public void run() {
|
||||
@@ -709,29 +756,47 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -709,29 +760,47 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
|
||||
// Spigot start
|
||||
Arrays.fill( recentTps, 20 );
|
||||
|
@ -138,7 +142,7 @@ index 788f0519a8..13c6021ffa 100644
|
|||
- recentTps[1] = calcTps( recentTps[1], 0.9835, currentTps ); // 1/exp(5sec/5min)
|
||||
- recentTps[2] = calcTps( recentTps[2], 0.9945, currentTps ); // 1/exp(5sec/15min)
|
||||
+ final long diff = curTime - tickSection;
|
||||
+ double currentTps = 1E9 / diff * SAMPLE_INTERVAL;
|
||||
+ java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
|
||||
+ tps1.add(currentTps, diff);
|
||||
+ tps5.add(currentTps, diff);
|
||||
+ tps15.add(currentTps, diff);
|
||||
|
@ -220,5 +224,5 @@ index be2e31deae..6d21c32692 100644
|
|||
return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString()
|
||||
+ ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 );
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From daa5867fc7ca974cdb1bb4ff0505eab29fa2a6a8 Mon Sep 17 00:00:00 2001
|
||||
From 3d33437ccf59ffaab3dd7b23e615245d9f4b2882 Mon Sep 17 00:00:00 2001
|
||||
From: Byteflux <byte@byteflux.net>
|
||||
Date: Wed, 2 Mar 2016 00:52:31 -0600
|
||||
Subject: [PATCH] Lighting Queue
|
||||
|
@ -102,7 +102,7 @@ index 4622e92b05..d4bebddab0 100644
|
|||
|
||||
IMMEDIATE, QUEUED, CHECK;
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
index 0034956af9..1379b574ef 100644
|
||||
index 68212aa26e..046973a4ed 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
@@ -314,6 +314,7 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
|
@ -114,10 +114,10 @@ index 0034956af9..1379b574ef 100644
|
|||
// Update neighbor counts
|
||||
for (int x = -2; x < 3; x++) {
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 13c6021ffa..30541dfa5a 100644
|
||||
index d6ea4ae532..5086fe4027 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -890,7 +890,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -894,7 +894,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
protected void a(BooleanSupplier booleansupplier) {
|
||||
co.aikar.timings.TimingsManager.FULL_SERVER_TICK.startTiming(); // Paper
|
||||
this.slackActivityAccountant.tickStarted(); // Spigot
|
||||
|
@ -126,7 +126,7 @@ index 13c6021ffa..30541dfa5a 100644
|
|||
|
||||
++this.ticks;
|
||||
if (this.S) {
|
||||
@@ -948,6 +948,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -952,6 +952,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
this.methodProfiler.e();
|
||||
this.methodProfiler.e();
|
||||
org.spigotmc.WatchdogThread.tick(); // Spigot
|
||||
|
@ -233,7 +233,7 @@ index 0000000000..60562f1fd2
|
|||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 929875340f..0fe8a97f24 100644
|
||||
index 499d64ea2c..e06da6bef9 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -335,7 +335,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
||||
|
@ -246,5 +246,5 @@ index 929875340f..0fe8a97f24 100644
|
|||
}
|
||||
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 52f7d263cd8e5c77095afbcec33f0d0c7da006f6 Mon Sep 17 00:00:00 2001
|
||||
From d82e6a9a1c15815dea09b2b38f2239e6f606bc93 Mon Sep 17 00:00:00 2001
|
||||
From: Byteflux <byte@byteflux.net>
|
||||
Date: Wed, 2 Mar 2016 11:59:48 -0600
|
||||
Subject: [PATCH] Optimize explosions
|
||||
|
@ -124,10 +124,10 @@ index 2620c4c2bd..a31e07b903 100644
|
|||
+ // Paper end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 30541dfa5a..bbd476bb0e 100644
|
||||
index 5086fe4027..abed6bb977 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1055,6 +1055,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -1059,6 +1059,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
worldserver.getTracker().updatePlayers();
|
||||
this.methodProfiler.e();
|
||||
this.methodProfiler.e();
|
||||
|
@ -136,7 +136,7 @@ index 30541dfa5a..bbd476bb0e 100644
|
|||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 0fe8a97f24..c8b9c10f12 100644
|
||||
index e06da6bef9..c823cef341 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -24,6 +24,7 @@ import org.apache.logging.log4j.Logger;
|
||||
|
@ -156,5 +156,5 @@ index 0fe8a97f24..c8b9c10f12 100644
|
|||
public CraftWorld getWorld() {
|
||||
return this.world;
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From aff5924a9a8620c7c5df00a1c59c7e6948da74ca Mon Sep 17 00:00:00 2001
|
||||
From e812bdd5c6d798f90b0f361e2c3c4c14c624e69c Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Thu, 28 Apr 2016 00:57:27 -0400
|
||||
Subject: [PATCH] remove null possibility for getServer singleton
|
||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] remove null possibility for getServer singleton
|
|||
to stop IDE complaining about potential NPE
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 9675d5a100..ca5e4cd65a 100644
|
||||
index 74c84dda69..eb6ada935f 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -73,6 +73,7 @@ import co.aikar.timings.MinecraftTimings; // Paper
|
||||
|
@ -26,7 +26,7 @@ index 9675d5a100..ca5e4cd65a 100644
|
|||
this.ac = new ResourceManager(EnumResourcePackType.SERVER_DATA);
|
||||
this.resourcePackRepository = new ResourcePackRepository(ResourcePackLoader::new);
|
||||
this.ag = new CraftingManager();
|
||||
@@ -1824,7 +1827,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -1828,7 +1831,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
// CraftBukkit start
|
||||
@Deprecated
|
||||
public static MinecraftServer getServer() {
|
||||
|
@ -36,5 +36,5 @@ index 9675d5a100..ca5e4cd65a 100644
|
|||
// CraftBukkit end
|
||||
}
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 9f76fd012fc287fe9431be02ace4cca22fbb3568 Mon Sep 17 00:00:00 2001
|
||||
From 41c8d7f3f017c9bc08a29c044b8b8cb5ff87dc15 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Mon, 19 Sep 2016 23:16:39 -0400
|
||||
Subject: [PATCH] Auto Save Improvements
|
||||
|
@ -96,7 +96,7 @@ index 3c9c3cd41d..8d1264879b 100644
|
|||
|
||||
public boolean isEmpty() {
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
index 7417660e4d..7a972f4187 100644
|
||||
index 9739288b53..a35eac043c 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
@@ -241,7 +241,7 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
|
@ -109,7 +109,7 @@ index 7417660e4d..7a972f4187 100644
|
|||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index faf733f824..c6903559ef 100644
|
||||
index 3d83900298..690cff8828 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -37,6 +37,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
|
@ -121,7 +121,7 @@ index faf733f824..c6903559ef 100644
|
|||
public final MinecraftServer server;
|
||||
public final PlayerInteractManager playerInteractManager;
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 13d3315b9c..a367cbf52b 100644
|
||||
index 04d8c108b4..a547ee5ca1 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -148,6 +148,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
|
@ -132,7 +132,7 @@ index 13d3315b9c..a367cbf52b 100644
|
|||
public final Thread primaryThread;
|
||||
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
|
||||
public int autosavePeriod;
|
||||
@@ -938,22 +939,30 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -942,22 +943,30 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
this.m.b().a(agameprofile);
|
||||
}
|
||||
|
||||
|
@ -207,7 +207,7 @@ index 02dbb8c6c3..73d72ef7e3 100644
|
|||
public WhiteList getWhitelist() {
|
||||
return this.whitelist;
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 4be3a6ae94..59b5a04581 100644
|
||||
index c5201697d5..ca2e027cda 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -872,8 +872,9 @@ public class WorldServer extends World implements IAsyncTaskHandler {
|
||||
|
@ -230,5 +230,5 @@ index 4be3a6ae94..59b5a04581 100644
|
|||
timings.worldSaveChunks.startTiming(); // Paper
|
||||
chunkproviderserver.a(flag);
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 0c93b5203a664b15f2e7386ee0db2fef3c3996da Mon Sep 17 00:00:00 2001
|
||||
From a692cab3eb7c7235b2f678201ee701c77bab00a3 Mon Sep 17 00:00:00 2001
|
||||
From: Minecrell <minecrell@minecrell.net>
|
||||
Date: Fri, 9 Jun 2017 19:03:43 +0200
|
||||
Subject: [PATCH] Use TerminalConsoleAppender for console improvements
|
||||
|
@ -185,7 +185,7 @@ index dabad6b055..fc7e244f8b 100644
|
|||
System.setOut(new PrintStream(new LoggerOutputStream(logger, Level.INFO), true));
|
||||
System.setErr(new PrintStream(new LoggerOutputStream(logger, Level.WARN), true));
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 08ce98d071..464db5ebb8 100644
|
||||
index 8d345a0502..6a3d5fdff4 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -61,7 +61,6 @@ import org.apache.commons.lang3.Validate;
|
||||
|
@ -224,7 +224,7 @@ index 08ce98d071..464db5ebb8 100644
|
|||
Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this));
|
||||
|
||||
this.serverThread = primaryThread = new Thread(this, "Server thread"); // Moved from main
|
||||
@@ -873,7 +876,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -877,7 +880,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
} finally {
|
||||
// CraftBukkit start - Restore terminal to original settings
|
||||
try {
|
||||
|
@ -233,7 +233,7 @@ index 08ce98d071..464db5ebb8 100644
|
|||
} catch (Exception ignored) {
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -1361,7 +1364,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -1365,7 +1368,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
}
|
||||
|
||||
public void sendMessage(IChatBaseComponent ichatbasecomponent) {
|
||||
|
@ -588,5 +588,5 @@ index 5cee8f00ef..08b6bb7f97 100644
|
|||
<AppenderRef ref="TerminalConsole" level="info"/>
|
||||
</Root>
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From de16e4a606f31cb9b6b141bbaf62e7dee398aaaa Mon Sep 17 00:00:00 2001
|
||||
From 2289cdf49428ff3f05fc5249b217e7714bd013ef Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Mon, 15 Jan 2018 22:11:48 -0500
|
||||
Subject: [PATCH] Basic PlayerProfile API
|
||||
|
@ -429,10 +429,10 @@ index dce1417aff..f7856897f6 100644
|
|||
* Calculates distance between 2 entities
|
||||
* @param e1
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 464db5ebb8..3e99221619 100644
|
||||
index 6a3d5fdff4..65204c259e 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1185,7 +1185,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -1189,7 +1189,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
*/ // CraftBukkit end
|
||||
|
||||
String s1 = "."; // PAIL?
|
||||
|
@ -441,7 +441,7 @@ index 464db5ebb8..3e99221619 100644
|
|||
MinecraftSessionService minecraftsessionservice = yggdrasilauthenticationservice.createMinecraftSessionService();
|
||||
GameProfileRepository gameprofilerepository = yggdrasilauthenticationservice.createProfileRepository();
|
||||
UserCache usercache = new UserCache(gameprofilerepository, new File(s1, MinecraftServer.a.getName()));
|
||||
@@ -1634,6 +1634,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -1638,6 +1638,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
this.G = i;
|
||||
}
|
||||
|
||||
|
@ -523,5 +523,5 @@ index a9e9cc6f4e..c79e673fbf 100644
|
|||
// Paper end
|
||||
}
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From eb14bec3aaf4d58dcc435f072644624a86930288 Mon Sep 17 00:00:00 2001
|
||||
From b8cd035f90d7ba0fdcc33d98a62cae9bfd67d8b7 Mon Sep 17 00:00:00 2001
|
||||
From: Minecrell <minecrell@minecrell.net>
|
||||
Date: Wed, 11 Oct 2017 15:56:26 +0200
|
||||
Subject: [PATCH] Implement extended PaperServerListPingEvent
|
||||
|
@ -177,7 +177,7 @@ index 0000000000..350410527b
|
|||
+
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 3e99221619..2e9836d8f9 100644
|
||||
index 65204c259e..18eeee5106 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1,6 +1,7 @@
|
||||
|
@ -188,7 +188,7 @@ index 3e99221619..2e9836d8f9 100644
|
|||
import com.google.common.base.Stopwatch;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
@@ -939,7 +940,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -943,7 +944,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
if (i - this.Y >= 5000000000L) {
|
||||
this.Y = i;
|
||||
this.m.setPlayerSample(new ServerPing.ServerPingPlayerSample(this.z(), this.y()));
|
||||
|
@ -197,7 +197,7 @@ index 3e99221619..2e9836d8f9 100644
|
|||
int j = MathHelper.nextInt(this.n, 0, this.y() - agameprofile.length);
|
||||
|
||||
for (int k = 0; k < agameprofile.length; ++k) {
|
||||
@@ -1296,10 +1297,12 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -1300,10 +1301,12 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
return "1.13.1";
|
||||
}
|
||||
|
||||
|
@ -272,5 +272,5 @@ index 9584950c63..eed96c60c5 100644
|
|||
}
|
||||
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 29c6ea2f197ad1b8bee4d635a5e25fbbe0b87c46 Mon Sep 17 00:00:00 2001
|
||||
From 8f69fa82dcee69d86893451d8eaec5bf90b7c6ee Mon Sep 17 00:00:00 2001
|
||||
From: miclebrick <miclebrick@outlook.com>
|
||||
Date: Wed, 8 Aug 2018 15:30:52 -0400
|
||||
Subject: [PATCH] Add Early Warning Feature to WatchDog
|
||||
|
@ -37,10 +37,10 @@ index cc2e4ad3bd..54f088c242 100644
|
|||
public static int tabSpamLimit = 500;
|
||||
private static void tabSpamLimiters() {
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 2e9836d8f9..8b8cbde2b9 100644
|
||||
index 18eeee5106..6fa54386e8 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -792,6 +792,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -796,6 +796,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
this.a(this.m);
|
||||
|
||||
// Spigot start
|
||||
|
@ -164,5 +164,5 @@ index 57a4748a30..19df383e06 100644
|
|||
{
|
||||
interrupt();
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 70ef7c45ece2b8ded83760ceec98c5138a9e4939 Mon Sep 17 00:00:00 2001
|
||||
From 961790f1215deed4f84868d2d0c9d42267f341cc Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Wed, 27 Apr 2016 22:09:52 -0400
|
||||
Subject: [PATCH] Optimize Hoppers
|
||||
|
@ -47,10 +47,10 @@ index 9326eaa2a9..4641113f9d 100644
|
|||
itemstack.d(this.B());
|
||||
if (this.tag != null) {
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 8b8cbde2b9..80e8b023cf 100644
|
||||
index 6fa54386e8..eb3fc836fb 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1046,7 +1046,8 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -1050,7 +1050,8 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
|
||||
// CraftBukkit - dropTickTime
|
||||
for (Iterator iterator = this.getWorlds().iterator(); iterator.hasNext();) {
|
||||
|
@ -301,5 +301,5 @@ index 5ba009c7cf..a8cf160fe4 100644
|
|||
flag = true;
|
||||
} else if (a(itemstack1, itemstack)) {
|
||||
--
|
||||
2.18.0
|
||||
2.19.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 392e56c668c62dfb7dcc4b4ba99dbba03c210d33 Mon Sep 17 00:00:00 2001
|
||||
From d6e66d04c997b32aa5563503de5a61f0b09a6507 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Sun, 16 Sep 2018 00:00:16 -0400
|
||||
Subject: [PATCH] Fix major memory leaks in ExpiringMap
|
||||
|
@ -180,7 +180,7 @@ index 4006f5a69c..d64c143017 100644
|
|||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 80e8b023cf..70a609efcc 100644
|
||||
index eb3fc836fb..81cda5df56 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -155,6 +155,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
|
@ -191,7 +191,7 @@ index 80e8b023cf..70a609efcc 100644
|
|||
// CraftBukkit end
|
||||
// Spigot start
|
||||
public static final int TPS = 20;
|
||||
@@ -995,6 +996,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
@@ -999,6 +1000,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
||||
this.methodProfiler.e();
|
||||
org.spigotmc.WatchdogThread.tick(); // Spigot
|
||||
PaperLightingQueue.processQueue(startTime); // Paper
|
||||
|
|
Loading…
Reference in a new issue