This plugin allows you to create plugins with almost no boilerplate or tools, and very little programming knowledge.
Here is a hello-world example:
@Cmd("hello") def hello(sender) {sender.sendMessage("Hello,$sender.name")}
Making this work is just too easy.
1) Download EzPluginAll and place in your plugins folder.
2) Start Minecraft Server
3) Place the above text in a file in the plugins/EzPlugin directory with a filename ending in ".groovy"
4) In a client type "/Hello" and get an instant response
This will also work in the console, but due to the fact that I can't find an API for dynamically registering a command it will display an error message as well as your results (it will still work). If you don't like the error message, use "ezp hello" for your command.
As another example, here is an entire plugin that turns all of the players dogs into hellhounds for a time:
@Cmd(value="hellhound", description="Turn your nearby wolves into hellhounds!", permission="hounds.of,hell")
def hellHound(Player sender) {
myDogs(sender) {
it.setNoDamageTicks(100)
it.setFireTicks(100)
}
}
def myDogs(Player player, int range=8, Closure task) {
def entities = player.getNearbyEntities(range, range, range);
entities.each {
if(it instanceof Wolf && player.equals(it.getOwner())) {
task(it);
}
}
}
If your player types "hellhound", their dogs will light on fire and become invincible for a few seconds assuming they have the "hounds.of.hell" permission set, otherwise they will just get an error.
Also if you go and edit that file later (say with vi or notepad), the second you save it it will be reloaded and re-installed without missing a beat.
Think about that last statement. That means that if you mounted your /EzPlugin folder on a dropbox drive you could develop remotely just as easily as locally (with the exception of seeing logs, which is actually fixable... if anyone is interested, say so!)
See https://github.com/BillKress/EzPlugin/wiki for more documentation--source is available there as well.
Currently Implemented:
- Automatic loading/unloading/reloading whenever a file is placed, edited, moved or deleted.
- Automatically imports everything I could think of.
- Ability to do ANYTHING you can with a java plugin.
- No tools required outside a text editor, although you can still use eclipse and get full completion, coloring, etc.
- Persistence through annotations (Currently it works but does not save until the plugin exits--overall persistence needs work)
- Annotations for events and commands that are automatically activated when the plugin is scanned.
- Built-in help (if you type "ezp help" with the above plugin loaded you would see something like:
"hellhound: Turn your nearby wolves into hellhounds!"
- More... Be sure to see the wiki!