diff options
author | Jake Potrebic <[email protected]> | 2024-05-29 13:58:57 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2024-05-29 22:58:57 +0200 |
commit | a31dc90741ed9c121a13a3c124c9ebf5bafd0da7 (patch) | |
tree | 81963bd94fe7772ee08bd21710230de21b6b25da /patches/server/0760-fix-Jigsaw-block-kicking-user.patch | |
parent | ed85aac53cfd93d29fa24e6071dbdddd0e49624b (diff) | |
download | Paper-a31dc90741ed9c121a13a3c124c9ebf5bafd0da7.tar.gz Paper-a31dc90741ed9c121a13a3c124c9ebf5bafd0da7.zip |
Several fixes and new api for experience merging/stacking (#9242)
Diffstat (limited to 'patches/server/0760-fix-Jigsaw-block-kicking-user.patch')
-rw-r--r-- | patches/server/0760-fix-Jigsaw-block-kicking-user.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/server/0760-fix-Jigsaw-block-kicking-user.patch b/patches/server/0760-fix-Jigsaw-block-kicking-user.patch new file mode 100644 index 0000000000..0c52c47ce9 --- /dev/null +++ b/patches/server/0760-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 3a80b0e9c0e12a84034aadebd0ff6f6b51d0d2ea..922592f2073eaea8ca361a3a1efcda8b18bea21c 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 +@@ -137,7 +137,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 23ac340661cf0f5940c0d6333c74a9c7b36dca26..7ba11f734bd73dde165d155a633b47dac979a8e9 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 +@@ -97,7 +97,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) { |