mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-02 13:07:06 +01:00
4af62f6d1d
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 Bukkit Changes: 2d009e64 Update SnakeYAML javadoc link b4fd213c Switch Player#updateInventory deprecation for internal API annotation CraftBukkit Changes: f3b2b2210 SPIGOT-7376: Exception with getBlockData when hasBlockData is false 725545630 SPIGOT-7375: Fix crash breeding certain entities b9873b0d4 Update Brigadier version with fix 68b320562 SPIGOT-7266: Found typo in CraftBukkit package 98b4d2ff8 SPIGOT-7372, SPIGOT-7373: Signs can't be edited, issues with SignChangeEvent 5f7bd4d78 SPIGOT-7371: Sign does not open edit text on placement b4cf99d24 SPIGOT-7371: Fix editing signs with API a2b6c2744 PR-1200: Implement open sign by side a345bb940 SPIGOT-7368: Downgrade SpecialSource version Spigot Changes: 723951c3 Rebuild patches b655c57d Drop old collision API deprecated since 1.9.4 55b0fed4 Rebuild patches
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 8efdd41fbd14a2127a6d52577550bb781bc8c5f7..182e16c1d968707a11329150d71b7d01df6c6e52 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
|
|
@@ -109,7 +109,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
|
|
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) {
|