summaryrefslogtreecommitdiffstats
path: root/src/ClientHandle.cpp
diff options
context:
space:
mode:
authorSafwat Halaby <SafwatHalaby@users.noreply.github.com>2015-12-13 13:43:53 +0100
committerSafwat Halaby <SafwatHalaby@users.noreply.github.com>2015-12-13 13:43:53 +0100
commit417a646d7d32c05d837451de9ae64cbcdc53a782 (patch)
treecf8f3e6ed33c7dc5e98baa6a530683749ae40e51 /src/ClientHandle.cpp
parentMerge pull request #2737 from Gargaj/snowgolem (diff)
parentallow use failures to propagate from the entity/block to the player (diff)
downloadcuberite-417a646d7d32c05d837451de9ae64cbcdc53a782.tar
cuberite-417a646d7d32c05d837451de9ae64cbcdc53a782.tar.gz
cuberite-417a646d7d32c05d837451de9ae64cbcdc53a782.tar.bz2
cuberite-417a646d7d32c05d837451de9ae64cbcdc53a782.tar.lz
cuberite-417a646d7d32c05d837451de9ae64cbcdc53a782.tar.xz
cuberite-417a646d7d32c05d837451de9ae64cbcdc53a782.tar.zst
cuberite-417a646d7d32c05d837451de9ae64cbcdc53a782.zip
Diffstat (limited to 'src/ClientHandle.cpp')
-rw-r--r--src/ClientHandle.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp
index 28fc6756b..9062d8cab 100644
--- a/src/ClientHandle.cpp
+++ b/src/ClientHandle.cpp
@@ -1383,15 +1383,16 @@ void cClientHandle::HandleRightClick(int a_BlockX, int a_BlockY, int a_BlockZ, e
if (BlockHandler->IsUseable() && !m_Player->IsCrouched())
{
- if (PlgMgr->CallHookPlayerUsingBlock(*m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, BlockType, BlockMeta))
+ if (!PlgMgr->CallHookPlayerUsingBlock(*m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, BlockType, BlockMeta))
{
- // A plugin doesn't agree with using the block, abort
- return;
+ cChunkInterface ChunkInterface(World->GetChunkMap());
+ if (BlockHandler->OnUse(ChunkInterface, *World, m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ))
+ {
+ // block use was successful, we're done
+ PlgMgr->CallHookPlayerUsedBlock(*m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, BlockType, BlockMeta);
+ return;
+ }
}
- cChunkInterface ChunkInterface(World->GetChunkMap());
- BlockHandler->OnUse(ChunkInterface, *World, m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ);
- PlgMgr->CallHookPlayerUsedBlock(*m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, BlockType, BlockMeta);
- return;
}
}