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>
This change makes the lists of loadbefore, softdependency, and dependency
replace the spaces in the names with underscored to reflect the behavior
used with names.
By: Wesley Wolfe <weswolf@aol.com>
Permissions are stored as lower case names and referenced as such in all
appropriate methods but removePermission. This changes removePermission
to also convert names to lower case to be consistent with the rest of
the API.
By: Max A <maximilian.ammann@googlemail.com>
When an exception occurs, the version of the plugin is not included.
Having this information would be beneficial to plugin authors performing
debug.
The list of authors for NagAuthorException verbose (although unused)
would be more appropriate to simply include all authors, as opposed to
the first appearing.
By: Wesley Wolfe <weswolf@aol.com>
Removed internal collection leaks from PluginDescriptionFile
BREAKING: PluginDescriptionFile.getAuthors() now returns List instead of
ArrayList
Various places with unsafe generics, notably List<Object> getList() in
Configurations are now referenced as <?>. This is nonbreaking, but
sourcecode will need to be revised when compiled.
By: Wesley Wolfe <weswolf@aol.com>