mirror of
https://github.com/lucko/LuckPerms.git
synced 2025-08-31 01:59:48 +02:00
Retain cause node information for cached permission/meta data (#3250)
This commit is contained in:
@@ -52,7 +52,7 @@ public class BukkitCalculatorFactory implements CalculatorFactory {
|
||||
|
||||
@Override
|
||||
public PermissionCalculator build(QueryOptions queryOptions, CacheMetadata metadata) {
|
||||
List<PermissionProcessor> processors = new ArrayList<>(7);
|
||||
List<PermissionProcessor> processors = new ArrayList<>(8);
|
||||
|
||||
processors.add(new DirectProcessor());
|
||||
|
||||
@@ -75,7 +75,8 @@ public class BukkitCalculatorFactory implements CalculatorFactory {
|
||||
boolean op = queryOptions.option(BukkitContextManager.OP_OPTION).orElse(false);
|
||||
if (metadata.getHolderType() == HolderType.USER && this.plugin.getConfiguration().get(ConfigKeys.APPLY_BUKKIT_DEFAULT_PERMISSIONS)) {
|
||||
boolean overrideWildcards = this.plugin.getConfiguration().get(ConfigKeys.APPLY_DEFAULT_NEGATIONS_BEFORE_WILDCARDS);
|
||||
processors.add(new DefaultsProcessor(this.plugin, overrideWildcards, op));
|
||||
processors.add(new DefaultPermissionMapProcessor(this.plugin, op));
|
||||
processors.add(new PermissionMapProcessor(this.plugin, overrideWildcards, op));
|
||||
}
|
||||
|
||||
if (op) {
|
||||
|
@@ -26,9 +26,9 @@
|
||||
package me.lucko.luckperms.bukkit.calculator;
|
||||
|
||||
import me.lucko.luckperms.bukkit.LPBukkitPlugin;
|
||||
import me.lucko.luckperms.common.calculator.processor.AbstractPermissionProcessor;
|
||||
import me.lucko.luckperms.common.cacheddata.result.TristateResult;
|
||||
import me.lucko.luckperms.common.calculator.processor.AbstractSourceBasedProcessor;
|
||||
import me.lucko.luckperms.common.calculator.processor.PermissionProcessor;
|
||||
import me.lucko.luckperms.common.calculator.result.TristateResult;
|
||||
|
||||
import net.luckperms.api.util.Tristate;
|
||||
|
||||
@@ -40,7 +40,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
/**
|
||||
* Permission Processor for Bukkits "child" permission system.
|
||||
*/
|
||||
public class ChildProcessor extends AbstractPermissionProcessor implements PermissionProcessor {
|
||||
public class ChildProcessor extends AbstractSourceBasedProcessor implements PermissionProcessor {
|
||||
private static final TristateResult.Factory RESULT_FACTORY = new TristateResult.Factory(ChildProcessor.class);
|
||||
|
||||
private final LPBukkitPlugin plugin;
|
||||
@@ -62,10 +62,10 @@ public class ChildProcessor extends AbstractPermissionProcessor implements Permi
|
||||
@Override
|
||||
public void refresh() {
|
||||
Map<String, TristateResult> childPermissions = new HashMap<>();
|
||||
this.sourceMap.forEach((key, value) -> {
|
||||
Map<String, Boolean> children = this.plugin.getPermissionMap().getChildPermissions(key, value);
|
||||
this.sourceMap.forEach((key, node) -> {
|
||||
Map<String, Boolean> children = this.plugin.getPermissionMap().getChildPermissions(key, node.getValue());
|
||||
children.forEach((childKey, childValue) -> {
|
||||
childPermissions.put(childKey, RESULT_FACTORY.result(Tristate.of(childValue), "parent: " + key));
|
||||
childPermissions.put(childKey, RESULT_FACTORY.resultWithOverride(node, Tristate.of(childValue)));
|
||||
});
|
||||
});
|
||||
this.childPermissions = childPermissions;
|
||||
|
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* This file is part of LuckPerms, licensed under the MIT License.
|
||||
*
|
||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
||||
* Copyright (c) contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package me.lucko.luckperms.bukkit.calculator;
|
||||
|
||||
import me.lucko.luckperms.bukkit.LPBukkitPlugin;
|
||||
import me.lucko.luckperms.common.cacheddata.result.TristateResult;
|
||||
import me.lucko.luckperms.common.calculator.processor.AbstractPermissionProcessor;
|
||||
import me.lucko.luckperms.common.calculator.processor.PermissionProcessor;
|
||||
|
||||
import net.luckperms.api.util.Tristate;
|
||||
|
||||
/**
|
||||
* Permission Processor for Bukkits "default" permission system.
|
||||
*/
|
||||
public class DefaultPermissionMapProcessor extends AbstractPermissionProcessor implements PermissionProcessor {
|
||||
private static final TristateResult.Factory RESULT_FACTORY = new TristateResult.Factory(DefaultPermissionMapProcessor.class);
|
||||
|
||||
private final LPBukkitPlugin plugin;
|
||||
private final boolean isOp;
|
||||
|
||||
public DefaultPermissionMapProcessor(LPBukkitPlugin plugin, boolean isOp) {
|
||||
this.plugin = plugin;
|
||||
this.isOp = isOp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TristateResult hasPermission(String permission) {
|
||||
Tristate t = this.plugin.getDefaultPermissionMap().lookupDefaultPermission(permission, this.isOp);
|
||||
if (t != Tristate.UNDEFINED) {
|
||||
return RESULT_FACTORY.result(t);
|
||||
}
|
||||
|
||||
return TristateResult.UNDEFINED;
|
||||
}
|
||||
}
|
@@ -1,90 +0,0 @@
|
||||
/*
|
||||
* This file is part of LuckPerms, licensed under the MIT License.
|
||||
*
|
||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
||||
* Copyright (c) contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package me.lucko.luckperms.bukkit.calculator;
|
||||
|
||||
import me.lucko.luckperms.bukkit.LPBukkitPlugin;
|
||||
import me.lucko.luckperms.common.calculator.processor.PermissionProcessor;
|
||||
import me.lucko.luckperms.common.calculator.processor.SpongeWildcardProcessor;
|
||||
import me.lucko.luckperms.common.calculator.processor.WildcardProcessor;
|
||||
import me.lucko.luckperms.common.calculator.result.TristateResult;
|
||||
|
||||
import net.luckperms.api.util.Tristate;
|
||||
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
|
||||
/**
|
||||
* Permission Processor for Bukkits "default" permission system.
|
||||
*/
|
||||
public class DefaultsProcessor implements PermissionProcessor {
|
||||
private static final TristateResult.Factory DEFAULT_PERMISSION_MAP_RESULT_FACTORY = new TristateResult.Factory(DefaultsProcessor.class, "default permission map");
|
||||
private static final TristateResult.Factory PERMISSION_MAP_RESULT_FACTORY = new TristateResult.Factory(DefaultsProcessor.class, "permission map");
|
||||
|
||||
private final LPBukkitPlugin plugin;
|
||||
private final boolean overrideWildcards;
|
||||
private final boolean isOp;
|
||||
|
||||
public DefaultsProcessor(LPBukkitPlugin plugin, boolean overrideWildcards, boolean isOp) {
|
||||
this.plugin = plugin;
|
||||
this.overrideWildcards = overrideWildcards;
|
||||
this.isOp = isOp;
|
||||
}
|
||||
|
||||
private boolean canOverrideWildcard(TristateResult prev) {
|
||||
return this.overrideWildcards &&
|
||||
(prev.processorClass() == WildcardProcessor.class || prev.processorClass() == SpongeWildcardProcessor.class) &&
|
||||
prev.result() == Tristate.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TristateResult hasPermission(TristateResult prev, String permission) {
|
||||
if (prev != TristateResult.UNDEFINED) {
|
||||
// Check to see if the result should be overridden
|
||||
if (canOverrideWildcard(prev)) {
|
||||
Permission defPerm = this.plugin.getPermissionMap().get(permission);
|
||||
if (defPerm != null) {
|
||||
PermissionDefault def = defPerm.getDefault();
|
||||
if (def == PermissionDefault.FALSE || this.isOp && def == PermissionDefault.NOT_OP) {
|
||||
return PERMISSION_MAP_RESULT_FACTORY.result(Tristate.FALSE, "permission map (overriding wildcard): " + prev.cause());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
||||
Tristate t = this.plugin.getDefaultPermissionMap().lookupDefaultPermission(permission, this.isOp);
|
||||
if (t != Tristate.UNDEFINED) {
|
||||
return DEFAULT_PERMISSION_MAP_RESULT_FACTORY.result(t);
|
||||
}
|
||||
|
||||
Permission defPerm = this.plugin.getPermissionMap().get(permission);
|
||||
if (defPerm == null) {
|
||||
return TristateResult.UNDEFINED;
|
||||
}
|
||||
return PERMISSION_MAP_RESULT_FACTORY.result(Tristate.of(defPerm.getDefault().getValue(this.isOp)));
|
||||
}
|
||||
}
|
@@ -25,8 +25,9 @@
|
||||
|
||||
package me.lucko.luckperms.bukkit.calculator;
|
||||
|
||||
import me.lucko.luckperms.common.cacheddata.result.TristateResult;
|
||||
import me.lucko.luckperms.common.calculator.processor.AbstractPermissionProcessor;
|
||||
import me.lucko.luckperms.common.calculator.processor.PermissionProcessor;
|
||||
import me.lucko.luckperms.common.calculator.result.TristateResult;
|
||||
|
||||
import net.luckperms.api.util.Tristate;
|
||||
|
||||
@@ -34,7 +35,7 @@ import net.luckperms.api.util.Tristate;
|
||||
* Permission Processor which is added for opped users, to simply return true if
|
||||
* no other processors match.
|
||||
*/
|
||||
public final class OpProcessor implements PermissionProcessor {
|
||||
public final class OpProcessor extends AbstractPermissionProcessor implements PermissionProcessor {
|
||||
private static final TristateResult TRUE_RESULT = new TristateResult.Factory(OpProcessor.class).result(Tristate.TRUE);
|
||||
|
||||
public static final OpProcessor INSTANCE = new OpProcessor();
|
||||
@@ -44,10 +45,7 @@ public final class OpProcessor implements PermissionProcessor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public TristateResult hasPermission(TristateResult prev, String permission) {
|
||||
if (prev != TristateResult.UNDEFINED) {
|
||||
return prev;
|
||||
}
|
||||
public TristateResult hasPermission(String permission) {
|
||||
return TRUE_RESULT;
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* This file is part of LuckPerms, licensed under the MIT License.
|
||||
*
|
||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
||||
* Copyright (c) contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package me.lucko.luckperms.bukkit.calculator;
|
||||
|
||||
import me.lucko.luckperms.bukkit.LPBukkitPlugin;
|
||||
import me.lucko.luckperms.common.cacheddata.result.TristateResult;
|
||||
import me.lucko.luckperms.common.calculator.processor.AbstractOverrideWildcardProcessor;
|
||||
import me.lucko.luckperms.common.calculator.processor.PermissionProcessor;
|
||||
|
||||
import net.luckperms.api.util.Tristate;
|
||||
|
||||
import org.bukkit.permissions.Permission;
|
||||
|
||||
/**
|
||||
* Permission Processor for Bukkits "default" permission system.
|
||||
*/
|
||||
public class PermissionMapProcessor extends AbstractOverrideWildcardProcessor implements PermissionProcessor {
|
||||
private static final TristateResult.Factory RESULT_FACTORY = new TristateResult.Factory(PermissionMapProcessor.class);
|
||||
|
||||
private final LPBukkitPlugin plugin;
|
||||
private final boolean isOp;
|
||||
|
||||
public PermissionMapProcessor(LPBukkitPlugin plugin, boolean overrideWildcards, boolean isOp) {
|
||||
super(overrideWildcards);
|
||||
this.plugin = plugin;
|
||||
this.isOp = isOp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TristateResult hasPermission(String permission) {
|
||||
Permission defPerm = this.plugin.getPermissionMap().get(permission);
|
||||
if (defPerm == null) {
|
||||
return TristateResult.UNDEFINED;
|
||||
}
|
||||
return RESULT_FACTORY.result(Tristate.of(defPerm.getDefault().getValue(this.isOp)));
|
||||
}
|
||||
}
|
@@ -29,13 +29,13 @@ import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
||||
import me.lucko.luckperms.bukkit.LPBukkitPlugin;
|
||||
import me.lucko.luckperms.bukkit.calculator.DefaultsProcessor;
|
||||
import me.lucko.luckperms.bukkit.calculator.OpProcessor;
|
||||
import me.lucko.luckperms.common.calculator.result.TristateResult;
|
||||
import me.lucko.luckperms.bukkit.calculator.PermissionMapProcessor;
|
||||
import me.lucko.luckperms.common.cacheddata.result.TristateResult;
|
||||
import me.lucko.luckperms.common.config.ConfigKeys;
|
||||
import me.lucko.luckperms.common.context.manager.QueryOptionsCache;
|
||||
import me.lucko.luckperms.common.model.User;
|
||||
import me.lucko.luckperms.common.verbose.event.PermissionCheckEvent;
|
||||
import me.lucko.luckperms.common.verbose.event.CheckOrigin;
|
||||
|
||||
import net.luckperms.api.query.QueryOptions;
|
||||
import net.luckperms.api.util.Tristate;
|
||||
@@ -143,13 +143,13 @@ public class LuckPermsPermissible extends PermissibleBase {
|
||||
}
|
||||
|
||||
QueryOptions queryOptions = this.queryOptionsSupplier.getQueryOptions();
|
||||
TristateResult result = this.user.getCachedData().getPermissionData(queryOptions).checkPermission(permission, PermissionCheckEvent.Origin.PLATFORM_LOOKUP_CHECK);
|
||||
TristateResult result = this.user.getCachedData().getPermissionData(queryOptions).checkPermission(permission, CheckOrigin.PLATFORM_API_HAS_PERMISSION_SET);
|
||||
if (result.result() == Tristate.UNDEFINED) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// ignore matches made from looking up in the permission map (replicate bukkit behaviour)
|
||||
if (result.processorClass() == DefaultsProcessor.class && "permission map".equals(result.cause())) {
|
||||
if (result.processorClass() == PermissionMapProcessor.class) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ public class LuckPermsPermissible extends PermissibleBase {
|
||||
}
|
||||
|
||||
QueryOptions queryOptions = this.queryOptionsSupplier.getQueryOptions();
|
||||
return this.user.getCachedData().getPermissionData(queryOptions).checkPermission(permission, PermissionCheckEvent.Origin.PLATFORM_PERMISSION_CHECK).result().asBoolean();
|
||||
return this.user.getCachedData().getPermissionData(queryOptions).checkPermission(permission, CheckOrigin.PLATFORM_API_HAS_PERMISSION).result().asBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -183,7 +183,7 @@ public class LuckPermsPermissible extends PermissibleBase {
|
||||
}
|
||||
|
||||
QueryOptions queryOptions = this.queryOptionsSupplier.getQueryOptions();
|
||||
TristateResult result = this.user.getCachedData().getPermissionData(queryOptions).checkPermission(permission.getName(), PermissionCheckEvent.Origin.PLATFORM_PERMISSION_CHECK);
|
||||
TristateResult result = this.user.getCachedData().getPermissionData(queryOptions).checkPermission(permission.getName(), CheckOrigin.PLATFORM_API_HAS_PERMISSION);
|
||||
|
||||
// override default op handling using the Permission class we have
|
||||
if (result.processorClass() == OpProcessor.class && this.plugin.getConfiguration().get(ConfigKeys.APPLY_BUKKIT_DEFAULT_PERMISSIONS)) {
|
||||
|
@@ -25,12 +25,12 @@
|
||||
|
||||
package me.lucko.luckperms.bukkit.inject.permissible;
|
||||
|
||||
import me.lucko.luckperms.common.calculator.result.TristateResult;
|
||||
import me.lucko.luckperms.common.cacheddata.result.TristateResult;
|
||||
import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
|
||||
import me.lucko.luckperms.common.query.QueryOptionsImpl;
|
||||
import me.lucko.luckperms.common.verbose.VerboseCheckTarget;
|
||||
import me.lucko.luckperms.common.verbose.VerboseHandler;
|
||||
import me.lucko.luckperms.common.verbose.event.PermissionCheckEvent;
|
||||
import me.lucko.luckperms.common.verbose.event.CheckOrigin;
|
||||
|
||||
import net.luckperms.api.util.Tristate;
|
||||
|
||||
@@ -69,8 +69,8 @@ public class MonitoredPermissibleBase extends PermissibleBase {
|
||||
this.initialised = true;
|
||||
}
|
||||
|
||||
private void logCheck(PermissionCheckEvent.Origin origin, String permission, boolean result) {
|
||||
this.plugin.getVerboseHandler().offerPermissionCheckEvent(origin, this.verboseCheckTarget, QueryOptionsImpl.DEFAULT_CONTEXTUAL, permission, TristateResult.of(Tristate.of(result)));
|
||||
private void logCheck(CheckOrigin origin, String permission, boolean result) {
|
||||
this.plugin.getVerboseHandler().offerPermissionCheckEvent(origin, this.verboseCheckTarget, QueryOptionsImpl.DEFAULT_CONTEXTUAL, permission, TristateResult.forMonitoredResult(Tristate.of(result)));
|
||||
this.plugin.getPermissionRegistry().offer(permission);
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ public class MonitoredPermissibleBase extends PermissibleBase {
|
||||
}
|
||||
|
||||
final boolean result = this.delegate.isPermissionSet(permission);
|
||||
logCheck(PermissionCheckEvent.Origin.PLATFORM_LOOKUP_CHECK, permission, result);
|
||||
logCheck(CheckOrigin.PLATFORM_API_HAS_PERMISSION_SET, permission, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ public class MonitoredPermissibleBase extends PermissibleBase {
|
||||
}
|
||||
|
||||
final boolean result = this.delegate.isPermissionSet(permission);
|
||||
logCheck(PermissionCheckEvent.Origin.PLATFORM_LOOKUP_CHECK, permission.getName(), result);
|
||||
logCheck(CheckOrigin.PLATFORM_API_HAS_PERMISSION_SET, permission.getName(), result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public class MonitoredPermissibleBase extends PermissibleBase {
|
||||
}
|
||||
|
||||
final boolean result = this.delegate.hasPermission(permission);
|
||||
logCheck(PermissionCheckEvent.Origin.PLATFORM_PERMISSION_CHECK, permission, result);
|
||||
logCheck(CheckOrigin.PLATFORM_API_HAS_PERMISSION, permission, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ public class MonitoredPermissibleBase extends PermissibleBase {
|
||||
}
|
||||
|
||||
final boolean result = this.delegate.hasPermission(permission);
|
||||
logCheck(PermissionCheckEvent.Origin.PLATFORM_PERMISSION_CHECK, permission.getName(), result);
|
||||
logCheck(CheckOrigin.PLATFORM_API_HAS_PERMISSION, permission.getName(), result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@@ -30,6 +30,7 @@ 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.cacheddata.type.MonitoredMetaCache;
|
||||
import me.lucko.luckperms.common.context.ImmutableContextSetImpl;
|
||||
import me.lucko.luckperms.common.model.Group;
|
||||
import me.lucko.luckperms.common.model.PermissionHolder;
|
||||
@@ -37,7 +38,7 @@ 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.query.QueryOptionsImpl;
|
||||
import me.lucko.luckperms.common.verbose.event.MetaCheckEvent;
|
||||
import me.lucko.luckperms.common.verbose.event.CheckOrigin;
|
||||
|
||||
import net.luckperms.api.context.DefaultContextKeys;
|
||||
import net.luckperms.api.context.ImmutableContextSet;
|
||||
@@ -97,7 +98,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);
|
||||
return Strings.nullToEmpty(metaData.getPrefix(MetaCheckEvent.Origin.THIRD_PARTY_API));
|
||||
return Strings.nullToEmpty(metaData.getPrefix(CheckOrigin.THIRD_PARTY_API).result());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -107,7 +108,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);
|
||||
return Strings.nullToEmpty(metaData.getSuffix(MetaCheckEvent.Origin.THIRD_PARTY_API));
|
||||
return Strings.nullToEmpty(metaData.getSuffix(CheckOrigin.THIRD_PARTY_API).result());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -139,8 +140,8 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
|
||||
PermissionHolder user = this.vaultPermission.lookupUser(uuid);
|
||||
QueryOptions queryOptions = this.vaultPermission.getQueryOptions(uuid, world);
|
||||
MetaCache metaData = user.getCachedData().getMetaData(queryOptions);
|
||||
return metaData.getMetaValue(key, MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
MonitoredMetaCache metaData = user.getCachedData().getMetaData(queryOptions);
|
||||
return metaData.getMetaValue(key, CheckOrigin.THIRD_PARTY_API).result();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -158,21 +159,21 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
@Override
|
||||
public String getGroupChatPrefix(String world, String name) {
|
||||
Objects.requireNonNull(name, "name");
|
||||
MetaCache metaData = getGroupMetaCache(name, world);
|
||||
MonitoredMetaCache metaData = getGroupMetaCache(name, world);
|
||||
if (metaData == null) {
|
||||
return null;
|
||||
}
|
||||
return Strings.nullToEmpty(metaData.getPrefix(MetaCheckEvent.Origin.THIRD_PARTY_API));
|
||||
return Strings.nullToEmpty(metaData.getPrefix(CheckOrigin.THIRD_PARTY_API).result());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGroupChatSuffix(String world, String name) {
|
||||
Objects.requireNonNull(name, "name");
|
||||
MetaCache metaData = getGroupMetaCache(name, world);
|
||||
MonitoredMetaCache metaData = getGroupMetaCache(name, world);
|
||||
if (metaData == null) {
|
||||
return null;
|
||||
}
|
||||
return Strings.nullToEmpty(metaData.getSuffix(MetaCheckEvent.Origin.THIRD_PARTY_API));
|
||||
return Strings.nullToEmpty(metaData.getSuffix(CheckOrigin.THIRD_PARTY_API).result());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -199,11 +200,11 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
public String getGroupMeta(String world, String name, String key) {
|
||||
Objects.requireNonNull(name, "name");
|
||||
Objects.requireNonNull(key, "key");
|
||||
MetaCache metaData = getGroupMetaCache(name, world);
|
||||
MonitoredMetaCache metaData = getGroupMetaCache(name, world);
|
||||
if (metaData == null) {
|
||||
return null;
|
||||
}
|
||||
return metaData.getMetaValue(key, MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
return metaData.getMetaValue(key, CheckOrigin.THIRD_PARTY_API).result();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -223,7 +224,7 @@ public class LuckPermsVaultChat extends AbstractVaultChat {
|
||||
return this.plugin.getGroupManager().getByDisplayName(name);
|
||||
}
|
||||
|
||||
private MetaCache getGroupMetaCache(String name, String world) {
|
||||
private MonitoredMetaCache getGroupMetaCache(String name, String world) {
|
||||
Group group = getGroup(name);
|
||||
if (group == null) {
|
||||
return null;
|
||||
|
@@ -29,10 +29,10 @@ import com.google.common.base.Preconditions;
|
||||
|
||||
import me.lucko.luckperms.bukkit.LPBukkitPlugin;
|
||||
import me.lucko.luckperms.bukkit.context.BukkitContextManager;
|
||||
import me.lucko.luckperms.common.cacheddata.type.MetaCache;
|
||||
import me.lucko.luckperms.common.cacheddata.result.TristateResult;
|
||||
import me.lucko.luckperms.common.cacheddata.type.MonitoredMetaCache;
|
||||
import me.lucko.luckperms.common.cacheddata.type.PermissionCache;
|
||||
import me.lucko.luckperms.common.calculator.processor.DirectProcessor;
|
||||
import me.lucko.luckperms.common.calculator.result.TristateResult;
|
||||
import me.lucko.luckperms.common.config.ConfigKeys;
|
||||
import me.lucko.luckperms.common.model.Group;
|
||||
import me.lucko.luckperms.common.model.HolderType;
|
||||
@@ -44,8 +44,7 @@ import me.lucko.luckperms.common.node.types.Inheritance;
|
||||
import me.lucko.luckperms.common.query.QueryOptionsImpl;
|
||||
import me.lucko.luckperms.common.util.UniqueIdType;
|
||||
import me.lucko.luckperms.common.util.Uuids;
|
||||
import me.lucko.luckperms.common.verbose.event.MetaCheckEvent;
|
||||
import me.lucko.luckperms.common.verbose.event.PermissionCheckEvent;
|
||||
import me.lucko.luckperms.common.verbose.event.CheckOrigin;
|
||||
|
||||
import net.luckperms.api.context.ContextSet;
|
||||
import net.luckperms.api.context.DefaultContextKeys;
|
||||
@@ -175,7 +174,7 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
PermissionHolder user = lookupUser(uuid);
|
||||
QueryOptions queryOptions = getQueryOptions(uuid, world);
|
||||
PermissionCache permissionData = user.getCachedData().getPermissionData(queryOptions);
|
||||
return permissionData.checkPermission(permission, PermissionCheckEvent.Origin.THIRD_PARTY_API).result().asBoolean();
|
||||
return permissionData.checkPermission(permission, CheckOrigin.THIRD_PARTY_API).result().asBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -211,7 +210,7 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
QueryOptions queryOptions = getQueryOptions(uuid, world);
|
||||
PermissionCache permissionData = user.getCachedData().getPermissionData(queryOptions);
|
||||
|
||||
TristateResult result = permissionData.checkPermission(Inheritance.key(rewriteGroupName(group)), PermissionCheckEvent.Origin.THIRD_PARTY_API);
|
||||
TristateResult result = permissionData.checkPermission(Inheritance.key(rewriteGroupName(group)), CheckOrigin.THIRD_PARTY_API);
|
||||
return result.processorClass() == DirectProcessor.class && result.result().asBoolean();
|
||||
}
|
||||
|
||||
@@ -254,8 +253,8 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
}
|
||||
|
||||
QueryOptions queryOptions = getQueryOptions(uuid, world);
|
||||
MetaCache metaData = user.getCachedData().getMetaData(queryOptions);
|
||||
String value = metaData.getPrimaryGroup(MetaCheckEvent.Origin.THIRD_PARTY_API);
|
||||
MonitoredMetaCache metaData = user.getCachedData().getMetaData(queryOptions);
|
||||
String value = metaData.getPrimaryGroup(CheckOrigin.THIRD_PARTY_API);
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -276,7 +275,7 @@ public class LuckPermsVaultPermission extends AbstractVaultPermission {
|
||||
|
||||
QueryOptions queryOptions = getQueryOptions(null, world);
|
||||
PermissionCache permissionData = group.getCachedData().getPermissionData(queryOptions);
|
||||
return permissionData.checkPermission(permission, PermissionCheckEvent.Origin.THIRD_PARTY_API).result().asBoolean();
|
||||
return permissionData.checkPermission(permission, CheckOrigin.THIRD_PARTY_API).result().asBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user