diff --git a/src/main/java/com/cryptomorin/xseries/NMSExtras.java b/src/main/java/com/cryptomorin/xseries/NMSExtras.java index 0163d879..08692ab1 100644 --- a/src/main/java/com/cryptomorin/xseries/NMSExtras.java +++ b/src/main/java/com/cryptomorin/xseries/NMSExtras.java @@ -558,7 +558,23 @@ public static void chest(Block chest, boolean open) { Location location = chest.getLocation(); try { Object world = WORLD_HANDLE.invoke(location.getWorld()); - Object position = BLOCK_POSITION.invoke(location.getX(), location.getY(), location.getZ()); + Object position = v(19, + () -> + { + try { + return BLOCK_POSITION.invoke(location.getBlockX(), location.getBlockY(), location.getBlockZ()); + } catch (Throwable e) { + throw new RuntimeException(e); + } + }).orElse( + () -> + { + try { + return BLOCK_POSITION.invoke(location.getX(), location.getY(), location.getZ()); + } catch (Throwable e) { + throw new RuntimeException(e); + } + }); Object block = GET_BLOCK.invoke(GET_BLOCK_TYPE.invoke(world, position)); PLAY_BLOCK_ACTION.invoke(world, position, block, 1, open ? 1 : 0); } catch (Throwable throwable) {