MCUtils is a free to use open-source plugin API to help you develop your own Spigot plugins, designed to be shaded under your plugin so you don't have to worry about new versions releasing that administrators may need to download, they don't need to download anything! Once you compile your plugin, the behavior of MCUtils won't change, unless you explicitly change to another version of it, of course.
Well, you can never be sure that a program is 100% reliable on any environment with an almost infinite amount of conditions that Minecraft servers tend to have, of course, bugs may appear sooner or later, it's part of the development process of any program. However, MCUtils is used by my own plugins which are tested quite a lot, in fact, I even use it as a part of the core of my own network, so you don't have to worry about the project being abandoned any time soon either. Most bugs / performance issues will be solved before a version is even released or they get reported. But, if you do find a bug, critical or not, feel free to contribute / create an issue to fix it!
One thing that is important to note is that MCUtils is currently on the early stages of development, features may (And will) change, methods may be renamed or removed, and of course issues are expected to appear. This is normal right now! API-breaking changes will happen with a lower and lower frequency as we approach the first stable release, these changes are necessary right now that we can change most of the code without worrying about a ton of plugins breaking, making sure that all features are robust and easy to use in the better way possible. A great example of this is how the whole command API changed in order to add a more minimalistic and simple approach to it, this WON'T happen once the first stable build of MCUtils gets released, so don't panic!
As previously mentioned, MCUtils is designed to make your plugin development process easier and faster, but, what does it actually offer? Well... Here is the current list of features.
-
Compatible with both Spigot and PaperMC
-
General file registration
- Reload and update all the files registered to your plugin
- FileHolder interface for any custom file type that you may need to register
- FileUpdater interface if your FileHolder can be updated
-
Yaml file management
- YmlFile for basic yaml files with reload support
- PluginFile for plugin resource files that can be updated
- MessagesFile to send custom messages easily
-
Message patterns
-
The MCCommand class
- Register commands with or without defining them on your plugin.yml file
- Get and convert command arguments in one line, without IndexOutOfBounds exceptions
- Add sub-commands without doing all the boring logic of it yourself
- Restrict commands to be player or console only directly from the constructor
- Create your own MCCommand class with custom conditions
-
Builders that are easy to use
- ItemBuilder
- SkullBuilder
- InventoryBuilder
-
GUI handling
- GUIHandler
- GUI and ActionGUI
-
Reflection utilities
-
Regions
-
General utilities
- MCStrings
- Replacers
- MCNumbers
- MCLists
-
Version checkers
- For the server
- For your plugin
-
World generation
- VoidGenerator
- SingleBiomeProvider