Refactor extended node types, general cleanup
This commit is contained in:
@@ -37,7 +37,7 @@ import me.lucko.luckperms.api.Tristate;
|
||||
import me.lucko.luckperms.api.context.ImmutableContextSet;
|
||||
import me.lucko.luckperms.common.managers.user.AbstractUserManager;
|
||||
import me.lucko.luckperms.common.managers.user.UserHousekeeper;
|
||||
import me.lucko.luckperms.common.references.UserIdentifier;
|
||||
import me.lucko.luckperms.common.model.UserIdentifier;
|
||||
import me.lucko.luckperms.common.utils.ImmutableCollectors;
|
||||
import me.lucko.luckperms.common.utils.Uuids;
|
||||
import me.lucko.luckperms.sponge.LPSpongePlugin;
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@
|
||||
package me.lucko.luckperms.sponge.processors;
|
||||
|
||||
import me.lucko.luckperms.api.Tristate;
|
||||
import me.lucko.luckperms.common.node.ImmutableNode;
|
||||
import me.lucko.luckperms.common.node.model.ImmutableNode;
|
||||
import me.lucko.luckperms.common.processors.AbstractPermissionProcessor;
|
||||
import me.lucko.luckperms.common.processors.PermissionProcessor;
|
||||
|
||||
|
||||
+4
-20
@@ -151,11 +151,7 @@ public abstract class CalculatedSubject implements LPSubject {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
for (LPSubjectReference entry : merging) {
|
||||
if (!parents.contains(entry)) {
|
||||
parents.add(entry);
|
||||
}
|
||||
}
|
||||
parents.addAll(merging);
|
||||
return parents;
|
||||
}
|
||||
|
||||
@@ -175,11 +171,7 @@ public abstract class CalculatedSubject implements LPSubject {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
for (LPSubjectReference entry : merging) {
|
||||
if (!parents.contains(entry)) {
|
||||
parents.add(entry);
|
||||
}
|
||||
}
|
||||
parents.addAll(merging);
|
||||
return parents;
|
||||
}
|
||||
|
||||
@@ -189,11 +181,7 @@ public abstract class CalculatedSubject implements LPSubject {
|
||||
|
||||
Iterable<CalculatedSubject> traversal = graph.traverse(TraversalAlgorithm.DEPTH_FIRST_PRE_ORDER, this);
|
||||
for (CalculatedSubject subject : traversal) {
|
||||
for (LPSubjectReference entry : subject.getCombinedParents(filter)) {
|
||||
if (!result.contains(entry)) {
|
||||
result.add(entry);
|
||||
}
|
||||
}
|
||||
result.addAll(subject.getCombinedParents(filter));
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -205,11 +193,7 @@ public abstract class CalculatedSubject implements LPSubject {
|
||||
|
||||
Iterable<CalculatedSubject> traversal = graph.traverse(TraversalAlgorithm.DEPTH_FIRST_PRE_ORDER, this);
|
||||
for (CalculatedSubject subject : traversal) {
|
||||
for (LPSubjectReference entry : subject.getCombinedParents()) {
|
||||
if (!result.contains(entry)) {
|
||||
result.add(entry);
|
||||
}
|
||||
}
|
||||
result.addAll(subject.getCombinedParents());
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
+1
-5
@@ -225,11 +225,7 @@ public class CalculatedSubjectData implements LPSubjectData {
|
||||
// flatten
|
||||
Set<LPSubjectReference> result = new LinkedHashSet<>();
|
||||
for (Set<LPSubjectReference> set : sorted.values()) {
|
||||
for (LPSubjectReference e : set) {
|
||||
if (!result.contains(e)) {
|
||||
result.add(e);
|
||||
}
|
||||
}
|
||||
result.addAll(set);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -36,7 +36,8 @@ import me.lucko.luckperms.common.inheritance.InheritanceGraph;
|
||||
import me.lucko.luckperms.common.model.Group;
|
||||
import me.lucko.luckperms.common.model.NodeMapType;
|
||||
import me.lucko.luckperms.common.model.PermissionHolder;
|
||||
import me.lucko.luckperms.common.node.NodeFactory;
|
||||
import me.lucko.luckperms.common.node.factory.NodeFactory;
|
||||
import me.lucko.luckperms.common.node.model.NodeTypes;
|
||||
import me.lucko.luckperms.common.verbose.CheckOrigin;
|
||||
import me.lucko.luckperms.sponge.LPSpongePlugin;
|
||||
import me.lucko.luckperms.sponge.model.SpongeGroup;
|
||||
@@ -133,13 +134,13 @@ public abstract class HolderSubject<T extends PermissionHolder> implements LPSub
|
||||
@Override
|
||||
public Optional<String> getOption(ImmutableContextSet contexts, String s) {
|
||||
MetaData data = this.parent.getCachedData().getMetaData(this.plugin.getContextManager().formContexts(contexts));
|
||||
if (s.equalsIgnoreCase(NodeFactory.PREFIX_KEY)) {
|
||||
if (s.equalsIgnoreCase(NodeTypes.PREFIX_KEY)) {
|
||||
if (data.getPrefix() != null) {
|
||||
return Optional.of(data.getPrefix());
|
||||
}
|
||||
}
|
||||
|
||||
if (s.equalsIgnoreCase(NodeFactory.SUFFIX_KEY)) {
|
||||
if (s.equalsIgnoreCase(NodeTypes.SUFFIX_KEY)) {
|
||||
if (data.getSuffix() != null) {
|
||||
return Optional.of(data.getSuffix());
|
||||
}
|
||||
|
||||
+13
-12
@@ -38,7 +38,8 @@ import me.lucko.luckperms.common.model.Group;
|
||||
import me.lucko.luckperms.common.model.NodeMapType;
|
||||
import me.lucko.luckperms.common.model.PermissionHolder;
|
||||
import me.lucko.luckperms.common.model.User;
|
||||
import me.lucko.luckperms.common.node.NodeFactory;
|
||||
import me.lucko.luckperms.common.node.factory.NodeFactory;
|
||||
import me.lucko.luckperms.common.node.model.NodeTypes;
|
||||
import me.lucko.luckperms.sponge.service.LuckPermsService;
|
||||
import me.lucko.luckperms.sponge.service.model.LPSubject;
|
||||
import me.lucko.luckperms.sponge.service.model.LPSubjectData;
|
||||
@@ -72,7 +73,7 @@ public class HolderSubjectData implements LPSubjectData {
|
||||
}
|
||||
|
||||
private Stream<Node> streamNodes() {
|
||||
return this.holder.getNodes(this.type).values().stream();
|
||||
return this.holder.getData(this.type).immutable().values().stream();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -93,10 +94,10 @@ public class HolderSubjectData implements LPSubjectData {
|
||||
@Override
|
||||
public ImmutableMap<ImmutableContextSet, ImmutableMap<String, Boolean>> getAllPermissions() {
|
||||
ImmutableMap.Builder<ImmutableContextSet, ImmutableMap<String, Boolean>> ret = ImmutableMap.builder();
|
||||
for (Map.Entry<ImmutableContextSet, Collection<Node>> entry : this.holder.getNodes(this.type).asMap().entrySet()) {
|
||||
for (Map.Entry<ImmutableContextSet, Collection<Node>> entry : this.holder.getData(this.type).immutable().asMap().entrySet()) {
|
||||
ImmutableMap.Builder<String, Boolean> builder = ImmutableMap.builder();
|
||||
for (Node n : entry.getValue()) {
|
||||
builder.put(n.getPermission(), n.getValuePrimitive());
|
||||
builder.put(n.getPermission(), n.getValue());
|
||||
}
|
||||
ret.put(entry.getKey(), builder.build());
|
||||
}
|
||||
@@ -182,7 +183,7 @@ public class HolderSubjectData implements LPSubjectData {
|
||||
@Override
|
||||
public ImmutableMap<ImmutableContextSet, ImmutableList<LPSubjectReference>> getAllParents() {
|
||||
ImmutableMap.Builder<ImmutableContextSet, ImmutableList<LPSubjectReference>> ret = ImmutableMap.builder();
|
||||
for (Map.Entry<ImmutableContextSet, Collection<Node>> entry : this.holder.getNodes(this.type).asMap().entrySet()) {
|
||||
for (Map.Entry<ImmutableContextSet, Collection<Node>> entry : this.holder.getData(this.type).immutable().asMap().entrySet()) {
|
||||
ImmutableList.Builder<LPSubjectReference> builder = ImmutableList.builder();
|
||||
for (Node n : entry.getValue()) {
|
||||
if (n.isGroupNode()) {
|
||||
@@ -294,8 +295,8 @@ public class HolderSubjectData implements LPSubjectData {
|
||||
Map<ImmutableContextSet, Integer> minPrefixPriority = new HashMap<>();
|
||||
Map<ImmutableContextSet, Integer> minSuffixPriority = new HashMap<>();
|
||||
|
||||
for (Node n : this.holder.getNodes(this.type).values()) {
|
||||
if (!n.getValuePrimitive()) continue;
|
||||
for (Node n : this.holder.getData(this.type).immutable().values()) {
|
||||
if (!n.getValue()) continue;
|
||||
if (!n.isMeta() && !n.isPrefix() && !n.isSuffix()) continue;
|
||||
|
||||
ImmutableContextSet immutableContexts = n.getFullContexts().makeImmutable();
|
||||
@@ -309,7 +310,7 @@ public class HolderSubjectData implements LPSubjectData {
|
||||
if (n.isPrefix()) {
|
||||
Map.Entry<Integer, String> value = n.getPrefix();
|
||||
if (value.getKey() > minPrefixPriority.get(immutableContexts)) {
|
||||
options.get(immutableContexts).put(NodeFactory.PREFIX_KEY, value.getValue());
|
||||
options.get(immutableContexts).put(NodeTypes.PREFIX_KEY, value.getValue());
|
||||
minPrefixPriority.put(immutableContexts, value.getKey());
|
||||
}
|
||||
continue;
|
||||
@@ -318,7 +319,7 @@ public class HolderSubjectData implements LPSubjectData {
|
||||
if (n.isSuffix()) {
|
||||
Map.Entry<Integer, String> value = n.getSuffix();
|
||||
if (value.getKey() > minSuffixPriority.get(immutableContexts)) {
|
||||
options.get(immutableContexts).put(NodeFactory.SUFFIX_KEY, value.getValue());
|
||||
options.get(immutableContexts).put(NodeTypes.SUFFIX_KEY, value.getValue());
|
||||
minSuffixPriority.put(immutableContexts, value.getKey());
|
||||
}
|
||||
continue;
|
||||
@@ -344,7 +345,7 @@ public class HolderSubjectData implements LPSubjectData {
|
||||
Objects.requireNonNull(value, "value");
|
||||
|
||||
Node node;
|
||||
if (key.equalsIgnoreCase(NodeFactory.PREFIX_KEY) || key.equalsIgnoreCase(NodeFactory.SUFFIX_KEY)) {
|
||||
if (key.equalsIgnoreCase(NodeTypes.PREFIX_KEY) || key.equalsIgnoreCase(NodeTypes.SUFFIX_KEY)) {
|
||||
// special handling.
|
||||
ChatMetaType type = ChatMetaType.valueOf(key.toUpperCase());
|
||||
|
||||
@@ -393,9 +394,9 @@ public class HolderSubjectData implements LPSubjectData {
|
||||
|
||||
List<Node> toRemove = streamNodes()
|
||||
.filter(n -> {
|
||||
if (key.equalsIgnoreCase(NodeFactory.PREFIX_KEY)) {
|
||||
if (key.equalsIgnoreCase(NodeTypes.PREFIX_KEY)) {
|
||||
return n.isPrefix();
|
||||
} else if (key.equalsIgnoreCase(NodeFactory.SUFFIX_KEY)) {
|
||||
} else if (key.equalsIgnoreCase(NodeTypes.SUFFIX_KEY)) {
|
||||
return n.isSuffix();
|
||||
} else {
|
||||
return n.isMeta() && n.getMeta().getKey().equals(key);
|
||||
|
||||
Reference in New Issue
Block a user