Preface
First of I’d like to express my gratitude to three groups of people. The Bukkit Dev Team, who put excellent work into an excellent server, The Spigot Dev Team who put excellent work into making an excellent server better. And finally, I would like to thank the Sponge Dev Team, and every member of the community who has made this new, legal, server and api possible.
About Me
I am by far the stupidest person you have ever met. But at the same time, one of the smartest. I suppose the best descriptor of this was when I was trying to implement custom YAML files with bukkit. For the life of me I could not figure out how to make a custom YAML file. So instead of giving up, I created a whole file configuration system to solve a very, very simple problem. So yeah, that’s me…
So what am I doing?
No doubt, Sponge is different from bukkit, from annotations instead of files, to registering events as objects, not implementations of listener, and a different config parser. Out of all the differences, the one I found most annoying was not having a singular plugin class that was extensible, like bukkit’s JavaPlugin. Without the utilities provided by that class, such as config and logger management, I feel as though my projects are a bit bare. So I decided I would begin the port of my central library on bukkit, MipaYrarbil. The port is both an update as well, that will be added features more sponge oriented. MipaYrarbil, now Version Nostalgia Double A, was a powerful API, and I plan to make it one again.
The Point
But now to the point, within MipaYrarbil, I have created a Plugin system that ‘mimics’ that of Bukkit. Currently only the “MipaPlugin” class exists, but at least it is extendable! And a concrete base for any plugin. It has 8 abstract methods, three for plugin information, and 5 for events. There is only one problem. @Subscribe and @Inject do not work when they are in the super class. For this I created a simple abstract class called BridgeClass that in just 17 lines can initialize the MipaPlugin properly.
Other Powerful Features
Mipa contains a full Java API, written by yours truly, with some simply File, Number, and String Utils, as well as the data saving/configuration Api mentioned earlier. However, one of the more powerful features is the player database, a flatfile database maintained by MipaYrarbil that allows any plugin to set and access data for any player, using my configuration API.
Planned Nostalgia Features
- Listener
- Command Executor
- Conversation API
Planned Port Features
- Inventory GUIs
- Item Stack Builders, Other Builders
- Block and World editors
- World Generation API
- Nice Modular Plugins
Planned Update Features
- Allow MipaPlugins to be per world.
- Scoreboard API
- Other Stuff
- WORLD DOMINATION MUWHAHA
- If only I could figure out how to implement it…
Congratulations, if you did not just skim read down here, then you’ve read my entire post. Please leave a comment on what you think, and/or suggest a feature!
Downloads & Tutorials available soon!
UPDATE:
The website, forums, and beginning tutorials are complete! See here: https://sites.google.com/site/mipayrarbilnostalgiadoublea