diff --git a/leaf-server/minecraft-patches/features/0185-Add-BlockExplosionHitEvent.patch b/leaf-server/minecraft-patches/features/0185-Add-BlockExplosionHitEvent.patch index ff3a13ec..7f6f6b67 100644 --- a/leaf-server/minecraft-patches/features/0185-Add-BlockExplosionHitEvent.patch +++ b/leaf-server/minecraft-patches/features/0185-Add-BlockExplosionHitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockExplosionHitEvent diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java -index 6030c4eefd77969a1a9251de76d4291dcb0a2092..a43192a4c0b89cf9436e1e3144037420005d85d9 100644 +index 6030c4eefd77969a1a9251de76d4291dcb0a2092..f76ec9520f6a2ee42ed3ba65068c01f4b9bc8746 100644 --- a/net/minecraft/world/level/ServerExplosion.java +++ b/net/minecraft/world/level/ServerExplosion.java @@ -623,9 +623,13 @@ public class ServerExplosion implements Explosion { @@ -16,7 +16,7 @@ index 6030c4eefd77969a1a9251de76d4291dcb0a2092..a43192a4c0b89cf9436e1e3144037420 - .getBlockState(blockPos) - .onExplosionHit(this.level, blockPos, this, (itemStack, blockPos1) -> addOrAppendStack(list, itemStack, blockPos1)); + // Leaf start - Add BlockExplosionHitEvent -+ if(new org.dreeam.leaf.event.BlockExplosionHitEvent(CraftLocation.toBukkit(blockPos, bworld).getBlock(), this.source == null ? null : this.source.getBukkitEntity(), org.bukkit.craftbukkit.CraftExplosionResult.toBukkit(this.blockInteraction)).callEvent()) { ++ if (new org.dreeam.leaf.event.BlockExplosionHitEvent(CraftLocation.toBukkit(blockPos, bworld).getBlock(), this.source == null ? null : this.source.getBukkitEntity(), org.bukkit.craftbukkit.CraftExplosionResult.toBukkit(this.blockInteraction)).callEvent()) { + this.level + .getBlockState(blockPos) + .onExplosionHit(this.level, blockPos, this, (itemStack, blockPos1) -> addOrAppendStack(list, itemStack, blockPos1)); diff --git a/leaf-server/paper-patches/features/0043-dump-pwt-thread.patch b/leaf-server/paper-patches/features/0043-dump-pwt-thread.patch index 3af35014..7d59e65b 100644 --- a/leaf-server/paper-patches/features/0043-dump-pwt-thread.patch +++ b/leaf-server/paper-patches/features/0043-dump-pwt-thread.patch @@ -5,24 +5,14 @@ Subject: [PATCH] dump pwt thread diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index e45d5da04428c26fc6aa97fba974bde3573d7950..745a9afcdb8ea3047c1fcdc91971ba8f034cbd39 100644 +index e45d5da04428c26fc6aa97fba974bde3573d7950..16e5ab49bc96f64143eb9e0dff19b33a7e3b5f3a 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java -@@ -8,6 +8,7 @@ import java.lang.management.ThreadInfo; - import java.util.logging.Level; - import java.util.logging.Logger; - import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.level.ServerLevel; - import org.bukkit.Bukkit; - import org.bukkit.craftbukkit.CraftServer; - -@@ -124,8 +125,21 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre - logger.log(Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Leaf!):"); // Paper // Gale - branding changes // Leaf - Rebrand - FeatureHooks.dumpAllChunkLoadInfo(MinecraftServer.getServer(), isLongTimeout); // Paper - log detailed tick information +@@ -126,6 +126,21 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE), logger); -+ // Leaf start logger.log(Level.SEVERE, "------------------------------"); -- + ++ // Leaf start - dump pwt thread + logger.log(Level.SEVERE, "Parallel world ticking thread dump"); + for (Thread thread : org.apache.commons.lang3.ThreadUtils.getAllThreads()) { + if (MinecraftServer.getServer().serverThread == thread || thread instanceof WatchdogThread) { @@ -30,12 +20,13 @@ index e45d5da04428c26fc6aa97fba974bde3573d7950..745a9afcdb8ea3047c1fcdc91971ba8f + } + if (thread instanceof ca.spottedleaf.moonrise.common.util.TickThread tickThread) { + if (tickThread instanceof ServerLevelTickThread tickThread1) { -+ WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(tickThread1.getId(), Integer.MAX_VALUE), logger); ++ WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(tickThread1.threadId(), Integer.MAX_VALUE), logger); + } + } + } + logger.log(Level.SEVERE, "------------------------------"); -+ // Leaf end ++ // Leaf end - dump pwt thread ++ // Paper start - Only print full dump on long timeouts if (isLongTimeout) { logger.log(Level.SEVERE, "Entire Thread Dump:"); diff --git a/leaf-server/src/main/java/org/dreeam/leaf/async/ai/AsyncGoalThread.java b/leaf-server/src/main/java/org/dreeam/leaf/async/ai/AsyncGoalThread.java index 2d91d2c3..e989adbf 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/async/ai/AsyncGoalThread.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/async/ai/AsyncGoalThread.java @@ -8,6 +8,7 @@ import java.util.OptionalInt; import java.util.concurrent.locks.LockSupport; public class AsyncGoalThread extends Thread { + public static volatile boolean RUNNING = true; public AsyncGoalThread(final MinecraftServer server) { super(() -> run(server), "Leaf Async Goal Thread");