CraftBukkit/nms-patches/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.patch

36 lines
1.9 KiB
Diff

--- a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
@@ -32,14 +32,18 @@
public SculkCatalystBlockEntity(BlockPosition blockposition, IBlockData iblockdata) {
super(TileEntityTypes.SCULK_CATALYST, blockposition, iblockdata);
this.catalystListener = new SculkCatalystBlockEntity.CatalystListener(iblockdata, new BlockPositionSource(blockposition));
+ catalystListener.level = level; // CraftBukkit
}
public static void serverTick(World world, BlockPosition blockposition, IBlockData iblockdata, SculkCatalystBlockEntity sculkcatalystblockentity) {
+ org.bukkit.craftbukkit.event.CraftEventFactory.sourceBlockOverride = sculkcatalystblockentity.getBlockPos(); // CraftBukkit - SPIGOT-7068: Add source block override, not the most elegant way but better than passing down a BlockPosition up to five methods deep.
sculkcatalystblockentity.catalystListener.getSculkSpreader().updateCursors(world, blockposition, world.getRandom(), true);
+ org.bukkit.craftbukkit.event.CraftEventFactory.sourceBlockOverride = null; // CraftBukkit
}
@Override
public void load(NBTTagCompound nbttagcompound) {
+ super.load(nbttagcompound); // CraftBukkit - SPIGOT-7393: Load super Bukkit data
this.catalystListener.sculkSpreader.load(nbttagcompound);
}
@@ -60,11 +64,13 @@
final SculkSpreader sculkSpreader;
private final IBlockData blockState;
private final PositionSource positionSource;
+ private World level; // CraftBukkit
public CatalystListener(IBlockData iblockdata, PositionSource positionsource) {
this.blockState = iblockdata;
this.positionSource = positionsource;
this.sculkSpreader = SculkSpreader.createLevelSpreader();
+ this.sculkSpreader.level = level; // CraftBukkit
}
@Override