diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index f9a48003e..95d8f23e5 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -887,6 +887,15 @@ void cClientHandle::HandlePlaceBlock(int a_BlockX, int a_BlockY, int a_BlockZ, c ) { // Coordinates at CLICKED block, don't move them anywhere + if((ClickedBlockMeta & 0x08) && (a_BlockFace == BLOCK_FACE_TOP)) + { + ++a_BlockY; + } + else if (!(ClickedBlockMeta & 0x08) && (a_BlockFace == BLOCK_FACE_BOTTOM)) + { + --a_BlockY; + } + World->GetBlockTypeMeta(a_BlockX, a_BlockY, a_BlockZ, ClickedBlock, ClickedBlockMeta); } else { diff --git a/src/Protocol/Protocol17x.cpp b/src/Protocol/Protocol17x.cpp index 746e1c127..5f5864f2a 100644 --- a/src/Protocol/Protocol17x.cpp +++ b/src/Protocol/Protocol17x.cpp @@ -1152,6 +1152,9 @@ void cProtocol172::HandlePacketBlockPlace(UInt32 a_RemainingBytes) HANDLE_READ(ReadByte, Byte, BlockY); HANDLE_READ(ReadBEInt, int, BlockZ); HANDLE_READ(ReadByte, Byte, Face); + cItem Item; + ReadItem(Item); + HANDLE_READ(ReadByte, Byte, CursorX); HANDLE_READ(ReadByte, Byte, CursorY); HANDLE_READ(ReadByte, Byte, CursorZ);