Current progress is here: https://wiki.citizensnpcs.co/Behaviors
Below is the original post:
Citizens has long flirted with the idea of programming languages - initially in Citizens1 with sub-JARs, then in Adventures with the Adventures rule language, and finally in Citizens2 with the Javascript scripting API and subplugins.
More recently, users frequently use commands as a pseudo-scripting language, probably because of command blocks, datapacks etc.
Denizen now exists as a full-fledged scripting language for Minecraft, and should be a first class citizen (heh) for the Citizens project.
However, I feel there is a useful intermediate between scripting and basic command lists that server owners want.
Enter this idea: the 'command queue' (name TBD)
Essentially, allow users to define in YAML lists with the following features:
- Run command
- if/else (with limited maths capabilities)
- Run external 'command' (e.g. Denizen, which should be a first class citizen)
- Loops TBD but probably not essential in the spirit of keeping this simple
Entry points from commands and a limited set of events
This will empower slightly more advanced use cases for citizens without taking on significant development burden.
NOTE: this is NOT a programming language, and features should NOT be added to support programming-language-like capabilities.
Tools like denizen and external scripting languages should be preferred instead.