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
@@ -31,8 +31,6 @@ import me.lucko.luckperms.common.processors.PermissionProcessor;
import me.lucko.luckperms.sponge.service.LuckPermsService;
import me.lucko.luckperms.sponge.service.model.LPSubject;
import java.util.Map;
public abstract class DefaultsProcessor implements PermissionProcessor {
private final LuckPermsService service;
private final ImmutableContextSet contexts;
@@ -58,9 +56,4 @@ public abstract class DefaultsProcessor implements PermissionProcessor {
return Tristate.UNDEFINED;
}
@Override
public void updateBacking(Map<String, Boolean> map) {
// Do nothing, this doesn't use the backing
}
}
@@ -27,12 +27,10 @@ package me.lucko.luckperms.sponge.processors;
import me.lucko.luckperms.api.Tristate;
import me.lucko.luckperms.common.node.ImmutableNode;
import me.lucko.luckperms.common.processors.AbstractPermissionProcessor;
import me.lucko.luckperms.common.processors.PermissionProcessor;
import java.util.Map;
public class SpongeWildcardProcessor implements PermissionProcessor {
private Map<String, Boolean> map = null;
public class SpongeWildcardProcessor extends AbstractPermissionProcessor implements PermissionProcessor {
@Override
public Tristate hasPermission(String permission) {
@@ -46,7 +44,7 @@ public class SpongeWildcardProcessor implements PermissionProcessor {
node = node.substring(0, endIndex);
if (!node.isEmpty()) {
Tristate t = Tristate.fromNullableBoolean(this.map.get(node));
Tristate t = Tristate.fromNullableBoolean(this.sourceMap.get(node));
if (t != Tristate.UNDEFINED) {
return t;
}
@@ -56,10 +54,4 @@ public class SpongeWildcardProcessor implements PermissionProcessor {
return Tristate.UNDEFINED;
}
@Override
public void updateBacking(Map<String, Boolean> map) {
if (this.map == null) {
this.map = map;
}
}
}
@@ -330,13 +330,13 @@ public class CalculatedSubjectData implements LPSubjectData {
public CalculatorHolder(PermissionCalculator calculator) {
this.calculator = calculator;
this.permissions = new ConcurrentHashMap<>();
this.calculator.updateBacking(this.permissions);
this.calculator.setSourcePermissions(this.permissions);
}
public void setPermissions(Map<String, Boolean> permissions) {
this.permissions.clear();
this.permissions.putAll(permissions);
this.calculator.updateBacking(this.permissions);
this.calculator.setSourcePermissions(this.permissions);
this.calculator.invalidateCache();
}