Refactor permission processors, misc cleanup

This commit is contained in:
Luck
2018-02-04 18:39:34 +00:00
Unverified
parent 31df29194b
commit fd937e3209
20 changed files with 151 additions and 107 deletions
@@ -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
}
}