Search in sources :

Example 1 with InheritanceInfo

use of me.lucko.luckperms.common.node.InheritanceInfo in project LuckPerms by lucko.

the class PermissionCheckInherits method execute.

@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, PermissionHolder holder, List<String> args, String label, CommandPermission permission) throws CommandException {
    if (ArgumentPermissions.checkViewPerms(plugin, sender, permission, holder)) {
        Message.COMMAND_NO_PERMISSION.send(sender);
        return CommandResult.NO_PERMISSION;
    }
    String node = ArgumentParser.parseString(0, args);
    MutableContextSet context = ArgumentParser.parseContext(1, args, plugin);
    InheritanceInfo result = holder.searchForInheritedMatch(NodeFactory.builder(node).withExtraContext(context).build(), StandardNodeEquality.IGNORE_VALUE_OR_IF_TEMPORARY);
    String location = result.getLocation().orElse(null);
    if (location == null || location.equalsIgnoreCase(holder.getObjectName())) {
        location = "self";
    }
    String s = MessageUtils.formatTristate(result.getResult());
    Message.CHECK_INHERITS_PERMISSION.send(sender, holder.getFriendlyName(), node, s, MessageUtils.contextSetToString(context), String.valueOf(location));
    return CommandResult.SUCCESS;
}
Also used : InheritanceInfo(me.lucko.luckperms.common.node.InheritanceInfo) MutableContextSet(me.lucko.luckperms.api.context.MutableContextSet)

Aggregations

MutableContextSet (me.lucko.luckperms.api.context.MutableContextSet)1 InheritanceInfo (me.lucko.luckperms.common.node.InheritanceInfo)1