HOOK_BLOCK_TO_PICKUPS


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 callback gets called whenever a block is about to be dug. This includes players digging blocks, entities causing blocks to disappear (TNT, Endermen) and natural causes (water washing away a block). Plugins may override the amount and kinds of pickups this action produces.


Callback function

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

function MyOnBlockToPickups(World, Digger, BlockX, BlockY, BlockZ, BlockType, BlockMeta, Pickups)

Parameters:

NameTypeNotes
WorldcWorldThe world in which the block resides
DiggercEntity descendantThe entity causing the digging. May be a cPlayer, cTNTEntity or even nil (natural causes)
BlockXnumberX-coord of the block
BlockYnumberY-coord of the block
BlockZnumberZ-coord of the block
BlockTypeBLOCKTYPEBlock type of the block
BlockMetaNIBBLETYPEBlock meta of the block
PickupscItemsItems that will be spawned as pickups

If the function returns false or no value, the next callback in the hook chain will be called. If the function returns true, no other callbacks in the chain will be called.

Either way, the server will then spawn pickups specified in the Pickups parameter, so to disable pickups, you need to Clear the object first, then return true.


Code examples

Registering the callback

cPluginManager:AddHook(cPluginManager.HOOK_BLOCK_TO_PICKUPS, MyOnBlockToPickups);

Modify pickups

This example callback function makes tall grass drop diamonds when digged by natural causes (washed away by water).

function OnBlockToPickups(a_World, a_Digger, a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta, a_Pickups)
	if (a_Digger ~= nil) then
		-- Not a natural cause
		return false;
	end
	if (a_BlockType ~= E_BLOCK_TALL_GRASS) then
		-- Not a tall grass being washed away
		return false;
	end

	-- Remove all pickups suggested by Cuberite:
	a_Pickups:Clear();

	-- Drop a diamond:
	a_Pickups:Add(cItem(E_ITEM_DIAMOND));
	return true;
end;
				
Generated on 2017-07-26 13:00:20, Build ID Unknown, Commit approx: e0a44fb3bc250197e30c5023fa53fc5c27a5cdcf