Hi there, I’m one of the main current Minecraft feature developers of CommandHelper, a plugin for Bukkit that brings you a new scripting language, MethodScript. I can only play modded Minecraft, so I always wanted to do a Forge port, but now with Sponge it’s a much easier task.
The primary feature for which it was named when sk89q originally created it was the creation of aliases.
/shortcommand = /thisisalongcommanditsurewouldbeniceificouldtypeashorteroneinstead
/gmc = /gamemode 1
/msg $player $ = /tell $player $
At some point LadyCailin, an admin of the Reddit servers, joined the project and added the ability to call functions with these aliases that did not depend on existing commands. Eventually this turned into an entire scripting language.
# Spawns an entity your location, or several if you give a second argument with a number
/spawnent $type [$num] = spawn_entity($type, if($num == '', 1, $num), ploc())
/kick $name [$] = >>>
if (has_permission("mycustompermissions.kick")) {
kick($name, $)
} else {
kick(player(), "You don't have permission, stop trying to be mean!")
}
<<<
It can also listen for an run scripts in response to nearly all the major events. If there is an special feature you want such as integration with a specific plugin, it can be added as an external library with the extension system. Extensions are like plugins for the plugin! Currently these exist for TagAPI, GriefPrevention, PEX, PlotMe, Citizens, WorldEdit, WorldGuard, and Vault, and there are others for IRC connection and Groovy scripting (a scripting language inside a scripting language is a beautiful thing). You can also (un)register full featured commands (with built-in permissions, help, and tab-completion) and repeating tasks. And any data you want to persist can be stored in whatever form you want. JSON, YAML, ini, SQL and JavaSerialization are supported, and HOCON will be as well when I or someone else gets around to it. It’s basically a plugin that can replace most other plugins. Those who pick up on the language usually go from 30+ plugins down to less than 10, with all those replaced features now operating in their own customized way.
I know a user who used CommandHelper to write a command that toggles the light in his bedroom on and off when he pushes a button on a CommandBlock, that’s how OP this plugin is.
I’ve just gotten aliases themselves to work. Most of the Minecraft functions and all of the events still need to be ported to Sponge, and I would love any help anyone would be interested in offering. Huge thanks to zml2008, who has been a big help already. All of the Sponge work is being done at GitHub - jb-aero/commandhelper at sponge .