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 functionThe default name for the callback function is OnBlockToPickups. It has the following signature: function OnBlockToPickups(World, Digger, BlockX, BlockY, BlockZ, BlockType, BlockMeta, Pickups) Parameters:
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 examplesRegistering the callbackcPluginManager:AddHook(cPluginManager.HOOK_BLOCK_TO_PICKUPS, MyOnBlockToPickups); Modify pickupsThis 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; |