Refactor permission processors, misc cleanup
This commit is contained in:
@@ -28,17 +28,19 @@ package me.lucko.luckperms.bukkit.processors;
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
import me.lucko.luckperms.api.Tristate;
|
||||
import me.lucko.luckperms.common.processors.AbstractPermissionProcessor;
|
||||
import me.lucko.luckperms.common.processors.PermissionProcessor;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* Permission Processor for Bukkits "child" permission system.
|
||||
*/
|
||||
public class ChildProcessor implements PermissionProcessor {
|
||||
public class ChildProcessor extends AbstractPermissionProcessor implements PermissionProcessor {
|
||||
private final ChildPermissionProvider provider;
|
||||
private final Map<String, Boolean> childPermissions = new ConcurrentHashMap<>();
|
||||
private Map<String, Boolean> childPermissions = Collections.emptyMap();
|
||||
|
||||
public ChildProcessor(ChildPermissionProvider provider) {
|
||||
this.provider = provider;
|
||||
@@ -50,13 +52,14 @@ public class ChildProcessor implements PermissionProcessor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateBacking(Map<String, Boolean> map) {
|
||||
this.childPermissions.clear();
|
||||
for (Map.Entry<String, Boolean> e : map.entrySet()) {
|
||||
public void refresh() {
|
||||
Map<String, Boolean> builder = new ConcurrentHashMap<>();
|
||||
for (Map.Entry<String, Boolean> e : this.sourceMap.entrySet()) {
|
||||
Map<String, Boolean> children = this.provider.getPermissions().get(Maps.immutableEntry(e.getKey(), e.getValue()));
|
||||
if (children != null) {
|
||||
this.childPermissions.putAll(children);
|
||||
builder.putAll(children);
|
||||
}
|
||||
}
|
||||
this.childPermissions = builder;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,8 +31,6 @@ import me.lucko.luckperms.common.processors.PermissionProcessor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.permissions.Permission;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Permission Processor for Bukkits "default" permission system.
|
||||
*/
|
||||
@@ -55,9 +53,4 @@ public class DefaultsProcessor implements PermissionProcessor {
|
||||
Permission defPerm = Bukkit.getServer().getPluginManager().getPermission(permission);
|
||||
return defPerm == null ? Tristate.UNDEFINED : Tristate.fromBoolean(defPerm.getDefault().getValue(this.isOp));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateBacking(Map<String, Boolean> map) {
|
||||
// Do nothing, this doesn't use the backing
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user