Command requirement is used to make the custom machine execute commands while crafting.
This requirement doesn't have a mode and will not stop the processing of a recipe even if the command fail.
The command can be executed at the start, at the end or every tick of the crafting process (see the phase property below).
The requirement type of command requirement is : "custommachinery:command".
Properties
The command requirement has 3 mandatory properties and 4 optional properties.
Mandatory properties
"type": "custommachinery:command"//Mandatory to define a command requirement.
Command
Name : command
Description :
A string which represent the command to run, it must have the same syntax as when you run command in the chat (so begin with "/").
Example :
"command": "/time set 0"
The machine's world time will be set to 0.
Phase
Name : phase
Description :
A string that define when the command will be executed. Available phases are:
starting : The command will be executed at the start of the crafting process after all input requirements have been processed.
crafting_tickable : The command will be executed each tick of the crafting process.
ending : The command will be executed at the end of the crafting process after all output requirements have been processed.
Example :
"phase": "starting"
The command will be executed when the process start.
Optional properties
Permission level
Name : permissionlevel
Description :
An integer that define the permission level the machine can run the command.
In vanilla a player have a permission level of 1 and an op player have 4, see here for more infos.
Default : 2
Should be good enough to execute most commands.
Example :
"permissionlevel": 4
The machine will run the command as an op.
Log
Description :
A boolean (true/false) that define if the machine should log the command when executed, if true a system message in the chat, console and logs will be shown.
It can be used for debug.
Default : false
No logs, the machine will print a message in the logs only when it fail to execute a command but never in the chat.
Example :
"log": "true"
Will print the command result in the chat/console/logs when executed.
Chance
Name : chance
Description :
A double between 0.0 and 1.0 that define the chance of the command to be run.
Default : 1
The command will always be run.
Example :
"chance": 0.7
The command will have 70% chance to be run.
Delay
Name : delay
Description :
A double value, between 0.0 and 1.0 that represents at which time of the recipe the requirement action must be executed.
A delay of 0.5 represent half of the recipe, 0.25 a quarter etc...
Default : 0
The requirement action will be executed on start if mode is input or on end if mode is output.
Example :
"delay": 0.33
The requirement action will be executed when the recipe progress time is at (approximatively) a third of the recipe total duration.
Note :
If delay is specified the requirement will be only executed at the specified delay, independently of the mode property.
This property have no effect if the action is set to check as this action is executed each tick of the recipe.
Example
A Command Requirement that will spawn a Zombie when the recipe finish with 50% chance: