mirror of
https://github.com/LuckPerms/LuckPerms.git
synced 2024-12-29 12:37:40 +01:00
Remove vault-debug option
This is now covered pretty much entirely by verbose data.
This commit is contained in:
parent
b84518e1f1
commit
242993763c
@ -30,14 +30,12 @@ import com.google.common.base.Strings;
|
||||
import me.lucko.luckperms.bukkit.LPBukkitPlugin;
|
||||
import me.lucko.luckperms.common.cacheddata.type.MetaAccumulator;
|
||||
import me.lucko.luckperms.common.cacheddata.type.MetaCache;
|
||||
import me.lucko.luckperms.common.config.ConfigKeys;
|
||||
import me.lucko.luckperms.common.context.contextset.ImmutableContextSetImpl;
|
||||
import me.lucko.luckperms.common.model.Group;
|
||||
import me.lucko.luckperms.common.model.PermissionHolder;
|
||||
import me.lucko.luckperms.common.node.types.Meta;
|
||||
import me.lucko.luckperms.common.node.types.Prefix;
|
||||
import me.lucko.luckperms.common.node.types.Suffix;
|
||||
import me.lucko.luckperms.common.util.TextUtils;
|
||||
import me.lucko.luckperms.common.verbose.event.MetaCheckEvent;
|
||||
|
||||
import net.luckperms.api.context.DefaultContextKeys;
|
||||
@ -93,11 +91,7 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
PermissionHolder user = this.vaultPermission.lookupUser(uuid);
|
||||
QueryOptions queryOptions = this.vaultPermission.getQueryOptions(uuid, world);
|
||||
MetaCache metaData = user.getCachedData().getMetaData(queryOptions);
|
||||
String prefix = metaData.getPrefix(MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
if (log()) {
|
||||
logMsg("#getUserChatPrefix: %s - %s - %s", user.getPlainDisplayName(), queryOptions.context(), prefix);
|
||||
}
|
||||
return Strings.nullToEmpty(prefix);
|
||||
return Strings.nullToEmpty(metaData.getPrefix(MetaCheckEvent.Origin.THIRD_PARTY_API));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -107,11 +101,7 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
PermissionHolder user = this.vaultPermission.lookupUser(uuid);
|
||||
QueryOptions queryOptions = this.vaultPermission.getQueryOptions(uuid, world);
|
||||
MetaCache metaData = user.getCachedData().getMetaData(queryOptions);
|
||||
String suffix = metaData.getSuffix(MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
if (log()) {
|
||||
logMsg("#getUserChatSuffix: %s - %s - %s", user.getPlainDisplayName(), queryOptions.context(), suffix);
|
||||
}
|
||||
return Strings.nullToEmpty(suffix);
|
||||
return Strings.nullToEmpty(metaData.getSuffix(MetaCheckEvent.Origin.THIRD_PARTY_API));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -144,11 +134,7 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
PermissionHolder user = this.vaultPermission.lookupUser(uuid);
|
||||
QueryOptions queryOptions = this.vaultPermission.getQueryOptions(uuid, world);
|
||||
MetaCache metaData = user.getCachedData().getMetaData(queryOptions);
|
||||
String value = metaData.getMetaValue(key, MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
if (log()) {
|
||||
logMsg("#getUserMeta: %s - %s - %s - %s", user.getPlainDisplayName(), queryOptions.context(), key, value);
|
||||
}
|
||||
return value;
|
||||
return metaData.getMetaValue(key, MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -172,11 +158,7 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
}
|
||||
QueryOptions queryOptions = this.vaultPermission.getQueryOptions(null, world);
|
||||
MetaCache metaData = group.getCachedData().getMetaData(queryOptions);
|
||||
String prefix = metaData.getPrefix(MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
if (log()) {
|
||||
logMsg("#getGroupPrefix: %s - %s - %s", group.getName(), queryOptions.context(), prefix);
|
||||
}
|
||||
return Strings.nullToEmpty(prefix);
|
||||
return Strings.nullToEmpty(metaData.getPrefix(MetaCheckEvent.Origin.THIRD_PARTY_API));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -188,11 +170,7 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
}
|
||||
QueryOptions queryOptions = this.vaultPermission.getQueryOptions(null, world);
|
||||
MetaCache metaData = group.getCachedData().getMetaData(queryOptions);
|
||||
String suffix = metaData.getSuffix(MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
if (log()) {
|
||||
logMsg("#getGroupSuffix: %s - %s - %s", group.getName(), queryOptions.context(), suffix);
|
||||
}
|
||||
return Strings.nullToEmpty(suffix);
|
||||
return Strings.nullToEmpty(metaData.getSuffix(MetaCheckEvent.Origin.THIRD_PARTY_API));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -225,11 +203,7 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
}
|
||||
QueryOptions queryOptions = this.vaultPermission.getQueryOptions(null, world);
|
||||
MetaCache metaData = group.getCachedData().getMetaData(queryOptions);
|
||||
String value = metaData.getMetaValue(key, MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
if (log()) {
|
||||
logMsg("#getGroupMeta: %s - %s - %s - %s", group.getName(), queryOptions.context(), key, value);
|
||||
}
|
||||
return value;
|
||||
return metaData.getMetaValue(key, MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -249,22 +223,7 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
return this.plugin.getGroupManager().getByDisplayName(name);
|
||||
}
|
||||
|
||||
// logging
|
||||
private boolean log() {
|
||||
return this.plugin.getConfiguration().get(ConfigKeys.VAULT_DEBUG);
|
||||
}
|
||||
private void logMsg(String format, Object... args) {
|
||||
this.plugin.getLogger().info("[VAULT-CHAT] " + String.format(format, args)
|
||||
.replace(TextUtils.SECTION_CHAR, '$')
|
||||
.replace(TextUtils.AMPERSAND_CHAR, '$')
|
||||
);
|
||||
}
|
||||
|
||||
private void setChatMeta(PermissionHolder holder, ChatMetaType type, String value, String world) {
|
||||
if (log()) {
|
||||
logMsg("#setChatMeta: %s - %s - %s - %s", holder.getPlainDisplayName(), type, value, world);
|
||||
}
|
||||
|
||||
// remove all prefixes/suffixes directly set on the user/group
|
||||
holder.removeIf(DataType.NORMAL, null, type.nodeType()::matches, false);
|
||||
|
||||
@ -288,10 +247,6 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
}
|
||||
|
||||
private void setMeta(PermissionHolder holder, String key, Object value, String world) {
|
||||
if (log()) {
|
||||
logMsg("#setMeta: %s - %s - %s - %s", holder.getPlainDisplayName(), key, value, world);
|
||||
}
|
||||
|
||||
holder.removeIf(DataType.NORMAL, null, NodeType.META.predicate(n -> n.getMetaKey().equals(key)), false);
|
||||
|
||||
if (value == null) {
|
||||
|
@ -40,7 +40,6 @@ import me.lucko.luckperms.common.model.User;
|
||||
import me.lucko.luckperms.common.model.manager.group.GroupManager;
|
||||
import me.lucko.luckperms.common.node.factory.NodeBuilders;
|
||||
import me.lucko.luckperms.common.node.types.Inheritance;
|
||||
import me.lucko.luckperms.common.util.TextUtils;
|
||||
import me.lucko.luckperms.common.util.Uuids;
|
||||
import me.lucko.luckperms.common.verbose.event.MetaCheckEvent;
|
||||
import me.lucko.luckperms.common.verbose.event.PermissionCheckEvent;
|
||||
@ -58,7 +57,6 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
@ -195,9 +193,6 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
PermissionCache permissionData = user.getCachedData().getPermissionData(queryOptions);
|
||||
|
||||
Tristate result = permissionData.checkPermission(permission, PermissionCheckEvent.Origin.THIRD_PARTY_API).result();
|
||||
if (log()) {
|
||||
logMsg("#userHasPermission: %s - %s - %s - %s", user.getPlainDisplayName(), queryOptions.context(), permission, result);
|
||||
}
|
||||
return result != Tristate.UNDEFINED ? result.asBoolean() : org.bukkit.permissions.Permission.DEFAULT_PERMISSION.getValue(queryOptions.option(BukkitContextManager.OP_OPTION).orElse(false));
|
||||
}
|
||||
|
||||
@ -235,9 +230,6 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
PermissionCache permissionData = user.getCachedData().getPermissionData(queryOptions);
|
||||
|
||||
TristateResult result = permissionData.checkPermission(Inheritance.key(rewriteGroupName(group)), PermissionCheckEvent.Origin.THIRD_PARTY_API);
|
||||
if (log()) {
|
||||
logMsg("#userInGroup: %s - %s - %s - %s", user.getPlainDisplayName(), queryOptions.context(), group, result);
|
||||
}
|
||||
return result.processorClass() == MapProcessor.class && result.result().asBoolean();
|
||||
}
|
||||
|
||||
@ -262,7 +254,7 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
PermissionHolder user = lookupUser(uuid);
|
||||
ContextSet contexts = getQueryOptions(uuid, world).context();
|
||||
|
||||
String[] groups = user.normalData().immutableInheritance().values().stream()
|
||||
return user.normalData().immutableInheritance().values().stream()
|
||||
.filter(n -> n.getContexts().isSatisfiedBy(contexts))
|
||||
.map(n -> {
|
||||
Group group = this.plugin.getGroupManager().getIfLoaded(n.getGroupName());
|
||||
@ -272,12 +264,6 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
return n.getGroupName();
|
||||
})
|
||||
.toArray(String[]::new);
|
||||
|
||||
if (log()) {
|
||||
logMsg("#userGetGroups: %s - %s - %s", user.getPlainDisplayName(), contexts, Arrays.toString(groups));
|
||||
}
|
||||
|
||||
return groups;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -295,11 +281,6 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
}
|
||||
|
||||
this.plugin.getVerboseHandler().offerMetaCheckEvent(MetaCheckEvent.Origin.THIRD_PARTY_API, user.getPlainDisplayName(), QueryOptions.defaultContextualOptions(), "primarygroup", value);
|
||||
|
||||
if (log()) {
|
||||
logMsg("#userGetPrimaryGroup: %s - %s - %s", user.getPlainDisplayName(), world, value);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -315,12 +296,7 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
|
||||
QueryOptions queryOptions = getQueryOptions(null, world);
|
||||
PermissionCache permissionData = group.getCachedData().getPermissionData(queryOptions);
|
||||
|
||||
Tristate result = permissionData.checkPermission(permission, PermissionCheckEvent.Origin.THIRD_PARTY_API).result();
|
||||
if (log()) {
|
||||
logMsg("#groupHasPermission: %s - %s - %s - %s", group.getName(), queryOptions.context(), permission, result);
|
||||
}
|
||||
return result.asBoolean();
|
||||
return permissionData.checkPermission(permission, PermissionCheckEvent.Origin.THIRD_PARTY_API).result().asBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -367,17 +343,6 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
return name;
|
||||
}
|
||||
|
||||
// logging
|
||||
private boolean log() {
|
||||
return this.plugin.getConfiguration().get(ConfigKeys.VAULT_DEBUG);
|
||||
}
|
||||
private void logMsg(String format, Object... args) {
|
||||
this.plugin.getLogger().info("[VAULT-PERMS] " + String.format(format, args)
|
||||
.replace(TextUtils.SECTION_CHAR, '$')
|
||||
.replace(TextUtils.AMPERSAND_CHAR, '$')
|
||||
);
|
||||
}
|
||||
|
||||
// utility method for getting a contexts instance for a given vault lookup.
|
||||
QueryOptions getQueryOptions(@Nullable UUID uuid, @Nullable String world) {
|
||||
MutableContextSet context;
|
||||
@ -433,10 +398,6 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
Objects.requireNonNull(permission, "permission is null");
|
||||
Preconditions.checkArgument(!permission.isEmpty(), "permission is an empty string");
|
||||
|
||||
if (log()) {
|
||||
logMsg("#holderAddPermission: %s - %s - %s", holder.getPlainDisplayName(), permission, world);
|
||||
}
|
||||
|
||||
if (world == null) {
|
||||
world = "global";
|
||||
}
|
||||
@ -451,10 +412,6 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
Objects.requireNonNull(permission, "permission is null");
|
||||
Preconditions.checkArgument(!permission.isEmpty(), "permission is an empty string");
|
||||
|
||||
if (log()) {
|
||||
logMsg("#holderRemovePermission: %s - %s - %s", holder.getPlainDisplayName(), permission, world);
|
||||
}
|
||||
|
||||
if (world == null) {
|
||||
world = "global";
|
||||
}
|
||||
|
@ -544,9 +544,6 @@ vault-include-global: true
|
||||
# If Vault operations should ignore any world arguments if supplied.
|
||||
vault-ignore-world: false
|
||||
|
||||
# If LuckPerms should print debugging info to console when a plugin uses a Vault function
|
||||
vault-debug: false
|
||||
|
||||
# +----------------------------------------------------------------------------------------------+ #
|
||||
# | Miscellaneous (and rarely used) settings | #
|
||||
# +----------------------------------------------------------------------------------------------+ #
|
||||
|
@ -25,10 +25,10 @@
|
||||
|
||||
package me.lucko.luckperms.common.cacheddata.type;
|
||||
|
||||
import com.google.common.collect.ForwardingMap;
|
||||
import com.google.common.collect.ImmutableListMultimap;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.ImmutableSortedMap;
|
||||
import com.google.common.collect.ListMultimap;
|
||||
import com.google.common.collect.Multimaps;
|
||||
|
||||
import me.lucko.luckperms.common.cacheddata.CacheMetadata;
|
||||
@ -64,7 +64,7 @@ public class MetaCache implements CachedMetaData {
|
||||
*/
|
||||
private final CacheMetadata metadata;
|
||||
|
||||
private ListMultimap<String, String> meta = ImmutableListMultimap.of();
|
||||
private Map<String, List<String>> meta = ImmutableMap.of();
|
||||
private Map<String, String> flattenedMeta = ImmutableMap.of();
|
||||
private SortedMap<Integer, String> prefixes = ImmutableSortedMap.of();
|
||||
private SortedMap<Integer, String> suffixes = ImmutableSortedMap.of();
|
||||
@ -79,21 +79,18 @@ public class MetaCache implements CachedMetaData {
|
||||
public void loadMeta(MetaAccumulator meta) {
|
||||
meta.complete();
|
||||
|
||||
this.meta = ImmutableListMultimap.copyOf(meta.getMeta());
|
||||
this.meta = Multimaps.asMap(ImmutableListMultimap.copyOf(meta.getMeta()));
|
||||
|
||||
//noinspection unchecked
|
||||
Map<String, List<String>> metaMap = (Map) this.meta.asMap();
|
||||
ImmutableMap.Builder<String, String> metaMapBuilder = ImmutableMap.builder();
|
||||
|
||||
for (Map.Entry<String, List<String>> e : metaMap.entrySet()) {
|
||||
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
|
||||
for (Map.Entry<String, List<String>> e : this.meta.entrySet()) {
|
||||
if (e.getValue().isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// take the value which was accumulated first
|
||||
metaMapBuilder.put(e.getKey(), e.getValue().get(0));
|
||||
builder.put(e.getKey(), e.getValue().get(0));
|
||||
}
|
||||
this.flattenedMeta = metaMapBuilder.build();
|
||||
this.flattenedMeta = builder.build();
|
||||
|
||||
this.prefixes = ImmutableSortedMap.copyOfSorted(meta.getPrefixes());
|
||||
this.suffixes = ImmutableSortedMap.copyOfSorted(meta.getSuffixes());
|
||||
@ -149,9 +146,13 @@ public class MetaCache implements CachedMetaData {
|
||||
return getSuffix(MetaCheckEvent.Origin.LUCKPERMS_API);
|
||||
}
|
||||
|
||||
public Map<String, List<String>> getMeta(MetaCheckEvent.Origin origin) {
|
||||
return new MonitoredMetaMap(origin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull Map<String, List<String>> getMeta() {
|
||||
return Multimaps.asMap(this.meta);
|
||||
return getMeta(MetaCheckEvent.Origin.LUCKPERMS_API);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -179,4 +180,33 @@ public class MetaCache implements CachedMetaData {
|
||||
return this.queryOptions;
|
||||
}
|
||||
|
||||
private final class MonitoredMetaMap extends ForwardingMap<String, List<String>> {
|
||||
private final MetaCheckEvent.Origin origin;
|
||||
|
||||
MonitoredMetaMap(MetaCheckEvent.Origin origin) {
|
||||
this.origin = origin;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, List<String>> delegate() {
|
||||
return MetaCache.this.meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> get(Object k) {
|
||||
if (k == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String key = (String) k;
|
||||
List<String> values = super.get(key);
|
||||
|
||||
// log this meta lookup to the verbose handler
|
||||
VerboseHandler verboseHandler = MetaCache.this.metadata.getParentContainer().getPlugin().getVerboseHandler();
|
||||
verboseHandler.offerMetaCheckEvent(this.origin, MetaCache.this.metadata.getObjectName(), MetaCache.this.metadata.getQueryOptions(), key, String.valueOf(values));
|
||||
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -122,7 +122,7 @@ public class UserInfo extends SubCommand<User> {
|
||||
suffix = "&f\"" + sussexValue + "&f\"";
|
||||
}
|
||||
|
||||
Map<String, List<String>> metaMap = data.getMeta();
|
||||
Map<String, List<String>> metaMap = data.getMeta(MetaCheckEvent.Origin.INTERNAL);
|
||||
if (!metaMap.isEmpty()) {
|
||||
meta = metaMap.entrySet().stream()
|
||||
.flatMap(entry -> entry.getValue().stream().map(value -> Maps.immutableEntry(entry.getKey(), value)))
|
||||
|
@ -397,11 +397,6 @@ public final class ConfigKeys {
|
||||
*/
|
||||
public static final ConfigKey<Boolean> VAULT_IGNORE_WORLD = booleanKey("vault-ignore-world", false);
|
||||
|
||||
/**
|
||||
* If Vault debug mode is enabled
|
||||
*/
|
||||
public static final ConfigKey<Boolean> VAULT_DEBUG = booleanKey("vault-debug", false);
|
||||
|
||||
/**
|
||||
* The world rewrites map
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user