diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-03-08 12:29:45 +0100 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-03-08 12:29:45 +0100 |
commit | 527f3585108111d915c2982b6be6a6adbb5ff4d9 (patch) | |
tree | 63b622d8d4840bed7c08d9afc279733d8b7e1c56 /src/ClientHandle.cpp | |
parent | Change TNT Fuse to ticks (diff) | |
parent | Merge pull request #764 from xdot/master (diff) | |
download | cuberite-527f3585108111d915c2982b6be6a6adbb5ff4d9.tar cuberite-527f3585108111d915c2982b6be6a6adbb5ff4d9.tar.gz cuberite-527f3585108111d915c2982b6be6a6adbb5ff4d9.tar.bz2 cuberite-527f3585108111d915c2982b6be6a6adbb5ff4d9.tar.lz cuberite-527f3585108111d915c2982b6be6a6adbb5ff4d9.tar.xz cuberite-527f3585108111d915c2982b6be6a6adbb5ff4d9.tar.zst cuberite-527f3585108111d915c2982b6be6a6adbb5ff4d9.zip |
Diffstat (limited to '')
-rw-r--r-- | src/ClientHandle.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index 6982a6227..870568cdf 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -920,14 +920,22 @@ void cClientHandle::HandleRightClick(int a_BlockX, int a_BlockY, int a_BlockZ, e a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, ItemToFullString(a_HeldItem).c_str() ); + cWorld * World = m_Player->GetWorld(); + cPluginManager * PlgMgr = cRoot::Get()->GetPluginManager(); if (PlgMgr->CallHookPlayerRightClick(*m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ)) { // A plugin doesn't agree with the action, replace the block on the client and quit: + cChunkInterface ChunkInterface(World->GetChunkMap()); + BLOCKTYPE BlockType = World->GetBlock(a_BlockX, a_BlockY, a_BlockZ); + cBlockHandler * BlockHandler = cBlockInfo::GetHandler(BlockType); + BlockHandler->OnCancelRightClick(ChunkInterface, *World, m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); + if (a_BlockFace > -1) { AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); - m_Player->GetWorld()->SendBlockTo(a_BlockX, a_BlockY, a_BlockZ, m_Player); + World->SendBlockTo(a_BlockX, a_BlockY, a_BlockZ, m_Player); + World->SendBlockTo(a_BlockX, a_BlockY + 1, a_BlockZ, m_Player); //2 block high things } return; } @@ -953,12 +961,10 @@ void cClientHandle::HandleRightClick(int a_BlockX, int a_BlockY, int a_BlockZ, e if (a_BlockFace > -1) { AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); - m_Player->GetWorld()->SendBlockTo(a_BlockX, a_BlockY, a_BlockZ, m_Player); + World->SendBlockTo(a_BlockX, a_BlockY, a_BlockZ, m_Player); } return; } - - cWorld * World = m_Player->GetWorld(); BLOCKTYPE BlockType; NIBBLETYPE BlockMeta; |