Going through the list of commands, the following should be changed for the 4.0.0 release:
[ ] Alias should have a subcommand, allowing bot ops to set up all alias types using the command. The usage pattern would change to Alias <alias_name> (command <command_name> [<args>...] | disable | reply <text>... | say <text>... | delete), with the current functionality split into the say and delete subcommands. This would also add support for command aliases with arguments. This is a breaking change.
[ ] Cloud should allow searching by name, changing the usage pattern to Cloud (<item_id> [<damage>] | <search_term>...). Adding support for block states might also be worth looking into, although this would first require changes to items.json.
[ ] DeathGames should have an option to let the bot know that you have joined the Death Games. The usage pattern would change to DeathGames ((win | fail) [<attacker>] <target> | join [<person>]), with the <person> argument usable by bot ops to add another player to the Death Games.
[ ] EnableWorld should be repurposed for just enabling the given world without disabling all others, and start could be added as an alias for EnableWorld. An analogous DisableWorld command should be introduced. Requires multi-world support.
[ ] Invite should accept UUID as an alternative to username, changing the usage to Invite <wurstmineberg_id> (<minecraft_name> | <minecraft_uuid>) [<twitter_username>]. Because the unique_id field is renamed to wurstmineberg_id, this is a breaking change.
[ ] Leak syntax could be extended to allow more functionality.
[ ] MinecraftWiki should be removed and replaced with the Wiki command which can take the base URL and article name, or the full article URL. MinecraftWiki and other similar commands can then be set up as aliases using the first form (e.g. Alias MinecraftWiki command Wiki http://minecraft.gamepedia.com/).
[ ] Restart should take an optional world name instead of [minecraft | bot]. With the world name omitted, this would still cause the bot to restart itself. This is a breaking change.
[ ] Stop, like Restart, should take an optional world name instead of [minecraft | bot]. With the world name specified, it would act like DisableWorld. Without it, it would still cause the bot to shut itself down. This is a breaking change.
[ ] Time should take an optional <world> argument, causing it to reply with the current in-game time in that world instead of the real-world time, possibly with a link to the multi-world version of time.wurstmineberg.de. This would close #13.
[ ] Topic should be extended to take an optional channel name and a required subcommand, changing the usage pattern to Topic [<channel>] (set <topic>... | push <topic_part>... | pop [<position>] | lock <special_topic>... | unlock). The lock subcommand (available only for a chatsynced channel) would set the special status topic (the part of the topic where the “currently online” list is usually displayed, and special messages are shown during restarts etc) and lock server access until Topic unlock is executed. With the right command aliases in place, this would close #26. <channel> can be given as all to affect all channels.
[ ] UltraSoftcore should be completely redone according to this guide, and integrated into it. This is a breaking change.
[ ] Update should only update the world corresponding to the current context. The usage pattern would be extended to allow bot-ops to update a different world: Update [release | snapshot [<snapshot_id> | <version>] | <version>] [all-worlds | world <world_name>].
[ ] Whitelist, like Invite, should accept UUID as an alternative to username, changing the usage to Whitelist <wurstmineberg_id> [(<minecraft_name> | <minecraft_uuid>) [<twitter_username>]]. Because the unique_id field is renamed to wurstmineberg_id, this is a breaking change.
Going through the list of commands, the following should be changed for the 4.0.0 release:
Alias
should have a subcommand, allowing bot ops to set up all alias types using the command. The usage pattern would change toAlias <alias_name> (command <command_name> [<args>...] | disable | reply <text>... | say <text>... | delete)
, with the current functionality split into thesay
anddelete
subcommands. This would also add support for command aliases with arguments. This is a breaking change.Cloud
should allow searching by name, changing the usage pattern toCloud (<item_id> [<damage>] | <search_term>...)
. Adding support for block states might also be worth looking into, although this would first require changes to items.json.DeathGames
should have an option to let the bot know that you have joined the Death Games. The usage pattern would change toDeathGames ((win | fail) [<attacker>] <target> | join [<person>])
, with the<person>
argument usable by bot ops to add another player to the Death Games.EnableWorld
should be repurposed for just enabling the given world without disabling all others, andstart
could be added as an alias forEnableWorld
. An analogousDisableWorld
command should be introduced. Requires multi-world support.Invite
should accept UUID as an alternative to username, changing the usage toInvite <wurstmineberg_id> (<minecraft_name> | <minecraft_uuid>) [<twitter_username>]
. Because theunique_id
field is renamed towurstmineberg_id
, this is a breaking change.Leak
syntax could be extended to allow more functionality.MinecraftWiki
should be removed and replaced with theWiki
command which can take the base URL and article name, or the full article URL.MinecraftWiki
and other similar commands can then be set up as aliases using the first form (e.g.Alias MinecraftWiki command Wiki http://minecraft.gamepedia.com/
).Restart
should take an optional world name instead of[minecraft | bot]
. With the world name omitted, this would still cause the bot to restart itself. This is a breaking change.Stop
, likeRestart
, should take an optional world name instead of[minecraft | bot]
. With the world name specified, it would act likeDisableWorld
. Without it, it would still cause the bot to shut itself down. This is a breaking change.Time
should take an optional<world>
argument, causing it to reply with the current in-game time in that world instead of the real-world time, possibly with a link to the multi-world version of time.wurstmineberg.de. This would close #13.Topic
should be extended to take an optional channel name and a required subcommand, changing the usage pattern toTopic [<channel>] (set <topic>... | push <topic_part>... | pop [<position>] | lock <special_topic>... | unlock)
. Thelock
subcommand (available only for a chatsynced channel) would set the special status topic (the part of the topic where the “currently online” list is usually displayed, and special messages are shown during restarts etc) and lock server access untilTopic unlock
is executed. With the right command aliases in place, this would close #26.<channel>
can be given asall
to affect all channels.UltraSoftcore
should be completely redone according to this guide, and integrated into it. This is a breaking change.Update
should only update the world corresponding to the current context. The usage pattern would be extended to allow bot-ops to update a different world:Update [release | snapshot [<snapshot_id> | <version>] | <version>] [all-worlds | world <world_name>]
.Whitelist
, likeInvite
, should accept UUID as an alternative to username, changing the usage toWhitelist <wurstmineberg_id> [(<minecraft_name> | <minecraft_uuid>) [<twitter_username>]]
. Because theunique_id
field is renamed towurstmineberg_id
, this is a breaking change.