Fix permission handler crash on preinit state
This commit is contained in:
parent
5c58877273
commit
d6bf0f12ea
|
@ -24,13 +24,13 @@ public class ArclightPermissionHandler implements IPermissionHandler {
|
||||||
|
|
||||||
public static final ArclightPermissionHandler INSTANCE = new ArclightPermissionHandler();
|
public static final ArclightPermissionHandler INSTANCE = new ArclightPermissionHandler();
|
||||||
|
|
||||||
private final List<Permission> list = new LinkedList<>();
|
private final List<Perm> list = new LinkedList<>();
|
||||||
private final AtomicBoolean initialized = new AtomicBoolean(false);
|
private final AtomicBoolean initialized = new AtomicBoolean(false);
|
||||||
|
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
if (!initialized.getAndSet(true)) {
|
if (!initialized.getAndSet(true)) {
|
||||||
for (Permission permission : this.list) {
|
for (Perm permission : this.list) {
|
||||||
DefaultPermissions.registerPermission(permission);
|
DefaultPermissions.registerPermission(permission.toBukkit());
|
||||||
}
|
}
|
||||||
this.list.clear();
|
this.list.clear();
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ public class ArclightPermissionHandler implements IPermissionHandler {
|
||||||
if (initialized.get()) {
|
if (initialized.get()) {
|
||||||
DefaultPermissions.registerPermission(node, desc, bukkit);
|
DefaultPermissions.registerPermission(node, desc, bukkit);
|
||||||
} else {
|
} else {
|
||||||
this.list.add(new Permission(node, desc, bukkit));
|
this.list.add(new Perm(node, desc, bukkit));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ public class ArclightPermissionHandler implements IPermissionHandler {
|
||||||
if (initialized.get()) {
|
if (initialized.get()) {
|
||||||
return Bukkit.getPluginManager().getPermissions().stream().map(Permission::getName).collect(Collectors.toList());
|
return Bukkit.getPluginManager().getPermissions().stream().map(Permission::getName).collect(Collectors.toList());
|
||||||
} else {
|
} else {
|
||||||
return this.list.stream().map(Permission::getName).collect(Collectors.toList());
|
return this.list.stream().map(it -> it.node).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,4 +93,21 @@ public class ArclightPermissionHandler implements IPermissionHandler {
|
||||||
return permission == null ? "" : permission.getDescription();
|
return permission == null ? "" : permission.getDescription();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class Perm {
|
||||||
|
|
||||||
|
private final String node;
|
||||||
|
private final String desc;
|
||||||
|
private final PermissionDefault level;
|
||||||
|
|
||||||
|
public Perm(String node, String desc, PermissionDefault level) {
|
||||||
|
this.node = node;
|
||||||
|
this.desc = desc;
|
||||||
|
this.level = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Permission toBukkit() {
|
||||||
|
return new Permission(node, desc, level);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user