aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/1008-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/1008-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch')
-rw-r--r--patches/server/1008-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/patches/server/1008-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch b/patches/server/1008-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch
new file mode 100644
index 0000000000..c2857c2245
--- /dev/null
+++ b/patches/server/1008-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 b9a1709b79c1f7a21c9d08f986d4ea3b546e4a67..24590d131587c4e1def920333140b1575f9d7471 100644
+--- a/src/main/java/net/minecraft/world/level/block/SculkSpreader.java
++++ b/src/main/java/net/minecraft/world/level/block/SculkSpreader.java
+@@ -126,7 +126,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
+ }
+ }
+
+@@ -146,16 +146,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);