mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-04 16:34:44 +01:00
6e71f41536
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 65247583f SPIGOT-7857: Improve ItemMeta block data deserialization 05d80500d SPIGOT-7857: Fix spurious internal NBT tag when deserializing BlockStateMeta cebb58e9a SPIGOT-7804: Fix written book serialization efcdd5d38 SPIGOT-7794: Cancelling InventoryItemMoveEvent destroys items b568ba572 SPIGOT-7789: Fix NPE in CraftMetaFirework applyToItem f057cf449 Remove outdated build delay Spigot Changes: f6a48054 SPIGOT-7835: Fix issue with custom hopper settings bb63b137 Rebuild patches e1142b4d Rebuild patches
43 lines
2.5 KiB
Diff
43 lines
2.5 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 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) {
|