diff --git a/patches/server/0024-KTP-Optimize-spigot-event-bus.patch b/patches/server/0024-KTP-Optimize-spigot-event-bus.patch new file mode 100644 index 00000000..d0299650 --- /dev/null +++ b/patches/server/0024-KTP-Optimize-spigot-event-bus.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Bjarne Koll +Date: Sun, 19 Feb 2023 16:14:28 +0100 +Subject: [PATCH] KTP: Optimize spigot event bus + +Original license: GPL v3 +Original project: https://github.com/lynxplay/ktp + +This patch contains a lot of small optimizations to the spigot event bus +to improve its speed as much as possible, allowing for a large amount of +events to be published by the server without impacting the overall +performance too much. + +diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java +index 7ce9ebba8ce304d1f3f21d4f15ee5f3560d7700b..760535e1d6335cf07b6222525610a11318d2596f 100644 +--- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java ++++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java +@@ -36,11 +36,17 @@ class PaperEventManager { + + // SimplePluginManager + public void callEvent(@NotNull Event event) { +- if (event.isAsynchronous() && this.server.isPrimaryThread()) { ++ // KTP start - Optimise spigot event bus ++ if (event.asynchronous() != net.kyori.adventure.util.TriState.NOT_SET) { ++ final boolean onPrimaryThread = this.server.isPrimaryThread(); ++ final boolean isAsync = event.isAsynchronous(); ++ if (isAsync && onPrimaryThread) { + throw new IllegalStateException(event.getEventName() + " may only be triggered asynchronously."); +- } else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) { ++ } else if (!isAsync && !onPrimaryThread && !this.server.isStopping()) { + throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously."); + } ++ // KTP stop - Optimise spigot event bus ++ } + + HandlerList handlers = event.getHandlers(); + RegisteredListener[] listeners = handlers.getRegisteredListeners(); diff --git a/patches/server/0024-KeYi-Use-a-faster-random-implementation.patch b/patches/server/0025-KeYi-Use-a-faster-random-implementation.patch similarity index 99% rename from patches/server/0024-KeYi-Use-a-faster-random-implementation.patch rename to patches/server/0025-KeYi-Use-a-faster-random-implementation.patch index cea4aba3..fa9374b3 100644 --- a/patches/server/0024-KeYi-Use-a-faster-random-implementation.patch +++ b/patches/server/0025-KeYi-Use-a-faster-random-implementation.patch @@ -426,7 +426,7 @@ index e5ea9f27a1936ed9e329e74317c91c5df89b9fbd..89a41d396162a1c2eb2df5192b0d888b private long lastFill = -1; private long nextRefill = -1; diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index bca581f2a192015f5461e5bf776234687e5ae9fc..87161a2a3f611abdefdb2ef475a3cb64261339b8 100644 +index 3a31efd270ddd563b8f2aa27e915bc86a5896623..ccf7a5abfe1d15c02eaa7b7b5699642f53bc3510 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -52,6 +52,10 @@ import net.minecraft.world.level.material.Fluids; @@ -471,7 +471,7 @@ index dcfe090c269d4cbcc2eb1b6f85392848bb34656c..ef8909c9c13c8f46ec6d452f0d14c9a1 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9eae3862abb5f1d7755a8e777fd4bf9a6f8e321d..ee86c8d45c6cbbc0de3039e7d319eb26a8c8f918 100644 +index 0e55e416f3ba35b69ab6a5082aedbff977bd3d62..27c5205fd68d1ced2cb077eee02e81dd3b3f4215 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -132,6 +132,7 @@ import org.bukkit.util.RayTraceResult; diff --git a/patches/server/0025-KeYi-Player-Skull-API.patch b/patches/server/0026-KeYi-Player-Skull-API.patch similarity index 95% rename from patches/server/0025-KeYi-Player-Skull-API.patch rename to patches/server/0026-KeYi-Player-Skull-API.patch index fa920632..2c7c5fdc 100644 --- a/patches/server/0025-KeYi-Player-Skull-API.patch +++ b/patches/server/0026-KeYi-Player-Skull-API.patch @@ -7,7 +7,7 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index eca5e6b93dd84307bf9dbadf32414d6f506e69dc..7dfe06d9ab1d171a1c3ed177545eff9143eb69d5 100644 +index 1bada55af5d16437da4d16f9ded55f88a6121eb4..3d33861323a0472322ea50a61892798a91b1bd74 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -26,6 +26,11 @@ import java.util.Optional; diff --git a/patches/server/0026-KeYi-Disable-arrow-despawn-counter-by-default.patch b/patches/server/0027-KeYi-Disable-arrow-despawn-counter-by-default.patch similarity index 100% rename from patches/server/0026-KeYi-Disable-arrow-despawn-counter-by-default.patch rename to patches/server/0027-KeYi-Disable-arrow-despawn-counter-by-default.patch diff --git a/patches/server/0027-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch b/patches/server/0028-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch similarity index 100% rename from patches/server/0027-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch rename to patches/server/0028-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch diff --git a/patches/server/0028-Carpet-Fixes-Optimized-getBiome-method.patch b/patches/server/0029-Carpet-Fixes-Optimized-getBiome-method.patch similarity index 100% rename from patches/server/0028-Carpet-Fixes-Optimized-getBiome-method.patch rename to patches/server/0029-Carpet-Fixes-Optimized-getBiome-method.patch diff --git a/patches/server/0029-Carpet-Fixes-Use-optimized-RecipeManager.patch b/patches/server/0030-Carpet-Fixes-Use-optimized-RecipeManager.patch similarity index 97% rename from patches/server/0029-Carpet-Fixes-Use-optimized-RecipeManager.patch rename to patches/server/0030-Carpet-Fixes-Use-optimized-RecipeManager.patch index 0fddadb0..3eba1226 100644 --- a/patches/server/0029-Carpet-Fixes-Use-optimized-RecipeManager.patch +++ b/patches/server/0030-Carpet-Fixes-Use-optimized-RecipeManager.patch @@ -11,7 +11,7 @@ This is a fully vanilla optimization. Improves: [Blast]Furnace/Campfire/Smoker/S This was mostly made for the auto crafting table, since the performance boost is much more visible while using that mod diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -index 2f712bfc1f717ba410bf34669d7b0a919ca218cc..fa7f4c3e14aa4ec11187f7c0f96cb4504ee38547 100644 +index ab6dc3449a1d3b7acf1d7bf5ac1c24224cc252c7..81a499fdeb7a4c6cd949cb0065fd6622a1127122 100644 --- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java +++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java @@ -11,14 +11,7 @@ import com.google.gson.JsonParseException; diff --git a/patches/server/0030-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch b/patches/server/0031-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch similarity index 99% rename from patches/server/0030-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch rename to patches/server/0031-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch index b2d88604..88c62453 100644 --- a/patches/server/0030-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch +++ b/patches/server/0031-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch @@ -153,7 +153,7 @@ index b2f1d117abd3828140c1edf2baf314b34d2ccf40..d13bafdfa4175e193fa3e337f93e796d throw ERROR_TICK_COUNT_TOO_LOW.create(j, this.minimum); } else { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8cd54a95609df0c5497c00d1a254c22d47e80a15..0447aaaa778e9e7f5ceb3d0f3c868a8289fcdc6f 100644 +index 6662699cd28cfd337298b19e947a3f84c1d1972f..86702fec0b2999a8d04482f04f98e76ffa33ff59 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2861,7 +2861,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop @@ -515,7 +515,7 @@ index 918631209956adae59b83dd28e7492290362311e..607b02f77c76760f607ce763ea2ea17e public static String commandTPSBarOutput = "Tpsbar toggled for "; diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java -index b42b31cd33232a99befd8334bc24b8ae8b021ccb..b339fd4b3b4bc48caa10d2707071b08e284b1992 100644 +index b2824b471ca8046631aa5a3da69015c1cc8631a3..61f8953b4472bdc79d33b4fa846929ba9e6e8bcd 100644 --- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java +++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java @@ -69,7 +69,7 @@ public class TicksPerSecondCommand extends Command diff --git a/patches/server/0031-Petal-reduce-work-done-by-game-event-system.patch b/patches/server/0032-Petal-reduce-work-done-by-game-event-system.patch similarity index 100% rename from patches/server/0031-Petal-reduce-work-done-by-game-event-system.patch rename to patches/server/0032-Petal-reduce-work-done-by-game-event-system.patch diff --git a/patches/server/0032-Petal-Reduce-sensor-work.patch b/patches/server/0033-Petal-Reduce-sensor-work.patch similarity index 100% rename from patches/server/0032-Petal-Reduce-sensor-work.patch rename to patches/server/0033-Petal-Reduce-sensor-work.patch diff --git a/patches/server/0033-Akarin-Save-Json-list-asynchronously.patch b/patches/server/0034-Akarin-Save-Json-list-asynchronously.patch similarity index 100% rename from patches/server/0033-Akarin-Save-Json-list-asynchronously.patch rename to patches/server/0034-Akarin-Save-Json-list-asynchronously.patch diff --git a/patches/server/0034-Slice-Smooth-Teleports.patch b/patches/server/0035-Slice-Smooth-Teleports.patch similarity index 97% rename from patches/server/0034-Slice-Smooth-Teleports.patch rename to patches/server/0035-Slice-Smooth-Teleports.patch index f3d5db73..8417678a 100644 --- a/patches/server/0034-Slice-Smooth-Teleports.patch +++ b/patches/server/0035-Slice-Smooth-Teleports.patch @@ -38,7 +38,7 @@ index f509a31c20bef0a37dfa9b51afe2fac9a607b10b..ca352368716214a6c670aa7185a0b3a8 // entityplayer1.connection.teleport(entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7dfe06d9ab1d171a1c3ed177545eff9143eb69d5..f8e879fb416c4d7a614b52de00a4e029f2427ffd 100644 +index 3d33861323a0472322ea50a61892798a91b1bd74..9a7419eb920f76b46605dbe00f7aeacece5282c2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1246,6 +1246,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0035-Pufferfish-Sentry.patch b/patches/server/0036-Pufferfish-Sentry.patch similarity index 98% rename from patches/server/0035-Pufferfish-Sentry.patch rename to patches/server/0036-Pufferfish-Sentry.patch index e0fe3564..5c2e9417 100644 --- a/patches/server/0035-Pufferfish-Sentry.patch +++ b/patches/server/0036-Pufferfish-Sentry.patch @@ -194,7 +194,7 @@ index 0000000000000000000000000000000000000000..bcacccd9d47697bea0405f2544be94fc + +} diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index 4260147ebc4f1e60ce510212c2829ed32f94b735..ecc9535595d0e8a5777f45d276b970318db80265 100644 +index 607b02f77c76760f607ce763ea2ea17e48323c0e..19f854d3e95fcf53414708c3f1988efd776a9fc3 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -190,6 +190,7 @@ public class LeafConfig { diff --git a/patches/server/0036-PaperPR-Optimize-VarInts.patch b/patches/server/0037-PaperPR-Optimize-VarInts.patch similarity index 100% rename from patches/server/0036-PaperPR-Optimize-VarInts.patch rename to patches/server/0037-PaperPR-Optimize-VarInts.patch diff --git a/patches/server/0037-Parchment-Make-FixLight-use-action-bar.patch b/patches/server/0038-Parchment-Make-FixLight-use-action-bar.patch similarity index 100% rename from patches/server/0037-Parchment-Make-FixLight-use-action-bar.patch rename to patches/server/0038-Parchment-Make-FixLight-use-action-bar.patch