From b533ad43f7d2498ef86ef959899e2aab997f959f Mon Sep 17 00:00:00 2001 From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> Date: Mon, 7 Jul 2025 04:09:16 +0300 Subject: [PATCH] switch from paper files to features --- .../features/0003-Delete-timings.patch | 6 +++--- .../0012-Skip-event-if-no-listeners.patch} | 15 ++++++++++--- .../0013-Force-Minecraft-command.patch} | 10 ++++++++- ...ver-getWorlds-ArrayList-with-a-fastu.patch | 21 +++++++++++++++++++ .../bukkit/craftbukkit/CraftServer.java.patch | 11 ---------- 5 files changed, 45 insertions(+), 18 deletions(-) rename divinemc-server/paper-patches/{files/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java.patch => features/0012-Skip-event-if-no-listeners.patch} (68%) rename divinemc-server/paper-patches/{files/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java.patch => features/0013-Force-Minecraft-command.patch} (61%) create mode 100644 divinemc-server/paper-patches/features/0014-Replace-CraftServer-getWorlds-ArrayList-with-a-fastu.patch delete mode 100644 divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch diff --git a/divinemc-server/paper-patches/features/0003-Delete-timings.patch b/divinemc-server/paper-patches/features/0003-Delete-timings.patch index 95875e7..986ad86 100644 --- a/divinemc-server/paper-patches/features/0003-Delete-timings.patch +++ b/divinemc-server/paper-patches/features/0003-Delete-timings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Delete timings 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 e989053b703fddfbffc3e4ed9381594aaaa0df41..d7398b1ecf2660c29fb7d106b48fe02d3736603e 100644 +index 7ce9ebba8ce304d1f3f21d4f15ee5f3560d7700b..11e5b9ebafa562e5a93643d954839e86d0b731f0 100644 --- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java +++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java @@ -1,6 +1,5 @@ @@ -15,7 +15,7 @@ index e989053b703fddfbffc3e4ed9381594aaaa0df41..d7398b1ecf2660c29fb7d106b48fe02d import com.destroystokyo.paper.event.server.ServerExceptionEvent; import com.destroystokyo.paper.exception.ServerEventException; import com.google.common.collect.Sets; -@@ -96,7 +95,6 @@ class PaperEventManager { +@@ -95,7 +94,6 @@ class PaperEventManager { throw new IllegalPluginAccessException("Plugin attempted to register " + event + " while not enabled"); } @@ -23,7 +23,7 @@ index e989053b703fddfbffc3e4ed9381594aaaa0df41..d7398b1ecf2660c29fb7d106b48fe02d this.getEventListeners(event).register(new RegisteredListener(listener, executor, priority, plugin, ignoreCancelled)); } -@@ -183,7 +181,7 @@ class PaperEventManager { +@@ -182,7 +180,7 @@ class PaperEventManager { } } diff --git a/divinemc-server/paper-patches/files/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java.patch b/divinemc-server/paper-patches/features/0012-Skip-event-if-no-listeners.patch similarity index 68% rename from divinemc-server/paper-patches/files/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java.patch rename to divinemc-server/paper-patches/features/0012-Skip-event-if-no-listeners.patch index 9138b72..6cf7bfc 100644 --- a/divinemc-server/paper-patches/files/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java.patch +++ b/divinemc-server/paper-patches/features/0012-Skip-event-if-no-listeners.patch @@ -1,6 +1,14 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> +Date: Mon, 7 Jul 2025 04:04:20 +0300 +Subject: [PATCH] Skip event if no listeners + + +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 11e5b9ebafa562e5a93643d954839e86d0b731f0..d7398b1ecf2660c29fb7d106b48fe02d3736603e 100644 --- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java +++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java -@@ -36,14 +_,15 @@ +@@ -35,15 +35,16 @@ class PaperEventManager { // SimplePluginManager public void callEvent(@NotNull Event event) { @@ -13,9 +21,10 @@ } else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) { throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously."); } -- + - HandlerList handlers = event.getHandlers(); - RegisteredListener[] listeners = handlers.getRegisteredListeners(); - +- for (RegisteredListener registration : listeners) { if (!registration.getPlugin().isEnabled()) { + continue; diff --git a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java.patch b/divinemc-server/paper-patches/features/0013-Force-Minecraft-command.patch similarity index 61% rename from divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java.patch rename to divinemc-server/paper-patches/features/0013-Force-Minecraft-command.patch index b7b1a06..c3c3276 100644 --- a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java.patch +++ b/divinemc-server/paper-patches/features/0013-Force-Minecraft-command.patch @@ -1,6 +1,14 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> +Date: Mon, 7 Jul 2025 04:05:08 +0300 +Subject: [PATCH] Force Minecraft command + + +diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java b/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java +index 90ed57a7fbcd0625b64084347460e9864216f610..138f37bf12f39152af97b14515007e9ca485967f 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java +++ b/src/main/java/org/bukkit/craftbukkit/command/CraftCommandMap.java -@@ -14,4 +_,18 @@ +@@ -14,4 +14,18 @@ public class CraftCommandMap extends SimpleCommandMap { public Map getKnownCommands() { return this.knownCommands; } diff --git a/divinemc-server/paper-patches/features/0014-Replace-CraftServer-getWorlds-ArrayList-with-a-fastu.patch b/divinemc-server/paper-patches/features/0014-Replace-CraftServer-getWorlds-ArrayList-with-a-fastu.patch new file mode 100644 index 0000000..7038f60 --- /dev/null +++ b/divinemc-server/paper-patches/features/0014-Replace-CraftServer-getWorlds-ArrayList-with-a-fastu.patch @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> +Date: Mon, 7 Jul 2025 04:06:32 +0300 +Subject: [PATCH] Replace CraftServer#getWorlds ArrayList with a fastutil + ObjectArrayList + +CraftServer#getWorlds is frequently used in some plugins, so replacing ArrayList with fastutil ObjectArrayList will give some performance boost + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index 17022a57cb06b0ddd0df94075c0d92b68137d901..414fdc6ca7a2979124a7fbf529bff60f993c005a 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -974,7 +974,7 @@ public final class CraftServer implements Server { + + @Override + public List getWorlds() { +- return new ArrayList(this.worlds.values()); ++ return new it.unimi.dsi.fastutil.objects.ObjectArrayList(this.worlds.values()); // DivineMC - Replace CraftServer#getWorlds ArrayList with a fastutil ObjectArrayList + } + + @Override diff --git a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch b/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch deleted file mode 100644 index b52c47f..0000000 --- a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java -+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -974,7 +_,7 @@ - - @Override - public List getWorlds() { -- return new ArrayList(this.worlds.values()); -+ return new it.unimi.dsi.fastutil.objects.ObjectArrayList(this.worlds.values()); // DivineMC - optimize getWorlds - } - - @Override