From 93c87bedaf947547bfec97a850f92f1606cb01a1 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Fri, 20 Oct 2023 19:50:22 +0200 Subject: [PATCH] Fix NPE in SculkBloomEvent world access --- .../SculkCatalystBlockEntity.java.patch | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java.patch index 5d803ee0d9..49d4011082 100644 --- a/paper-server/patches/sources/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java.patch @@ -1,12 +1,17 @@ --- a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java +++ b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java -@@ -35,10 +35,13 @@ - public SculkCatalystBlockEntity(BlockPos pos, BlockState state) { - super(BlockEntityType.SCULK_CATALYST, pos, state); +@@ -37,8 +37,18 @@ this.catalystListener = new SculkCatalystBlockEntity.CatalystListener(state, new BlockPositionSource(pos)); -+ this.catalystListener.level = this.level; // CraftBukkit } ++ // Paper start - Fix NPE in SculkBloomEvent world access ++ @Override ++ public void setLevel(Level level) { ++ super.setLevel(level); ++ this.catalystListener.sculkSpreader.level = level; ++ } ++ // Paper end - Fix NPE in SculkBloomEvent world access ++ public static void serverTick(Level world, BlockPos pos, BlockState state, SculkCatalystBlockEntity blockEntity) { + org.bukkit.craftbukkit.event.CraftEventFactory.sourceBlockOverride = blockEntity.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. blockEntity.catalystListener.getSculkSpreader().updateCursors(world, pos, world.getRandom(), true); @@ -14,17 +19,11 @@ } @Override -@@ -64,11 +67,13 @@ - final SculkSpreader sculkSpreader; - private final BlockState blockState; - private final PositionSource positionSource; -+ private Level level; // CraftBukkit - - public CatalystListener(BlockState state, PositionSource positionSource) { +@@ -69,6 +79,7 @@ this.blockState = state; this.positionSource = positionSource; this.sculkSpreader = SculkSpreader.createLevelSpreader(); -+ this.sculkSpreader.level = this.level; // CraftBukkit ++ // this.sculkSpreader.level = this.level; // CraftBukkit // Paper - Fix NPE in SculkBloomEvent world access } @Override