Write plugins in JRuby!
Rubybukkit is a custom plugin loader that enables you to write Bukkit plugins as short Ruby/JRuby scripts.
- Loads Bukkit plugins written in Ruby/JRuby
- Download the plugin from the Files tab and drop it into the plugins folder
- Create the folder plugins/RubyBukkit (or let the plugin create it on server start); this folder will contain the JRuby runtime and all your Ruby plugins
- Download the JRuby runtime version 1.6.x from http://jruby.org/download (get JRuby 1.6.x Binary as tar.gz or zip)
- Extract the file jruby.jar in the lib folder from that archive and drop it into plugins/RubyBukkit
The source code is available in the Github repository: https://github.com/Zeerix/RubyBukkit
I will accept Pull Requests if I have the time and I find them useful.
The plugin will create a default configuration file on startup as plugins/RubyBukkit/config.yml.
1 2 3 4 5 6
settings: plugins-path: plugins/RubyBukkit debug: true runtime: ruby-version: '1.8' jruby-path: plugins/RubyBukkit/jruby.jar
- the folder which this plugins looks for Ruby plugins in. All files with extension .rb are loaded.
- enables/disabled debug output about plugin loading
- JRuby version compatibility mode: '1.8' or '1.9'
- location of the jruby runtime
Here is a list of some example plugins. There is also an explanation on How to Write a Ruby Plugin in the forum.
- [GEN/INFO] OnlinePlayers - Displays list of online players on login and by a command.
- [WGEN] RubyMoon - Ruby version of the custom map generator BukkitFullOfMoon by Dinnerbone.
- [ADMN] GarbageCollect - Registers a command that forces a garbage collection cycle.
- [INFO] Uptime - Displays time since server start on /uptime.
- [MISC/MECH] CustomRecipes - Adds some custom recipes for the crafting grid. Can easily be changed to add new recipes.
If you like RubyBukkit, you can donate some Bitcoins to my address.
One-time addresses and other forms of donation on request.
Updated to CraftBukkit 1.1-R6:
- Removed deprecated methods
- Added new methods in 1.1-R5 and 1.1-R6
- Changed registerEvent to only accept event classes, since the old event system (and Event.Type) was removed