SPIGOT-2618: Register permissions before plugin enabled.

Brings behaviour in line with command registration, and won't affect plugins which don't already error.

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2016-08-25 13:11:42 +10:00
parent e82ad8c82f
commit 29623943f1

View File

@@ -317,7 +317,7 @@ public final class CraftServer implements Server {
for (Plugin plugin : plugins) { for (Plugin plugin : plugins) {
if ((!plugin.isEnabled()) && (plugin.getDescription().getLoad() == type)) { if ((!plugin.isEnabled()) && (plugin.getDescription().getLoad() == type)) {
loadPlugin(plugin); enablePlugin(plugin);
} }
} }
@@ -343,10 +343,8 @@ public final class CraftServer implements Server {
} }
} }
private void loadPlugin(Plugin plugin) { private void enablePlugin(Plugin plugin) {
try { try {
pluginManager.enablePlugin(plugin);
List<Permission> perms = plugin.getDescription().getPermissions(); List<Permission> perms = plugin.getDescription().getPermissions();
for (Permission perm : perms) { for (Permission perm : perms) {
@@ -356,6 +354,8 @@ public final class CraftServer implements Server {
getLogger().log(Level.WARNING, "Plugin " + plugin.getDescription().getFullName() + " tried to register permission '" + perm.getName() + "' but it's already registered", ex); getLogger().log(Level.WARNING, "Plugin " + plugin.getDescription().getFullName() + " tried to register permission '" + perm.getName() + "' but it's already registered", ex);
} }
} }
pluginManager.enablePlugin(plugin);
} catch (Throwable ex) { } catch (Throwable ex) {
Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, ex.getMessage() + " loading " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, ex.getMessage() + " loading " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
} }