- Tested Minecraft Versions:
- Source Code:
Only execute a command if a condition is met.
ConditionalCommands is intended to be used when plugins have automatic commands that should only be executed if certain conditions are met. It is able to execute multiple commands, with customisable delays on each command.
/cc <player> unless <condition> do <command>
/cc <player> if <condition> do <command>
Grammar of conditions:
<constant>::=floating point number or integer
As shown above, only numbers can be compared, and placeholders can only consist of numbers. In case of multiple comparison operators in a group, i.e. 3>=<2, only the first operator will be used. Comparisons cannot include spaces. Inequality may be checked with !(value=value).
/cc konsolas unless -ping->200 do kick konsolas
/cc konsolas if (-ping-<300&-ping->100)&-tps->15.0 do msg konsolas Your ping is between 300 and 100, and the TPS is greater than 15.
Placeholders are delimited by '-'. Since they're applied with a replace, errors will probably be detected during parsing if they are typed incorrectly.
Multi command / delayed commands
- ping - The latency of the tested player.
- tps - Server TPS average over the last 2 seconds
- time_online - Player's online time in milliseconds
- uptime - Server uptime in ticks
- player_count - Number of players on the server
- perm:<permission> - 1.0 if the player has the permission, 0.0 otherwise. e.g. -perm:essentials.home-
- aacvl:<check> - AAC violation level of the given check (internal name). e.g. -aacvl:speed-
- chance:<percentage>% - Will be 1.0 percentage% of the time. e.g. -chance:34.5%-
In the 'do' clause of the statement, multiple commands can be executed at once, and selected commands can be delayed if desired. The command delimiter is /<delay>/, where the integer between / and / denotes the delay before the command should be executed in ticks. Here are some examples:
/cc konsolas if -aacvl:heuristics->0 do /1200/ ban konsolas 1 minute delayed ban for killaura
/cc konsolas if -perm:some.permission-=1 do /0/ broadcast konsolas has some.permission! /0/ broadcast second broadcast! /20/ broadcast 1 second later!
By default, ConditionalCommands will suppress details behind parsing errors, etc. to be more user friendly. It will also swallow exceptions generated by executing a command. This behaviour can be changed by changing the dev option in plugins/ConditionalCommands/config.yml to true.
Execute commands only if certain conditions are met.
- Fewer verbose messages, -chance:x%- placeholder Jul 8, 2017
- Coloured messages to players only: PR from JamieSinn May 20, 2017
- Multi commands, delayed commands, two new placeholders May 20, 2017