I have extended my client with a plug-in system which should allow all of you to build your own plug-ins to hook into the client (to some extent).
They are accessible under the Xtended menu (originally implemented by Ender).
Using plugins
This part is simple! You download the plug-in and place it in ~/Salem/plugins.
I am planning to maintain a list of plug-ins on this first post of which I have personally verified the source code (not guaranteeing that it will do what it says, but guaranteeing that it won't do anything nasty).
hello world pluginhttps://github.com/DonnEssime/SalemFuelPlugin/raw/master/dist/SalemFuelPlugin.jar
pickup plugin
seller plugin
frog/small kritter plugin
fuel filler plugin
distiller plugin
Creating your own plug-ins
I have tried to make this as painless as possible, but unfortunately there are quite a few steps involved.
You will find a comprehensive guide in the README of the PickupPlugin git repository.
I have (against better habits ) committed ALL of the changes from SampleSalemPlugin to SalemPickupPlugin in a single commit. You can view it here, to double check whether you have all changes. Everything is listed in the README, though.
Note that, through the "load" method, it is also possible for plug-ins to permanently influence client behaviour without ever being activated once.
Your turn
Now it's up to you!
Some extensions to my client I will make accessible as plug-ins rather than as full-fledged client extensions, depending on where they best fit. One hopeful dream is to, one day, have some kind of central plug-in list and a full updater GUI for both the client and any and all plug-ins you may enjoy. One day.