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
34 lines
2.0 KiB
Diff
34 lines
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Sun, 9 Apr 2023 21:11:58 -0700
|
|
Subject: [PATCH] Fix a couple of upstream bed issues
|
|
|
|
Upstream incorrectly skipped explosion logic if
|
|
the bed was occupied and added a "feature" where
|
|
if you set your spawn in a respawn anchor world
|
|
but then replaced it with a bed, you could respawn
|
|
at the bed in that world.
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java
|
|
index 18b9a62613c08eb5bf63ae26565b0e91e1f44d39..85d598c3354ee62f0fd1b26e485e0084967c0380 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/BedBlock.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java
|
|
@@ -107,6 +107,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock
|
|
world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK);
|
|
return InteractionResult.SUCCESS;
|
|
} else if ((Boolean) state.getValue(BedBlock.OCCUPIED)) {
|
|
+ if (!BedBlock.canSetSpawn(world)) return this.explodeBed(state, world, pos); // Paper - check explode first
|
|
if (!this.kickVillagerOutOfBed(world, pos)) {
|
|
player.displayClientMessage(Component.translatable("block.minecraft.bed.occupied"), true);
|
|
}
|
|
@@ -164,8 +165,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock
|
|
// CraftBukkit end
|
|
|
|
public static boolean canSetSpawn(Level world) {
|
|
- // CraftBukkit - moved world and biome check into EntityHuman
|
|
- return true || world.dimensionType().bedWorks();
|
|
+ return world.dimensionType().bedWorks(); // Paper - actually check if the bed works
|
|
}
|
|
|
|
private boolean kickVillagerOutOfBed(Level world, BlockPos pos) {
|