Files
TorchPlugins/LuckPerms.Torch/Impl/Calculator/LpCalculatorFactory.cs
2023-11-09 19:47:20 +07:00

34 lines
1.2 KiB
C#

using java.lang;
using java.util;
using LuckPerms.Torch.Extensions;
using me.lucko.luckperms.common.cacheddata;
using me.lucko.luckperms.common.calculator;
using me.lucko.luckperms.common.calculator.processor;
using me.lucko.luckperms.common.config;
using net.luckperms.api.query;
namespace LuckPerms.Torch.Impl.Calculator;
public class LpCalculatorFactory(LpTorchPlugin plugin) : CalculatorFactory
{
public PermissionCalculator build(QueryOptions qo, CacheMetadata cm)
{
List processors = new ArrayList(5);
processors.add(new DirectProcessor());
if (plugin.getConfiguration().GetBoolean(ConfigKeys.APPLYING_REGEX))
processors.add(new RegexProcessor());
if (plugin.getConfiguration().GetBoolean(ConfigKeys.APPLYING_WILDCARDS))
processors.add(new WildcardProcessor());
if (plugin.getConfiguration().GetBoolean(ConfigKeys.APPLYING_WILDCARDS_SPONGE))
processors.add(new SpongeWildcardProcessor());
if (((Boolean)qo.option(LpContextManager.ConsoleOption).orElse(Boolean.FALSE)).booleanValue())
processors.add(ConsoleProcessor.Instance); // TODO add config option to disable bypassing checks for console
return new(plugin, cm, processors);
}
}