From 3aaba8c301bca342136c533ae4e6b78b292210e3 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 17 Sep 2018 22:32:37 -0400 Subject: [PATCH] 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. --- ...021-Further-improve-server-tick-loop.patch | 34 +++++++++++-------- .../0028-Lighting-Queue.patch | 14 ++++---- .../0031-Optimize-explosions.patch | 10 +++--- ...-possibility-for-getServer-singleton.patch | 8 ++--- .../0136-Auto-Save-Improvements.patch | 14 ++++---- ...oleAppender-for-console-improvements.patch | 10 +++--- .../0187-Basic-PlayerProfile-API.patch | 10 +++--- ...nt-extended-PaperServerListPingEvent.patch | 10 +++--- ...dd-Early-Warning-Feature-to-WatchDog.patch | 8 ++--- .../0340-Optimize-Hoppers.patch | 8 ++--- ...ix-major-memory-leaks-in-ExpiringMap.patch | 6 ++-- 11 files changed, 68 insertions(+), 64 deletions(-) diff --git a/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch index cb5f50f35d..005defcf21 100644 --- a/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch +++ b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch @@ -1,4 +1,4 @@ -From cf80f60fecc7b5c5eb6ae69985789c8cdadffc0c Mon Sep 17 00:00:00 2001 +From c72a223551fa640d606dc0281553972891d52411 Mon Sep 17 00:00:00 2001 From: Aikar 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 diff --git a/Spigot-Server-Patches/0028-Lighting-Queue.patch b/Spigot-Server-Patches/0028-Lighting-Queue.patch index 29cc65b1e5..adaf552821 100644 --- a/Spigot-Server-Patches/0028-Lighting-Queue.patch +++ b/Spigot-Server-Patches/0028-Lighting-Queue.patch @@ -1,4 +1,4 @@ -From daa5867fc7ca974cdb1bb4ff0505eab29fa2a6a8 Mon Sep 17 00:00:00 2001 +From 3d33437ccf59ffaab3dd7b23e615245d9f4b2882 Mon Sep 17 00:00:00 2001 From: Byteflux 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 diff --git a/Spigot-Server-Patches/0031-Optimize-explosions.patch b/Spigot-Server-Patches/0031-Optimize-explosions.patch index 6f81ab9ea2..54b74e0617 100644 --- a/Spigot-Server-Patches/0031-Optimize-explosions.patch +++ b/Spigot-Server-Patches/0031-Optimize-explosions.patch @@ -1,4 +1,4 @@ -From 52f7d263cd8e5c77095afbcec33f0d0c7da006f6 Mon Sep 17 00:00:00 2001 +From d82e6a9a1c15815dea09b2b38f2239e6f606bc93 Mon Sep 17 00:00:00 2001 From: Byteflux 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 diff --git a/Spigot-Server-Patches/0109-remove-null-possibility-for-getServer-singleton.patch b/Spigot-Server-Patches/0109-remove-null-possibility-for-getServer-singleton.patch index 730add587d..45197a7a4b 100644 --- a/Spigot-Server-Patches/0109-remove-null-possibility-for-getServer-singleton.patch +++ b/Spigot-Server-Patches/0109-remove-null-possibility-for-getServer-singleton.patch @@ -1,4 +1,4 @@ -From aff5924a9a8620c7c5df00a1c59c7e6948da74ca Mon Sep 17 00:00:00 2001 +From e812bdd5c6d798f90b0f361e2c3c4c14c624e69c Mon Sep 17 00:00:00 2001 From: Aikar 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 diff --git a/Spigot-Server-Patches/0136-Auto-Save-Improvements.patch b/Spigot-Server-Patches/0136-Auto-Save-Improvements.patch index dcfb553d75..e77b84fc2f 100644 --- a/Spigot-Server-Patches/0136-Auto-Save-Improvements.patch +++ b/Spigot-Server-Patches/0136-Auto-Save-Improvements.patch @@ -1,4 +1,4 @@ -From 9f76fd012fc287fe9431be02ace4cca22fbb3568 Mon Sep 17 00:00:00 2001 +From 41c8d7f3f017c9bc08a29c044b8b8cb5ff87dc15 Mon Sep 17 00:00:00 2001 From: Aikar 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 processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); 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 diff --git a/Spigot-Server-Patches/0181-Use-TerminalConsoleAppender-for-console-improvements.patch b/Spigot-Server-Patches/0181-Use-TerminalConsoleAppender-for-console-improvements.patch index 83e51e4765..51cd119a27 100644 --- a/Spigot-Server-Patches/0181-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/Spigot-Server-Patches/0181-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -1,4 +1,4 @@ -From 0c93b5203a664b15f2e7386ee0db2fef3c3996da Mon Sep 17 00:00:00 2001 +From a692cab3eb7c7235b2f678201ee701c77bab00a3 Mon Sep 17 00:00:00 2001 From: Minecrell 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 -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0187-Basic-PlayerProfile-API.patch b/Spigot-Server-Patches/0187-Basic-PlayerProfile-API.patch index 8c3e51cae4..3d71d42398 100644 --- a/Spigot-Server-Patches/0187-Basic-PlayerProfile-API.patch +++ b/Spigot-Server-Patches/0187-Basic-PlayerProfile-API.patch @@ -1,4 +1,4 @@ -From de16e4a606f31cb9b6b141bbaf62e7dee398aaaa Mon Sep 17 00:00:00 2001 +From 2289cdf49428ff3f05fc5249b217e7714bd013ef Mon Sep 17 00:00:00 2001 From: Aikar 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 diff --git a/Spigot-Server-Patches/0240-Implement-extended-PaperServerListPingEvent.patch b/Spigot-Server-Patches/0240-Implement-extended-PaperServerListPingEvent.patch index 7be52f3746..2216f2d28a 100644 --- a/Spigot-Server-Patches/0240-Implement-extended-PaperServerListPingEvent.patch +++ b/Spigot-Server-Patches/0240-Implement-extended-PaperServerListPingEvent.patch @@ -1,4 +1,4 @@ -From eb14bec3aaf4d58dcc435f072644624a86930288 Mon Sep 17 00:00:00 2001 +From b8cd035f90d7ba0fdcc33d98a62cae9bfd67d8b7 Mon Sep 17 00:00:00 2001 From: Minecrell 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 diff --git a/Spigot-Server-Patches/0328-Add-Early-Warning-Feature-to-WatchDog.patch b/Spigot-Server-Patches/0328-Add-Early-Warning-Feature-to-WatchDog.patch index dda09762a2..1c27798b3a 100644 --- a/Spigot-Server-Patches/0328-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/Spigot-Server-Patches/0328-Add-Early-Warning-Feature-to-WatchDog.patch @@ -1,4 +1,4 @@ -From 29c6ea2f197ad1b8bee4d635a5e25fbbe0b87c46 Mon Sep 17 00:00:00 2001 +From 8f69fa82dcee69d86893451d8eaec5bf90b7c6ee Mon Sep 17 00:00:00 2001 From: miclebrick 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 diff --git a/Spigot-Server-Patches/0340-Optimize-Hoppers.patch b/Spigot-Server-Patches/0340-Optimize-Hoppers.patch index 2e99167bb4..a5e78dd9f3 100644 --- a/Spigot-Server-Patches/0340-Optimize-Hoppers.patch +++ b/Spigot-Server-Patches/0340-Optimize-Hoppers.patch @@ -1,4 +1,4 @@ -From 70ef7c45ece2b8ded83760ceec98c5138a9e4939 Mon Sep 17 00:00:00 2001 +From 961790f1215deed4f84868d2d0c9d42267f341cc Mon Sep 17 00:00:00 2001 From: Aikar 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 diff --git a/Spigot-Server-Patches/0372-Fix-major-memory-leaks-in-ExpiringMap.patch b/Spigot-Server-Patches/0372-Fix-major-memory-leaks-in-ExpiringMap.patch index ec065e5c8b..9d4e046a35 100644 --- a/Spigot-Server-Patches/0372-Fix-major-memory-leaks-in-ExpiringMap.patch +++ b/Spigot-Server-Patches/0372-Fix-major-memory-leaks-in-ExpiringMap.patch @@ -1,4 +1,4 @@ -From 392e56c668c62dfb7dcc4b4ba99dbba03c210d33 Mon Sep 17 00:00:00 2001 +From d6e66d04c997b32aa5563503de5a61f0b09a6507 Mon Sep 17 00:00:00 2001 From: Aikar 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