This API is aimed primarily at plugin-makers or beginner addon developers.
- Mackenzie (Moderocky), blce
- Supported Minecraft Versions:
- 1.12, 1.13, 1.14, 1.15, 1.16
The primary goal is to try and simplify most of the dull or complex tasks that are required in addon/plugin creation.
I use it in production, which is pretty much a guarantee that I will keep it updated.
Almost no features rely on Minecraft version-specific methods so it ought to work on almost any version.
Note: You probably want to get this via the repository, the jar itself won't be much help.
- Automatic Skript addon registration (optional)
- Automatic config-handling annotations
- Built-in class debugging tools
- Simplification of certain tasks (meta and keys)
- Templates for common things
- Caches and special maps for dealing with positional objects
- N-Dimensional maps (for dealing with objects by property)
- Special callback system for advanced tasks (async in progress)
- Simplified reflection methods (good for tricky NMS work)
- Automatic object property expression generation (BETA)
- Exposition of some useful features from Skript
- Full Skript syntax API (handlers and automatic registration)
- Syntax configuration system (easily enable/disable/change syntax on the fly)
- Annotations for automatic Skript effect generation (for exposing your plugin for Skript)
- Improved debugging system
- Additional storage API (for avoiding variables)
- Converters to and from irritating Skript typesMaven
Package re-mapping (prevents conflicts if there are two plugins using this dependency).Code (Text):
I don't know how Gradle handles package mapping.
I'm sure you can work this out for yourselves.
This seems to be the most popular feature, so I've tried to provide some documentation.
Mask contains a simplified config handler that makes use of annotations.
This can be used to easily serialise/de-serialise your config.
To use, implement the 'Config' interface.
An example config can be seen here:
Remember: by default, your field-names are converted from camelCase to snake_case to provide the yaml key.
If you want to change this, you can use the @Keyed annotation to specify something else.
- @Configurable // marks this field to be mapped
- @Bounded // sets bounds for a number field
- @Keyed // allows a custom yaml key to be used
- @Regex // passes string input through a matcher
- @Comment // allows a comment to be left
- @Serialise // currently does nothing, will soon allow a custom (de)serialising method to be used
- @Header // attaches to the class, specify yaml header comments
Other basic examples can be found here: https://gitlab.com/Pandaemonium/Mask/-/tree/master/src/examples
I will try to remember to add more as I add more features.
Welcome to skUnity!
Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.
If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!
Now, what are you waiting for? Join the community now!
API Mask 2.1.2
A plugin framework primarily aimed at Skript addons to simplify boilerplate tasks.
- Commander v2 and 1.16.1 Support Jun 30, 2020
- 1.16.1 Fixes Jun 25, 2020
- Mask v2! Smoke and Mirror Jun 13, 2020