diff options
Diffstat (limited to 'patches/server/0787-fix-Jigsaw-block-kicking-user.patch')
-rw-r--r-- | patches/server/0787-fix-Jigsaw-block-kicking-user.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/server/0787-fix-Jigsaw-block-kicking-user.patch b/patches/server/0787-fix-Jigsaw-block-kicking-user.patch new file mode 100644 index 0000000000..3c04241bd6 --- /dev/null +++ b/patches/server/0787-fix-Jigsaw-block-kicking-user.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Legitimoose <[email protected]> +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 72d89e8999825b43a36ed9ee8f4545bde3927690..e2e31d6383c7de4f2eede46987d51978a5692639 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 +@@ -133,7 +133,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(Registries.TEMPLATE_POOL); +- 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 - Replace getHolderOrThrow with a null check + 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 2c5165835dede1abc07ff508c820f0fe1a1027d0..194864460a5508b6b60f445d6c7923c2ae14a15b 100644 +--- 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 +@@ -85,7 +85,13 @@ public class StructureTemplatePool { + } + + public StructurePoolElement getRandomTemplate(RandomSource random) { ++ //Paper start - Prevent random.nextInt throwing an IllegalArgumentException ++ if (this.templates.size() == 0) { ++ return EmptyPoolElement.INSTANCE; ++ } else { + return this.templates.get(random.nextInt(this.templates.size())); ++ } ++ // Paper end + } + + public List<StructurePoolElement> getShuffledTemplates(RandomSource random) { |