Adds plugin adapters as an util to manage plugin dependent listeners or other classes.
A manager is registered using the method Plugins#registerAdapter(pluginName : String, adapter : Supplier<PluginAdapter>).
The supplier is only called if the specified plugin is available at the time of invocation.
The adapter just requires a NamespacedKey, as you can register multiple adapters for a single plugin.
You can then get it via Plugins#getAdapter(pluginName : String, type : Class<T>, key : NamespacedKey)
Bug Fixes
Fixed - PluginImplementations, that cause a RuntimeException, are not removed from the registered implementations. Which means it is never activated.
Adds plugin adapters as an util to manage plugin dependent listeners or other classes.
A manager is registered using the method
Plugins#registerAdapter(pluginName : String, adapter : Supplier<PluginAdapter>)
. The supplier is only called if the specified plugin is available at the time of invocation.The adapter just requires a NamespacedKey, as you can register multiple adapters for a single plugin. You can then get it via
Plugins#getAdapter(pluginName : String, type : Class<T>, key : NamespacedKey)
Bug Fixes