diff options
Diffstat (limited to 'patches/server/1045-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch')
-rw-r--r-- | patches/server/1045-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/patches/server/1045-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch b/patches/server/1045-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch new file mode 100644 index 0000000000..052376aaeb --- /dev/null +++ b/patches/server/1045-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic <[email protected]> +Date: Mon, 19 Aug 2024 13:43:06 -0700 +Subject: [PATCH] Fix SculkBloomEvent firing for block entity loading + + +diff --git a/src/main/java/net/minecraft/world/level/block/SculkSpreader.java b/src/main/java/net/minecraft/world/level/block/SculkSpreader.java +index dbdd9cb76f9e2d0962001d9a1e82896c907d7aea..427e9bcb1fa9436543d7ff974eb8642ccce4a6a3 100644 +--- a/src/main/java/net/minecraft/world/level/block/SculkSpreader.java ++++ b/src/main/java/net/minecraft/world/level/block/SculkSpreader.java +@@ -125,7 +125,7 @@ public class SculkSpreader { + int i = Math.min(list.size(), 32); + + for (int j = 0; j < i; ++j) { +- this.addCursor((SculkSpreader.ChargeCursor) list.get(j)); ++ this.addCursor((SculkSpreader.ChargeCursor) list.get(j), false); // Paper - don't fire event for block entity loading + } + } + +@@ -145,16 +145,16 @@ public class SculkSpreader { + while (charge > 0) { + int j = Math.min(charge, 1000); + +- this.addCursor(new SculkSpreader.ChargeCursor(pos, j)); ++ this.addCursor(new SculkSpreader.ChargeCursor(pos, j), true); // Paper - allow firing event for other causes + charge -= j; + } + + } + +- private void addCursor(SculkSpreader.ChargeCursor cursor) { ++ private void addCursor(SculkSpreader.ChargeCursor cursor, boolean fireEvent) { // Paper - add boolean to conditionally fire SculkBloomEvent + if (this.cursors.size() < 32) { + // CraftBukkit start +- if (!this.isWorldGeneration()) { // CraftBukkit - SPIGOT-7475: Don't call event during world generation ++ if (!this.isWorldGeneration() && fireEvent) { // CraftBukkit - SPIGOT-7475: Don't call event during world generation // Paper - add boolean to conditionally fire SculkBloomEvent + CraftBlock bukkitBlock = CraftBlock.at(this.level, cursor.pos); + SculkBloomEvent event = new SculkBloomEvent(bukkitBlock, cursor.getCharge()); + Bukkit.getPluginManager().callEvent(event); |