--- 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,6 +64,7 @@ final SculkSpreader sculkSpreader; private final IBlockData blockState; private final PositionSource positionSource; + private World level; // CraftBukkit public CatalystListener(IBlockData iblockdata, PositionSource positionsource) { this.blockState = iblockdata;