Example plugin.yml usage:
```
libraries:
- com.squareup.okhttp3:okhttp:4.9.0
```
Libraries will only be accessible to plugins and their transitive depends, allowing for multiple versions of the same library to be used by different plugins.
This feature is modeled on the parallel BungeeCord feature and intends to offer the same behaviour.
Although this is a preview feature, major changes to behaviour are not expected at this point.
With the exception of the issues described in SPIGOT-6419 it is not expected that this feature alters classloading behaviour, although some changes may be unavoidable.
By: md_5 <git@md-5.net>
Unlike "authors", names listed under the "contributors" field will not be named when AuthorNagExceptions are thrown. This makes a clear distinction between authorship and contributors as most contributions do not warrant the status of "author".
By: Parker Hawke <hawkeboyz2@hotmail.com>
When permissibles recalculate their permissions they set the default permission values in the order as the default permissions are provided by the plugin manager.
This order is currently arbitrary and can even change depending on the number of buckets of the underlying hashset which stores those default permissions.
When a plugin defines default permissions inside its plugin.yml (eg. permission 'A' with default value 'true') and a server admin defines different default values for these permissions inside the permissions.yml (eg. permission 'myDefaultPerms' with default value 'true' and with child 'A' set to 'false'), then the outcome will depend on the order in which those default permissions (and their childs) get evaluated inside PermissableBase#recalculatePermissions().
The permission which gets processed last will overwrite the permission value of 'A' according to its definition. Since this order is arbitrary and inconsistent, the server admin will experience weird behavior with his defined default permissions sometimes working and sometimes not.
By: blablubbabc <lukas@wirsindwir.de>
With Java 7 we can register the classloader as parallel capable to prevent deadlocks caused by certain scenarios. Due to the nature of PluginClassLoader this isn't completely safe, but we can make it safer by switching to concurrency focused collections. Either way this is far better than crashing the server.
By: md_5 <git@md-5.net>