diff --git a/Minecraft.World/LivingEntity.cpp b/Minecraft.World/LivingEntity.cpp index 192823f1f..2a5982b8a 100644 --- a/Minecraft.World/LivingEntity.cpp +++ b/Minecraft.World/LivingEntity.cpp @@ -998,10 +998,15 @@ bool LivingEntity::onLadder() bool isOpen = (data & 0x4) != 0; if (isOpen) { + int aboveTile = level->getTile(xt, yt + 1, zt); int belowTile = level->getTile(xt, yt - 1, zt); - if (belowTile == Tile::ladder_Id) + switch (aboveTile) { - return true; + case Tile::ladder_Id: + case Tile::vine_Id: + return false; // Opened trapdoor should only be climbable when it's only at the top. + default: + return belowTile == Tile::ladder_Id; } } break;