aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0760-fix-Jigsaw-block-kicking-user.patch
blob: 0c52c47ce91d87995bfcd7307c5dd2a68d7be41e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Legitimoose <legitimoose@gmail.com>
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) {