commands.execAsync
From ComputerCraft Wiki
Revision as of 23:34, 1 December 2015 by Bomb Bloke (Talk | contribs) (Clarification on excessive command handling.)
Function commands.execAsync | |
Available only to Command Computers, orders the specified MineCraft command to be executed, but doesn't yield. A "task_complete" event will be queued once the command has actually been executed. You can use the taskID returned by this function to identify the "task_complete" event, should you wish to pull it. Compare commands.exec, which automatically yields until this event is thrown, then catches it and returns the results.
This function allows huge amounts of commands to be requested in a very short time - much faster than Minecraft can actually perform them. Generating an excessive queue will cause your script to error out. Furthermore, while commands are resolving ComputerCraft's event system is negatively affected - events (of all types) may randomly fail to make it into the event queue. The more commands in the command queue the less reliable the event queue becomes. (See os.pullEvent() for information concerning events.) | |
Syntax | commands.execAsync(string command) |
Returns | number taskID |
Part of | ComputerCraft |
API | commands |
Examples
Example | |
Says 'Hello' to the player, closest to the Command Computer. | |
Code |
commands.execAsync( "say @p Hello" ) |
Example | |
Checks if there are any players around the Command Computer in 2 block radius. | |
Code |
local radius = 2 local taskID = commands.execAsync( "testfor @a[r=" .. radius .. "]") local arePlayersAround repeat local event, id, success, executed, error = os.pullEvent( "task_complete" ) arePlayersAround = success and executed until id == taskID if arePlayersAround then print( "There is one or more players around me." ) else print( "There are no players around me." ) end |
Commands API Functions |
---|
commands.exec - commands.execAsync - commands.list - commands.getBlockPosition - commands.getBlockInfo - commands.getBlockInfos |