From 242993763c22b2d20e181422628d8ba01a6311f4 Mon Sep 17 00:00:00 2001 From: Luck Date: Sun, 29 Dec 2019 17:37:08 +0000 Subject: [PATCH] Remove vault-debug option This is now covered pretty much entirely by verbose data. --- .../bukkit/vault/LuckPermsVaultChat.java | 57 ++----------------- .../vault/LuckPermsVaultPermission.java | 47 +-------------- bukkit/src/main/resources/config.yml | 3 - .../common/cacheddata/type/MetaCache.java | 52 +++++++++++++---- .../common/commands/user/UserInfo.java | 2 +- .../luckperms/common/config/ConfigKeys.java | 5 -- 6 files changed, 50 insertions(+), 116 deletions(-) diff --git a/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultChat.java b/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultChat.java index b07b4bfe9..e1f97581d 100644 --- a/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultChat.java +++ b/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultChat.java @@ -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) { diff --git a/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultPermission.java b/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultPermission.java index a80bb01d7..c92925ab7 100644 --- a/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultPermission.java +++ b/bukkit/src/main/java/me/lucko/luckperms/bukkit/vault/LuckPermsVaultPermission.java @@ -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"; } diff --git a/bukkit/src/main/resources/config.yml b/bukkit/src/main/resources/config.yml index 58f490e15..ccd4889f0 100644 --- a/bukkit/src/main/resources/config.yml +++ b/bukkit/src/main/resources/config.yml @@ -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 | # # +----------------------------------------------------------------------------------------------+ # diff --git a/common/src/main/java/me/lucko/luckperms/common/cacheddata/type/MetaCache.java b/common/src/main/java/me/lucko/luckperms/common/cacheddata/type/MetaCache.java index d71c93fdb..b20da06fc 100644 --- a/common/src/main/java/me/lucko/luckperms/common/cacheddata/type/MetaCache.java +++ b/common/src/main/java/me/lucko/luckperms/common/cacheddata/type/MetaCache.java @@ -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 meta = ImmutableListMultimap.of(); + private Map> meta = ImmutableMap.of(); private Map flattenedMeta = ImmutableMap.of(); private SortedMap prefixes = ImmutableSortedMap.of(); private SortedMap 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> metaMap = (Map) this.meta.asMap(); - ImmutableMap.Builder metaMapBuilder = ImmutableMap.builder(); - - for (Map.Entry> e : metaMap.entrySet()) { + ImmutableMap.Builder builder = ImmutableMap.builder(); + for (Map.Entry> 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> getMeta(MetaCheckEvent.Origin origin) { + return new MonitoredMetaMap(origin); + } + @Override public @NonNull Map> 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> { + private final MetaCheckEvent.Origin origin; + + MonitoredMetaMap(MetaCheckEvent.Origin origin) { + this.origin = origin; + } + + @Override + protected Map> delegate() { + return MetaCache.this.meta; + } + + @Override + public List get(Object k) { + if (k == null) { + return null; + } + + String key = (String) k; + List 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; + } + } + } diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/user/UserInfo.java b/common/src/main/java/me/lucko/luckperms/common/commands/user/UserInfo.java index c8450fdc5..5b6abe9bc 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/user/UserInfo.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/user/UserInfo.java @@ -122,7 +122,7 @@ public class UserInfo extends SubCommand { suffix = "&f\"" + sussexValue + "&f\""; } - Map> metaMap = data.getMeta(); + Map> 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))) diff --git a/common/src/main/java/me/lucko/luckperms/common/config/ConfigKeys.java b/common/src/main/java/me/lucko/luckperms/common/config/ConfigKeys.java index c2f87e4e2..828257a7e 100644 --- a/common/src/main/java/me/lucko/luckperms/common/config/ConfigKeys.java +++ b/common/src/main/java/me/lucko/luckperms/common/config/ConfigKeys.java @@ -397,11 +397,6 @@ public final class ConfigKeys { */ public static final ConfigKey VAULT_IGNORE_WORLD = booleanKey("vault-ignore-world", false); - /** - * If Vault debug mode is enabled - */ - public static final ConfigKey VAULT_DEBUG = booleanKey("vault-debug", false); - /** * The world rewrites map */