diff --git a/nms-patches/net/minecraft/server/level/EntityPlayer.patch b/nms-patches/net/minecraft/server/level/EntityPlayer.patch index 7632da5be..b58e96df9 100644 --- a/nms-patches/net/minecraft/server/level/EntityPlayer.patch +++ b/nms-patches/net/minecraft/server/level/EntityPlayer.patch @@ -568,7 +568,8 @@ + // CraftBukkit start - moved bed result checks from below into separate method + private Either getBedResult(BlockPosition blockposition, EnumDirection enumdirection) { if (!this.isSleeping() && this.isAlive()) { - if (!this.level.getDimensionManager().isNatural()) { +- if (!this.level.getDimensionManager().isNatural()) { ++ if (!this.level.getDimensionManager().isNatural() || !this.level.getDimensionManager().isBedWorks()) { return Either.left(EntityHuman.EnumBedResult.NOT_POSSIBLE_HERE); @@ -877,7 +1148,36 @@ } diff --git a/nms-patches/net/minecraft/world/level/block/BlockBed.patch b/nms-patches/net/minecraft/world/level/block/BlockBed.patch index 459e77713..a4a50590a 100644 --- a/nms-patches/net/minecraft/world/level/block/BlockBed.patch +++ b/nms-patches/net/minecraft/world/level/block/BlockBed.patch @@ -20,7 +20,7 @@ + // CraftBukkit end entityhuman.sleep(blockposition).ifLeft((entityhuman_enumbedresult) -> { + // CraftBukkit start - handling bed explosion from below here -+ if (entityhuman_enumbedresult == EntityHuman.EnumBedResult.NOT_POSSIBLE_HERE) { ++ if (!world.getDimensionManager().isBedWorks()) { + this.explodeBed(finaliblockdata, world, finalblockposition); + } else + // CraftBukkit end