From d104be61d4fc0861ff103d59d16ffc5fde375af3 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Sat, 25 May 2024 03:07:39 +0800 Subject: [PATCH] Updated Upstream (Gale/Purpur) --- gradle.properties | 2 +- patches/api/0004-Purpur-API-Changes.patch | 6 +-- .../0001-Purpur-generated-api-Changes.patch | 2 +- patches/server/0001-Rebrand.patch | 4 +- .../server/0011-Purpur-Server-Changes.patch | 47 +++++++++---------- ...12-Fix-Pufferfish-and-Purpur-patches.patch | 8 ++-- ...-Purpur-Configurable-server-mod-name.patch | 4 +- patches/server/0015-Remove-Timings.patch | 40 ++++++++-------- ...Remove-UseItemOnPacket-Too-Far-Check.patch | 4 +- .../server/0031-Leaves-Protocol-Core.patch | 6 +-- .../0043-Optimize-Minecart-collisions.patch | 4 +- patches/server/0044-Reduce-canSee-work.patch | 4 +- .../server/0062-Including-5s-in-getTPS.patch | 4 +- 13 files changed, 67 insertions(+), 68 deletions(-) diff --git a/gradle.properties b/gradle.properties index 7d8f8356a..0f805fc0f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = cn.dreeam.leaf mcVersion = 1.20.6 version = 1.20.6-R0.1-SNAPSHOT -galeCommit = 92855c65222446b288938dfc39cc9a19d3749257 +galeCommit = 8a47f583dfe7bf9f4ae448c572ccbacdeccdaad8 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0004-Purpur-API-Changes.patch b/patches/api/0004-Purpur-API-Changes.patch index d9f58fdd6..a6db9f207 100644 --- a/patches/api/0004-Purpur-API-Changes.patch +++ b/patches/api/0004-Purpur-API-Changes.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Purpur API Changes Original license: MIT Original project: https://github.com/PurpurMC/Purpur -Commit: 3d2569397afa45a8988762081cdff594e96a2c6c +Commit: 1bbb0334799623b7d50beb920f35bd5f591471d1 Patches below are removed in this patch: Pufferfish-API-Changes.patch @@ -257,10 +257,10 @@ index 918a045165cdcde264bc24082b7afebb407271de..687d11619379aead7f665d4a5f8f8bcc + // Purpur end } diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 81f9ad99699a78b97e4accaaf1a98eacf29493ce..e3e996d932db689ba62a43f7f01d6f003f8337d3 100644 +index 4f7f91b5e2903ce3b180c637cb463e01a860271e..5b14cea8d246f31c51b09baa731e673f305aea6e 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -5701,4 +5701,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -5733,4 +5733,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla } return Registry.BLOCK.get(material.key); } diff --git a/patches/generated-api/0001-Purpur-generated-api-Changes.patch b/patches/generated-api/0001-Purpur-generated-api-Changes.patch index 7636d2e19..516d630f3 100644 --- a/patches/generated-api/0001-Purpur-generated-api-Changes.patch +++ b/patches/generated-api/0001-Purpur-generated-api-Changes.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Purpur generated-api Changes Original license: MIT Original project: https://github.com/PurpurMC/Purpur -Commit: 3d2569397afa45a8988762081cdff594e96a2c6c +Commit: 1bbb0334799623b7d50beb920f35bd5f591471d1 diff --git a/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/com/destroystokyo/paper/entity/ai/VanillaGoal.java index 43f4deacef349502cbb207aafc4f9cb7a75177c5..6b692c24a62e2172116a6b9c371b1c0e2411c27e 100644 diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 32b3d3b8b..54e5afcf0 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -135,10 +135,10 @@ index 4f3cc14d48690bb183d09bb7a5ba1e23e8a0c08a..d8ebcd1c94ce0f78e9d16c603a79a492 stringbuilder.append(CrashReport.getErrorComment()); stringbuilder.append("\n\n"); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 33f06c2cdc8727529b2547e1cb3cb15266be2602..17af0e5be9245573bfcd2ead2be3b6434cd8f576 100644 +index 964f981123b5ea3f2c8f8545739c09fd29e855a9..d88a74af3e6eaa523033b245221c4159b0aa544a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -949,7 +949,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Mon, 29 Apr 2024 09:05:40 +0000 Subject: [PATCH] Purpur Server Changes -TODO - Dreeam: Check TODOs in ServerGamePacketListenerImpl & Tadpole -Fix-pufferfish-issues.patch +TODO - Dreeam: Check TODOs in ServerGamePacketListenerImpl & Fix-pufferfish-issues.patch Original license: MIT Original project: https://github.com/PurpurMC/Purpur -Commit: 3d2569397afa45a8988762081cdff594e96a2c6c +Commit: 1bbb0334799623b7d50beb920f35bd5f591471d1 Patches below are removed in this patch: Metrics changes in Purpur-config-files.patch @@ -521,7 +520,7 @@ index 59d7e8a3d83d3ab7aa28606401bb129ccaeff240..684536f600cca94ea346129a139ec4aa boolean flag1 = this.source.acceptsSuccess() && !this.silent; boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent; diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index fe33a834f8684b175165c87a910ab39f6ec4356f..c0bd91b1cab7066f9582d2c734f61ee50e76098d 100644 +index d7a10df4fa65b562c33fcf0458d8646d71ec84bf..00a9348b4585d9e69364e0d1ac88a59f43ebeee6 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -220,8 +220,8 @@ public class Commands { @@ -700,7 +699,7 @@ index 76ef195a5074006b009acd9cc1744667c6aecbb9..659577549e132754281df76a7a1bfd88 public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { this.gameTime = time; diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index bbeb88843f210abdf1cafed11394380cfcab0e09..e68ecaf8d60517fe6398338702a7a7968d67d32b 100644 +index 8841f0376a7676922362b6d06c2af752d1319737..207f8f864f0cf5874f8cad9bd15fa5e9ffa3fc12 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -119,6 +119,12 @@ public class Main { @@ -717,7 +716,7 @@ index bbeb88843f210abdf1cafed11394380cfcab0e09..e68ecaf8d60517fe6398338702a7a796 Bootstrap.bootStrap(); Bootstrap.validate(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a976002437a5d9c761835691213e11b14d9a7d45..1f4b3412396b1c5d142c0ad9123cacc2f225494b 100644 +index 37ce8377f6fff96953137d8e0bf2a57543a0ead3..c7c4a56cb09ca513abdbaf5674c325e551ea2909 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -282,6 +282,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.updateLagCompensationTick(); // Paper - lag compensation @@ -3019,7 +3018,7 @@ index 7c7e9f40b1d46b1780f55e1cfbf89b6dbd82f2ae..d06c5d16d312187b6a53c8995d524c0e this.gameEvent(GameEvent.ELYTRA_GLIDE); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index ad08008a9d3f50bab1ae05603aab4cf3be8e2d54..446237ffe4f40cf287c57c28a9866dfea39ed1bb 100644 +index 54cc3b7baa0988972151319245e0ff89151efa5e..1f787798b6d557a2379546f9a4910a7e7a12b178 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -74,6 +74,7 @@ import net.minecraft.world.item.SpawnEggItem; @@ -14490,7 +14489,7 @@ index eb152f9ab41fc7b7219f9be26b574d61506c55d5..e9e0c91299b2669e0ff452176bf9758c Set set = Sets.newHashSet(); boolean flag = true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5854c76fadd8fe08d0d0ca5d01ce218b86a508c1..1397f54cef6cc23ba99a4faa36bf862318da9270 100644 +index ba2c1672a018dbd0a179e71f7166fb9df87782dd..45adf5a7c46ee4e3a06e62fbbb22548175359180 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -175,6 +175,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -14501,9 +14500,9 @@ index 5854c76fadd8fe08d0d0ca5d01ce218b86a508c1..1397f54cef6cc23ba99a4faa36bf8623 public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -194,6 +195,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - } - // Paper end - fix and optimise world upgrading +@@ -185,6 +186,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + + public final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(this.random.nextLong()); // Gale - Pufferfish - move random tick random + // Purpur start + private com.google.common.cache.Cache playerBreedingCooldowns; @@ -14551,7 +14550,7 @@ index 5854c76fadd8fe08d0d0ca5d01ce218b86a508c1..1397f54cef6cc23ba99a4faa36bf8623 public CraftWorld getWorld() { return this.world; } -@@ -233,6 +277,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -224,6 +268,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.galeConfig = galeWorldConfigCreator.apply(this.spigotConfig); // Gale - Gale configuration @@ -14560,7 +14559,7 @@ index 5854c76fadd8fe08d0d0ca5d01ce218b86a508c1..1397f54cef6cc23ba99a4faa36bf8623 this.generator = gen; this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); -@@ -1917,4 +1963,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1908,4 +1954,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } // Paper end - optimize redstone (Alternate Current) @@ -16957,7 +16956,7 @@ index 9d93130f23addb18b97d7f5ec013faef17a74529..29d2fb87a65778926aea2cfc7a5b486c + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2d46b81faf0f4fdf73ebe26b561e960c6ef451d0..c735be3db72fc0bb9000476a41758711ca551d17 100644 +index 32002eb8b7fd81ef1d0e2ca79292ccb1354b3b02..c10ad40f02009006552691642c057b328904f4b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -409,6 +409,20 @@ public final class CraftServer implements Server { @@ -17005,7 +17004,7 @@ index 2d46b81faf0f4fdf73ebe26b561e960c6ef451d0..c735be3db72fc0bb9000476a41758711 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -1581,6 +1598,55 @@ public final class CraftServer implements Server { +@@ -1576,6 +1593,55 @@ public final class CraftServer implements Server { return true; } @@ -17061,7 +17060,7 @@ index 2d46b81faf0f4fdf73ebe26b561e960c6ef451d0..c735be3db72fc0bb9000476a41758711 @Override public List getRecipesFor(ItemStack result) { Preconditions.checkArgument(result != null, "ItemStack cannot be null"); -@@ -3051,6 +3117,18 @@ public final class CraftServer implements Server { +@@ -3046,6 +3112,18 @@ public final class CraftServer implements Server { } // Gale end - Gale configuration - API @@ -17080,7 +17079,7 @@ index 2d46b81faf0f4fdf73ebe26b561e960c6ef451d0..c735be3db72fc0bb9000476a41758711 @Override public void restart() { org.spigotmc.RestartCommand.restart(); -@@ -3333,4 +3411,15 @@ public final class CraftServer implements Server { +@@ -3328,4 +3406,15 @@ public final class CraftServer implements Server { } // Gale end - YAPFA - last tick time - API diff --git a/patches/server/0012-Fix-Pufferfish-and-Purpur-patches.patch b/patches/server/0012-Fix-Pufferfish-and-Purpur-patches.patch index 7c7f92c2c..986de4044 100644 --- a/patches/server/0012-Fix-Pufferfish-and-Purpur-patches.patch +++ b/patches/server/0012-Fix-Pufferfish-and-Purpur-patches.patch @@ -27,7 +27,7 @@ index e94224ed280247ee69dfdff8dc960f2b8729be33..5b9725a9a81c0850dc2809c150529e5f for (Component component : formatProviders(spigotPlugins, sender)) { // Purpur diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1f4b3412396b1c5d142c0ad9123cacc2f225494b..561426280dff2af8015fec3108a8b8514d994679 100644 +index c7c4a56cb09ca513abdbaf5674c325e551ea2909..ede6cd55688e573e003a6568100b18d5e620f878 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -293,7 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -977,6 +977,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements ServerInfo, CommandSource, AutoCloseable { public static final int SERVER_THREAD_PRIORITY = Integer.getInteger("gale.thread.priority.server", -1); // Gale - server thread priority environment variable -@@ -968,7 +966,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return !this.canSleepForTickNoOversleep(); // Paper - move oversleep into full server tick -@@ -1480,8 +1476,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { entityplayer.connection.suspendFlushing(); }); @@ -1060,7 +1060,7 @@ index 68d560a5fc5b6d2f058625d4210b9a75c09e1da3..50a275352bdd3a1deef925930b57acf1 // Paper start - Folia scheduler API ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); getAllLevels().forEach(level -> { -@@ -1736,20 +1719,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop iterator = this.blockEntityTickers.iterator(); boolean flag = this.tickRateManager().runsNormally(); -@@ -1363,9 +1358,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1354,9 +1349,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075 @@ -1862,7 +1862,7 @@ index 35147d7a6649708c2b068065eb44831f40c3ab8e..1a2ef85cd8a62824b23f4212a5e2a70c @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c735be3db72fc0bb9000476a41758711ca551d17..5a5619667e68379b810bf8c2912a8c64caa38991 100644 +index c10ad40f02009006552691642c057b328904f4b8..97890866386b382e131e624011ad16cce413a752 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -472,7 +472,6 @@ public final class CraftServer implements Server { @@ -2027,7 +2027,7 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..e9798517b9211c50a20ea5c69603aab3 } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index fbb137b8e9bdf0376d346894b7939936647b3856..1a60d80553d9f242cb56fa044db241611d973de1 100644 +index 68daff9c27b6592dea18d137b138ef8b56f95ea8..eb2f35890adb0a593ebae7fb24606fdcced6c3fa 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -218,9 +218,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -2041,7 +2041,7 @@ index fbb137b8e9bdf0376d346894b7939936647b3856..1a60d80553d9f242cb56fa044db24161 // Paper end public static byte toLegacyData(BlockState data) { -@@ -506,7 +504,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -497,7 +495,7 @@ public final class CraftMagicNumbers implements UnsafeValues { // Paper start @Override public String getTimingsServerName() { diff --git a/patches/server/0019-Remove-UseItemOnPacket-Too-Far-Check.patch b/patches/server/0019-Remove-UseItemOnPacket-Too-Far-Check.patch index 03cf60450..9dc238596 100644 --- a/patches/server/0019-Remove-UseItemOnPacket-Too-Far-Check.patch +++ b/patches/server/0019-Remove-UseItemOnPacket-Too-Far-Check.patch @@ -3,8 +3,8 @@ From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Fri, 18 Nov 2022 23:26:16 -0500 Subject: [PATCH] Remove UseItemOnPacket Too Far Check -This Check is added in 1.17.x -> 1.18.x update by Mojang. -By removing this check, it enable hackers to use some modules of hack clients. +This Check is added in 1.17.x -> 1.18.x that updated by Mojang. +By removing this check, it gives ability for hackers to use some modules of hack clients. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java index c53e01260b4ca6f637b3d55798cda4cab822b5fe..d107cd93a6d43f060a7bcfc4a3ee0c82c51bc9b9 100644 diff --git a/patches/server/0031-Leaves-Protocol-Core.patch b/patches/server/0031-Leaves-Protocol-Core.patch index 7e3d31680..a991ebe24 100644 --- a/patches/server/0031-Leaves-Protocol-Core.patch +++ b/patches/server/0031-Leaves-Protocol-Core.patch @@ -40,10 +40,10 @@ index 663b3b12d9a7cdc04b7f86ccfe6bc6fcfd5028bc..a58ad6f41fc0eacf020e9ab6c8e5f7df }; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 50a275352bdd3a1deef925930b57acf176ddb2ed..c7f44250b1801c581420f93d357d64f615949691 100644 +index 24a10554efcf7a24d2d2f82b6981c8d35d13338d..8ca3f0e06f163d9ae2910c9fb2475af70b39b943 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1788,6 +1788,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Co-authored by: MachineBreaker diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a3adc109213885a193f7131405bd4a2f6a90f9be..e971ef13754402f3de118ea24cb9f83b564cd65e 100644 +index 04bef9b8d5551bc76f4be593b92f5bcf5521a4fd..9342c3d4d9d1c5afadceb3a257734e6b4fa17504 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -388,17 +388,19 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -379,17 +379,19 @@ public abstract class Level implements LevelAccessor, AutoCloseable { for (int i = 0, len = entities.size(); i < len; ++i) { Entity entity = entities.get(i); diff --git a/patches/server/0062-Including-5s-in-getTPS.patch b/patches/server/0062-Including-5s-in-getTPS.patch index 80220b893..cdc326bf7 100644 --- a/patches/server/0062-Including-5s-in-getTPS.patch +++ b/patches/server/0062-Including-5s-in-getTPS.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Including 5s in getTPS() diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e9475b7761af84b97f522698a304f0b1ccc134a2..b56ba8d477a86dc983a2170f99fa29bb7472a081 100644 +index a5a7a5fc506c0ca094f37d26b2b27192d09a0a66..6828fee616a77c9816851a29da1cee4921c11d5c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3158,6 +3158,8 @@ public final class CraftServer implements Server { +@@ -3153,6 +3153,8 @@ public final class CraftServer implements Server { @Override public double[] getTPS() {