Skip to main content

JSON Schema

If you prefer to use the JSON files directly instead of configuring tasks through the GUI, you can edit/create tasks following this JSON schema

FieldDescriptionType
nameName of the task. Should only contain alphanumerical characters or underscoresstring
commandsList of commands to executeCommands[]
intervalTime between each command executionInterval
timesList of fixed times to execute the task onTime[]
randomDefines a value to calculate the execution chance. 1 is 100%, 0.5 is 50%, 0 is 0% and so onnumber
daysList of days on which the task can be executedMONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
executionLimitMaximum amount of executions. Set to -1 to disable featurenumber
timesExecutedAmount of times the task has been executed. Do not update manuallynumber
lastExecutedCommandIndexIndex of the last executed command. This is used in case the execution mode is set to INTERVAL. Do not update manuallynumber
lastExecutedDate of the latest task execution. Do not update manuallyDate
commandExecutionModeExecution mode for the commandsExecution Mode
commandExecutionIntervalDefines time between command executions when using INTERVAL execution modeInterval
activeDefines if the task is active or notboolean
resetExecutionsAfterRestartDefines if the value executionLimit needs to be reset when plugin restartsboolean
conditionConfiguration for the Conditions EngineCondition
eventConfiguration for the Events EngineEvent[]

Command

FieldDescriptionType
commandCommand to execute. Do not include / in front of the commandstring
genderGender of the commandGender
intervalDefined the iteration interval between each command when the execution iterates over all usersInterval

Interval

FieldDescriptionType
daysAmount of daysnumber
hoursAmount of hoursnumber
minutesAmount of minutesnumber
secondsAmount of secondsnumber

Time

FieldDescriptionType
time1Value of the fixed time or start of range if time2 is filledstring in HH:mm:ss format
time2Value of the end time for a rangestring in HH:mm:ss format
isMinecraftTimeDefines if the filled in time is Minecraft time or normal timeboolean

Condition

More information about all these settings can be found here.

As you can see, the condition object has a recursive field called conditions. This is because conditions can be nested multiple times to handle complex use-cases.

FieldDescriptionType
conditionTypeType of the conditionSIMPLE, NOT, AND, OR
simpleConditionA condition configuration in its most simple form. Is only taken into account if conditionType is SIMPLE or NOTSimpleCondition
conditionsList of conditions. Is only taken into account if conditionType is AND or ORCondition[]

Simple condition

FieldDescriptionType
conditionGroupName of the extension this condition belongs tostring
ruleSpecific condition rule contained in the selected conditionGroupstring
conditionParamFieldsExtra values required by the selected ruleConditionParamterField[]

Condition parameter field

FieldDescriptionType
nameName of the parameterstring
valueGiven value for the configured parameterany

Event

Documentation about the Events Engine can be found here

FieldDescriptionType
activeDefines if specific event is enabledboolean
conditionGroupName of the extension this event belongs tostring
eventSpecific event name contained in the selected conditionGroupstring
conditionConfigured condition for this event to execute. This is not the same as normal conditionsEventCondition

Event condition

FieldDescriptionType
conditionTypeType of the conditionSIMPLE, NOT, AND, OR
simpleConditionA condition configuration in its most simple form. Is only taken into account if conditionType is SIMPLE or NOTEventSimpleCondition
conditionsList of conditions. Is only taken into account if conditionType is AND or ORCondition[]

Event simple condition

FieldDescriptionType
fieldNameName of the parameterstring
valueGiven value for the configured parameterany
compareCompare value between event value and passed valueEQUAL, GREATER_THAN, LESS_THAN, GREATER_OR_EQUAL_THAN, LESS_OR_EQUAL_THEN

Example

Complete example
{
"name": "alert_job_levelup",
"commands": [
{
"command": "say test",
"gender": "CONSOLE"
}
],
"interval": {
"days": 1,
"hours": 0,
"minutes": 0,
"seconds": 5
},
"times": [
{
"time1": "14:00:00",
"time2": "14:00:00",
"isMinecraftTime": false
}
],
"random": 1.0,
"days": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
],
"executionLimit": -1,
"timesExecuted": 7,
"lastExecutedCommandIndex": 0,
"lastExecuted": "Feb 8, 2023, 9:19:51 PM",
"commandExecutionMode": "INTERVAL",
"commandExecutionInterval": {
"days": 0,
"hours": 0,
"minutes": 0,
"seconds": 1
},
"active": true,
"resetExecutionsAfterRestart": false,
"condition": {
"conditionType": "SIMPLE",
"conditions": [],
"simpleCondition": {
"conditionGroup": "JOBSREBORN",
"rule": "HAS_SPECIFIC_JOB",
"conditionParamFields": [
{
"name": "required_job",
"value": ""
},
{
"name": "LEVEL",
"value": 0
}
]
}
},
"events": [
{
"active": true,
"conditionGroup": "JOBSREBORN",
"event": "LEVEL_UP",
"condition": {
"conditionType": "SIMPLE",
"conditions": [],
"simpleCondition": {
"fieldName": "LEVEL",
"value": 12.0,
"compare": "EQUAL"
}
}
}
]
}