From 5be41fb80fa84c15359d271c38b52a1e815ea9f9 Mon Sep 17 00:00:00 2001 From: Doc Date: Fri, 27 Aug 2021 19:17:43 +1000 Subject: [PATCH] SPIGOT-6720: Fix bed explosion checks --- nms-patches/net/minecraft/server/level/EntityPlayer.patch | 3 ++- nms-patches/net/minecraft/world/level/block/BlockBed.patch | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) 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