Repository navigation
Paper incompatibility notes
BlackBoxMC loads shared libraries and presents them as discrete plugins alongside your other Java plugins. If you're confused as to what I mean, run /plugins on a Spigot server with this plugin and any other BlackBox plugins installed, and you'll them listed alongside the Java plugins. This allows for use of many advanced features:
- The plugin can execute code before Spigot loads the rest of the plugins, useful in scenarios where low level access is needed.
- It could do the exact same thing this plugin does with another, interpreted programming language, while also allowing these features.
- You can write a custom world generator plugin and have Spigot actually use it, because you can put your plugin name under the appropriate part of Spigot's configuration file.
- As of writing, this is also required for custom commands, because your plugin needs to have an "onCommand" function and you need to export information about your commands, very similarly to how you do it in Spigot.
All of this can be supported with workarounds, and in the case of the world-gen example, the BlackBox plugin could soft-depend on Multiverse and bindings for that could be written; after all, most people are using that anyways. But at the moment, these advanced features are presented so that you can do this stuff until I explicitly add alternatives them.
All of this relies on functions that Paper chose not to implement and have actually marked for removal (see: Paper/9479). Their reasoning is that they created their own system that allows for the same thing. Unfortunately for us, their system uses a lot of functions that we have no control over and only supports Java plugins, meaning that using their solution is impossible.
tl;dr The most you can do with BlackBox plugins is event programming and overriding classes unless you switch back to Spigot.