This is for developers only as a reference.
- Native Minecraft Version:
- Source Code:
Beetle is a framework that handles the following services
- Simple async transactionally-based SQL with support for multiple dialects
- Service registry and versioning (Bind an implementation to an interface)
- File registry system with an incredibly powerful key-to-producer system for deriving files based on extensions like configurations and file-based data sources
- Version-independent runnable runner and task queue
- Simple command registration with tab complete support (With no need to touch your plugin.yml!)
- Node system for creating branching plugins
- Math utilities
I see many poorly coded plugins failing to utilize object oriented principles
as well as struggling to properly use JDBC. This framework hopes to mitigate this by providing both an example of code to use as well as providing an API to build against and hopefully handle these tasks easily.
Beetle makes sure to avoid:
- Static abuse
- Place implementations in the core API
- Add ridiculous version specific features
- Provide stupid static one-class features like "SQLApi.class" or "NMSUtils.class"
- Tries to avoid reflection where possible
- Tries to avoid bloat where possible (The advanced configuration system is packaged as a separate framework as well as the advanced command framework. Simple command registration without using plugin.yml is a built-in feature.)
Why does beetle lack some features like bossbars, actionbars, sounds, etc?
Beetle was not designed for just spigot development but rather speeding up platform-neutral development with a focus on Minecraft. Therefore, in order to support platforms like bungeecord / velocity which do not use such things, Beetle only provides features that can be useful on all platforms.
Beetle is modularized using maven.
I'm always available for support. Always.
You can ping me - I'm Aesthetik#9784, in our support discord.
For more information on the plugin please read the readme and wiki on our github:
Beetle is actively in development. As such many things in the implementation (Not the exposed API) may change or not work. If you find an issue, make an issue on our issue tracker!