[Scripting,*] CommandHelper / MethodScript

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 .

4 Likes

I used this plugin a long time ago before I got into plugin development. Nice work!

Hi,
Where are you are in the developement , and when will we be able to use this plugin like spigot ?

As I said in the last paragraph, I only just got the alias feature to work this morning (though it was a lot of prerequisites to adding that simple command listener). More functions will work as they are implemented in CH, and events will become functional as they are implemented in CH and Sponge. The biggest hindrance is that the abstraction interfaces were modeled around Bukkit, and while more powerful, the Sponge API has things in way different places than Bukkit, so some features are harder to find, or not added yet.

Requested features will be added sooner, and features contributed to will be added even sooner than that.

Darn looks like this is not compatible with 5.0 apI?