aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0786-fix-Jigsaw-block-kicking-user.patch
diff options
context:
space:
mode:
authormaxcom1 <[email protected]>2024-03-23 22:26:17 +0100
committerGitHub <[email protected]>2024-03-23 17:26:17 -0400
commitb6001403e9703cadaa6e8c8558e732b91c3c6d6e (patch)
treea8c57bbc334a8ad48d4ad2b43db335667b142bee /patches/server/0786-fix-Jigsaw-block-kicking-user.patch
parent9ec7dfcbc41c6e625de0050b6997160a75df9f44 (diff)
downloadPaper-b6001403e9703cadaa6e8c8558e732b91c3c6d6e.tar.gz
Paper-b6001403e9703cadaa6e8c8558e732b91c3c6d6e.zip
Add methods to change entity physics (#10334)
Diffstat (limited to 'patches/server/0786-fix-Jigsaw-block-kicking-user.patch')
-rw-r--r--patches/server/0786-fix-Jigsaw-block-kicking-user.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/server/0786-fix-Jigsaw-block-kicking-user.patch b/patches/server/0786-fix-Jigsaw-block-kicking-user.patch
new file mode 100644
index 0000000000..3c04241bd6
--- /dev/null
+++ b/patches/server/0786-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) {