HOOK_PLAYER_PLACING_BLOCK


Index:
Articles
Classes
Hooks

Quick navigation:
BLOCK_SPREAD
BLOCK_TO_PICKUPS
BREWING_COMPLETED
BREWING_COMPLETING
CHAT
CHUNK_AVAILABLE
CHUNK_GENERATED
CHUNK_GENERATING
CHUNK_UNLOADED
CHUNK_UNLOADING
COLLECTING_PICKUP
CRAFTING_NO_RECIPE
DISCONNECT
ENTITY_ADD_EFFECT
ENTITY_CHANGED_WORLD
ENTITY_CHANGING_WORLD
ENTITY_TELEPORT
EXECUTE_COMMAND
EXPLODED
EXPLODING
HANDSHAKE
HOPPER_PULLING_ITEM
HOPPER_PUSHING_ITEM
KILLED
KILLING
LOGIN
PLAYER_ANIMATION
PLAYER_BREAKING_BLOCK
PLAYER_BROKEN_BLOCK
PLAYER_DESTROYED
PLAYER_EATING
PLAYER_FISHED
PLAYER_FISHING
PLAYER_FOOD_LEVEL_CHANGE
PLAYER_JOINED
PLAYER_LEFT_CLICK
PLAYER_MOVING
PLAYER_PLACED_BLOCK
PLAYER_PLACING_BLOCK
PLAYER_RIGHT_CLICK
PLAYER_RIGHT_CLICKING_ENTITY
PLAYER_SHOOTING
PLAYER_SPAWNED
PLAYER_TOSSING_ITEM
PLAYER_USED_BLOCK
PLAYER_USED_ITEM
PLAYER_USING_BLOCK
PLAYER_USING_ITEM
PLUGINS_LOADED
PLUGIN_MESSAGE
POST_CRAFTING
PRE_CRAFTING
PROJECTILE_HIT_BLOCK
PROJECTILE_HIT_ENTITY
SERVER_PING
SPAWNED_ENTITY
SPAWNED_MONSTER
SPAWNING_ENTITY
SPAWNING_MONSTER
TAKE_DAMAGE
TICK
UPDATED_SIGN
UPDATING_SIGN
WEATHER_CHANGED
WEATHER_CHANGING
WORLD_STARTED
WORLD_TICK

This hook is called just before a player places a block in the world. The block is not yet placed, plugins may choose to override the default behavior or refuse the placement at all.

Note that the client already expects that the block has been placed. For that reason, if a plugin refuses the placement, Cuberite sends the old block at the provided coords to the client.

Use the cPlayer:GetWorld() function to get the world to which the block belongs.

See also the HOOK_PLAYER_PLACED_BLOCK hook for a similar hook called after the placement.

If the client action results in multiple blocks being placed (such as a bed or a door), each separate block is reported through this hook and only if all of them succeed, all the blocks are placed. If any one of the calls are refused by the plugin, all the blocks are refused and reverted on the client.


Callback function

The default name for the callback function is OnPlayerPlacingBlock. It has the following signature:

function OnPlayerPlacingBlock(Player, BlockX, BlockY, BlockZ, BlockType, BlockMeta)

Parameters:

NameTypeNotes
PlayercPlayerThe player who is placing the block
BlockXnumberX-coord of the block
BlockYnumberY-coord of the block
BlockZnumberZ-coord of the block
BlockTypeBLOCKTYPEThe block type of the block
BlockMetaNIBBLETYPEThe block meta of the block

If this function returns false or no value, Cuberite calls other plugins with the same event and finally places the block and removes the corresponding item from player's inventory. If this function returns true, no other plugin is called for this event, Cuberite sends the old block at the specified coords to the client and drops the packet.


Code examples

Registering the callback

cPluginManager:AddHook(cPluginManager.HOOK_PLAYER_PLACING_BLOCK, MyOnPlayerPlacingBlock);
Generated on 2017-03-29 13:00:06, Build ID Unknown, Commit approx: 5dc0189a160a9ab4d6c9c2865fc8ff5d7ca32d69