mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 15:49:00 +01:00
42 lines
2.4 KiB
Diff
42 lines
2.4 KiB
Diff
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
|
@@ -0,0 +0,0 @@ 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
|
|
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
|
@@ -0,0 +0,0 @@ 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) {
|