aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2024-08-19 14:28:03 -0700
committerGitHub <[email protected]>2024-08-19 14:28:03 -0700
commit32711191cdad920b4818915b21699f9433800bf2 (patch)
tree0b74f8d01675764bf883010483d469a54575c719
parente4b38b4f8c2d6647a36865b64f63df771b5e4041 (diff)
downloadPaper-32711191cdad920b4818915b21699f9433800bf2.tar.gz
Paper-32711191cdad920b4818915b21699f9433800bf2.zip
Fix SculkBloomEvent firing for block entity loading (#11306)
-rw-r--r--patches/server/1051-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/patches/server/1051-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch b/patches/server/1051-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch
new file mode 100644
index 0000000000..052376aaeb
--- /dev/null
+++ b/patches/server/1051-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);