Paper/patches/server/1010-Fix-SculkBloomEvent-firing-for-block-entity-loading.patch
Spottedleaf da9d110d5b Remove chunk save reattempt patch
This patch does not appear to be doing anything useful, and may
hide errors.

Currently, the save logic does not run through this path either
so it did not do anything.

Additionally, properly implement support for handling
RegionFileSizeException in Moonrise.
2024-11-28 18:27:59 -08:00

40 lines
2.1 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
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);