aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRemynfv <[email protected]>2022-10-01 01:08:07 -0700
committerGitHub <[email protected]>2022-10-01 10:08:07 +0200
commit2534e5cbbfb062dedbe91046fce42b0de734fa84 (patch)
tree1612f41ac2f131ecb0ab4c7a33817479ad0d10b2
parentf5fa69173cb59bf9fb4420163a25e305c7218b6b (diff)
downloadPaper-2534e5cbbfb062dedbe91046fce42b0de734fa84.tar.gz
Paper-2534e5cbbfb062dedbe91046fce42b0de734fa84.zip
Fix other jigsaw related disconnect bug (#8414)
-rw-r--r--patches/server/0917-fix-Jigsaw-block-kicking-user.patch18
1 files changed, 18 insertions, 0 deletions
diff --git a/patches/server/0917-fix-Jigsaw-block-kicking-user.patch b/patches/server/0917-fix-Jigsaw-block-kicking-user.patch
index 78ddb867de..846e244a93 100644
--- a/patches/server/0917-fix-Jigsaw-block-kicking-user.patch
+++ b/patches/server/0917-fix-Jigsaw-block-kicking-user.patch
@@ -4,6 +4,24 @@ Date: Wed, 28 Sep 2022 22:45:49 -0700
Subject: [PATCH] fix Jigsaw block kicking user
+diff --git a/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java
+index fee4aef1bdae1b1ca57ff0b6c3fd2ec31439c37b..b56e4be3228489b5b910c23bde1717d5d3e2ad9a 100644
+--- a/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java
++++ b/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java
+@@ -108,7 +108,12 @@ public class JigsawBlockEntity extends BlockEntity {
+ public void generate(ServerLevel world, int maxDepth, boolean keepJigsaws) {
+ BlockPos blockPos = this.getBlockPos().relative(this.getBlockState().getValue(JigsawBlock.ORIENTATION).front());
+ Registry<StructureTemplatePool> registry = world.registryAccess().registryOrThrow(Registry.TEMPLATE_POOL_REGISTRY);
+- Holder<StructureTemplatePool> holder = registry.getHolderOrThrow(this.pool);
++ // Paper start - Replace getHolderOrThrow with a null check
++ Holder<StructureTemplatePool> holder = registry.getHolder(this.pool).orElse(null);
++ if (holder == null) {
++ return;
++ }
++ // Paper end
+ JigsawPlacement.generateJigsaw(world, holder, this.target, maxDepth, blockPos, keepJigsaws);
+ }
+
diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java b/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java
index de7435f6596e200c8511224a0479c2ad499b2a97..bcf9eb1096b09748bcabba05bc9ffac494d3c611 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java