one_command
Version:
No longer maintained: please use www.npmjs.com/package/smelt-cli
124 lines (92 loc) • 3.68 kB
Markdown
* [Syntax](./Syntax.md)
* [BangCommands](./BangCommands.md)
* [Plugins](./Plugins.md)
* [Configuration](./Configuration.md)
Bang Commands
=============
"Bang commands" (called such because they start with a bang "!") are used in 'one-command'
to implement powerful custom commands. Some are built into *one-command*, others can be added using
the plugins feature.
Built in commands
=================
Loops and events
----------------
### Explanation
Commands for *loops* (20-ticks-per-second continous commands) and *events* (run-once commands) are built into
*one-command*. These bang commands require the `bang-commands-setup.mcc` module to be installed into your map.
You will be prompted to do this by *one-command* when using them.
The custom commands use Minecraft's scoreboard tag feature to work.
The setup module created an entity named "OC-SYSTEM", and this entity runs the loops and events.
For example; if there is a loop named 'GameRunning', the OC-SYSTEM entity will be tagged 'loop_GameRunning'
while the loop is active. For an event named 'StartGame' to run, OC-SYSTEM will be tagged 'event_StartGame'.
----
### The `!loop` command
Usage: `!loop <loopName>`
This command is used define a 20-ticks-per-second continous looping chain of commands.
The commands following the loop command will be preceded by a conditional repeating command block that
will only execute if `!start_loop` has been called in the previous tick.
```
!loop GameRunning
{"type":"chain", "conditional":false}
/scoreboard players tag @a remove HasSpeed
/scoreboard players tag @a add HasSpeed {ActiveEffects:[{Id:1b}]}
/effect @a[tag=!HasSpeed] minecraft:speed 1 3 true
```
----
### The `!start_loop` command
Usage: `!start_loop <loopName>`
This command is used to start a loop (defined using `!loop`) in the next tick.
When started, the loop will continue until `!stop_loop` is called.
```
# TURN ON PAINT
{"type":"impulse", "auto":false}
!start_loop Paint
{"type":"chain", "auto":true}
/say TURNED ON PAINT
```
----
### The `!stop_loop` command
Usage: `!stop_loop <loopName>`
This command is used to stop a loop (defined using `!loop`) in the next tick.
```
# TURN ON PAINT
{"type":"impulse", "auto":false}
!stop_loop Paint
{"type":"chain", "auto":true}
/say TURNED OFF PAINT
```
----
### The `!event` command
Usage: `!event <eventName>`
This command is used define a run-once chain of commands.
The commands following the event command will be preceded by a conditional repeating command block that
will only execute if `!start_event` has been called in the previous tick.
```
# CYCLE POWERUPS
!event CyclePowerups
{"type":"chain", "conditional":false}
/scoreboard players set @e[name=SYSTEM] countdown 600
/execute @r[type=ArmorStand,tag=randomPowerUp] ~ ~ ~ blockdata ~ ~ ~ {auto:1b}
/execute @e[type=ArmorStand,tag=randomPowerUp] ~ ~ ~ blockdata ~ ~ ~ {auto:0b}
```
----
### The `!start_event` command
Usage: `!start_event <eventName>`
This command is used to start an event (defined using `!event`) in the next tick.
```
# TURN ON POWERUPS
{"type":"impulse", "auto":false}
!start_event CyclePowerups
{"type":"chain", "auto":true}
!start_loop Powerups
/say TURNED ON PAINT
```
---
Manage scoreboard objectives
----------------------------
### The `!reset_objective` command
Usage: `!reset_objective <objective> <criteria>`
This command is used to destroy and re-create a scoreboard objective in one command. Useful for setup chains.
```
!reset_objective lobbyStatus dummy LOBBY STATUS
```