Search in sources :

Example 6 with Sender

use of me.lucko.luckperms.common.sender.Sender in project LuckPerms by lucko.

the class BukkitCommandExecutor method onCommand.

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    Sender lpSender = this.plugin.getSenderFactory().wrap(sender);
    List<String> arguments = stripQuotes(ARGUMENT_SPLITTER.splitToList(ARGUMENT_JOINER.join(args)));
    onCommand(lpSender, label, arguments);
    return true;
}
Also used : CommandSender(org.bukkit.command.CommandSender) Sender(me.lucko.luckperms.common.sender.Sender)

Example 7 with Sender

use of me.lucko.luckperms.common.sender.Sender in project LuckPerms by lucko.

the class BungeeCommandExecutor method onTabComplete.

@Override
public Iterable<String> onTabComplete(CommandSender sender, String[] args) {
    Sender lpSender = this.plugin.getSenderFactory().wrap(sender);
    List<String> arguments = CommandManager.stripQuotes(TAB_COMPLETE_ARGUMENT_SPLITTER.splitToList(ARGUMENT_JOINER.join(args)));
    return this.manager.onTabComplete(lpSender, arguments);
}
Also used : CommandSender(net.md_5.bungee.api.CommandSender) Sender(me.lucko.luckperms.common.sender.Sender)

Example 8 with Sender

use of me.lucko.luckperms.common.sender.Sender in project LuckPerms by lucko.

the class DebugCommand method execute.

@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, List<String> args, String label) {
    Message.DEBUG_START.send(sender);
    StringBuilder sb = new StringBuilder();
    sb.append("LuckPerms Debug Output\n\n\n");
    BiConsumer<String, JObject> builder = (name, content) -> {
        sb.append("-- ").append(name).append(" --\n");
        sb.append(GSON.toJson(content.toJson()));
        sb.append("\n\n");
    };
    builder.accept("platform.json", getPlatformData(plugin));
    builder.accept("storage.json", getStorageData(plugin));
    builder.accept("context.json", getContextData(plugin));
    builder.accept("players.json", getPlayersData(plugin));
    Pastebin.Paste paste = StandardPastebin.HASTEBIN.postPlain(sb.toString());
    Message.DEBUG_URL.send(sender);
    Component message = TextComponent.builder(paste.url()).color(TextColor.AQUA).clickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, String.valueOf(paste.url()))).hoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, TextComponent.of("Click to open the debugging data.").color(TextColor.GRAY))).build();
    sender.sendMessage(message);
    return CommandResult.SUCCESS;
}
Also used : LookupSetting(me.lucko.luckperms.api.LookupSetting) PermissionProcessor(me.lucko.luckperms.common.processors.PermissionProcessor) Contexts(me.lucko.luckperms.api.Contexts) MetaStackElement(me.lucko.luckperms.api.metastacking.MetaStackElement) LocaleManager(me.lucko.luckperms.common.locale.LocaleManager) SingleCommand(me.lucko.luckperms.common.command.abstraction.SingleCommand) HoverEvent(net.kyori.text.event.HoverEvent) GsonBuilder(com.google.gson.GsonBuilder) CommandSpec(me.lucko.luckperms.common.locale.command.CommandSpec) TextColor(net.kyori.text.format.TextColor) Gson(com.google.gson.Gson) ClickEvent(net.kyori.text.event.ClickEvent) Map(java.util.Map) Message(me.lucko.luckperms.common.locale.message.Message) BiConsumer(java.util.function.BiConsumer) LuckPermsPlugin(me.lucko.luckperms.common.plugin.LuckPermsPlugin) JObject(me.lucko.luckperms.common.utils.gson.JObject) Pastebin(me.lucko.luckperms.common.web.Pastebin) ProxiedContextCalculator(me.lucko.luckperms.common.contexts.ProxiedContextCalculator) Collection(java.util.Collection) PermissionCache(me.lucko.luckperms.common.caching.type.PermissionCache) Set(java.util.Set) Sender(me.lucko.luckperms.common.sender.Sender) UUID(java.util.UUID) StaticContextCalculator(me.lucko.luckperms.api.context.StaticContextCalculator) ContextSetJsonSerializer(me.lucko.luckperms.common.contexts.ContextSetJsonSerializer) TextComponent(net.kyori.text.TextComponent) JArray(me.lucko.luckperms.common.utils.gson.JArray) Collectors(java.util.stream.Collectors) CommandResult(me.lucko.luckperms.common.command.CommandResult) StandardPastebin(me.lucko.luckperms.common.web.StandardPastebin) MetaContexts(me.lucko.luckperms.api.caching.MetaContexts) MetaCache(me.lucko.luckperms.common.caching.type.MetaCache) CommandPermission(me.lucko.luckperms.common.command.access.CommandPermission) List(java.util.List) Component(net.kyori.text.Component) MetaStackDefinition(me.lucko.luckperms.api.metastacking.MetaStackDefinition) ContextCalculator(me.lucko.luckperms.api.context.ContextCalculator) User(me.lucko.luckperms.common.model.User) Predicates(me.lucko.luckperms.common.utils.Predicates) HoverEvent(net.kyori.text.event.HoverEvent) ClickEvent(net.kyori.text.event.ClickEvent) JObject(me.lucko.luckperms.common.utils.gson.JObject) TextComponent(net.kyori.text.TextComponent) Component(net.kyori.text.Component) Pastebin(me.lucko.luckperms.common.web.Pastebin) StandardPastebin(me.lucko.luckperms.common.web.StandardPastebin)

Example 9 with Sender

use of me.lucko.luckperms.common.sender.Sender in project LuckPerms by lucko.

the class GroupListMembers method sendResult.

private static <T> void sendResult(Sender sender, List<HeldPermission<T>> results, Function<T, String> lookupFunction, Message headerMessage, HolderType holderType, String label, int page) {
    results = new ArrayList<>(results);
    // we need a deterministic sort order
    // even though we're comparing uuids here in some cases - it doesn't matter
    // the import thing is that the order is the same each time the command is executed
    results.sort((o1, o2) -> {
        Comparable h1 = (Comparable) o1.getHolder();
        Comparable h2 = (Comparable) o2.getHolder();
        // noinspection unchecked
        return h1.compareTo(h2);
    });
    int pageIndex = page - 1;
    List<List<HeldPermission<T>>> pages = Iterators.divideIterable(results, 15);
    if (pageIndex < 0 || pageIndex >= pages.size()) {
        page = 1;
        pageIndex = 0;
    }
    List<HeldPermission<T>> content = pages.get(pageIndex);
    List<Map.Entry<String, HeldPermission<T>>> mappedContent = content.stream().map(hp -> Maps.immutableEntry(lookupFunction.apply(hp.getHolder()), hp)).collect(Collectors.toList());
    // send header
    headerMessage.send(sender, page, pages.size(), results.size());
    for (Map.Entry<String, HeldPermission<T>> ent : mappedContent) {
        String s = "&3> &b" + ent.getKey() + " " + getNodeExpiryString(ent.getValue().asNode()) + MessageUtils.getAppendableNodeContextString(ent.getValue().asNode());
        TextComponent message = TextUtils.fromLegacy(s, CommandManager.AMPERSAND_CHAR).toBuilder().applyDeep(makeFancy(ent.getKey(), holderType, label, ent.getValue())).build();
        sender.sendMessage(message);
    }
}
Also used : TextUtils(me.lucko.luckperms.common.utils.TextUtils) SubCommand(me.lucko.luckperms.common.command.abstraction.SubCommand) LocaleManager(me.lucko.luckperms.common.locale.LocaleManager) HoverEvent(net.kyori.text.event.HoverEvent) Function(java.util.function.Function) ArgumentParser(me.lucko.luckperms.common.command.utils.ArgumentParser) ArrayList(java.util.ArrayList) DateUtil(me.lucko.luckperms.common.utils.DateUtil) CommandSpec(me.lucko.luckperms.common.locale.command.CommandSpec) ClickEvent(net.kyori.text.event.ClickEvent) Map(java.util.Map) Message(me.lucko.luckperms.common.locale.message.Message) HolderType(me.lucko.luckperms.common.references.HolderType) LuckPermsPlugin(me.lucko.luckperms.common.plugin.LuckPermsPlugin) HeldPermission(me.lucko.luckperms.api.HeldPermission) Caffeine(com.github.benmanes.caffeine.cache.Caffeine) CommandManager(me.lucko.luckperms.common.command.CommandManager) LoadingCache(com.github.benmanes.caffeine.cache.LoadingCache) MessageUtils(me.lucko.luckperms.common.command.utils.MessageUtils) NodeFactory(me.lucko.luckperms.common.node.NodeFactory) Sender(me.lucko.luckperms.common.sender.Sender) UUID(java.util.UUID) Iterators(me.lucko.luckperms.common.utils.Iterators) TextComponent(net.kyori.text.TextComponent) Maps(com.google.common.collect.Maps) Collectors(java.util.stream.Collectors) CommandResult(me.lucko.luckperms.common.command.CommandResult) Consumer(java.util.function.Consumer) CommandPermission(me.lucko.luckperms.common.command.access.CommandPermission) List(java.util.List) BuildableComponent(net.kyori.text.BuildableComponent) Group(me.lucko.luckperms.common.model.Group) Node(me.lucko.luckperms.api.Node) ArgumentPermissions(me.lucko.luckperms.common.command.access.ArgumentPermissions) Predicates(me.lucko.luckperms.common.utils.Predicates) TextComponent(net.kyori.text.TextComponent) HeldPermission(me.lucko.luckperms.api.HeldPermission) ArrayList(java.util.ArrayList) List(java.util.List) Map(java.util.Map)

Example 10 with Sender

use of me.lucko.luckperms.common.sender.Sender in project LuckPerms by lucko.

the class HolderShowTracks method execute.

@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, T holder, List<String> args, String label) {
    if (ArgumentPermissions.checkViewPerms(plugin, sender, getPermission().get(), holder)) {
        Message.COMMAND_NO_PERMISSION.send(sender);
        return CommandResult.NO_PERMISSION;
    }
    try {
        plugin.getStorage().loadAllTracks().get();
    } catch (Exception e) {
        e.printStackTrace();
        Message.TRACKS_LOAD_ERROR.send(sender);
        return CommandResult.LOADING_ERROR;
    }
    List<Map.Entry<Track, String>> lines = new ArrayList<>();
    if (holder.getType().isUser()) {
        // if the holder is a user, we want to query parent groups for tracks
        Set<Node> nodes = holder.getEnduringNodes().values().stream().filter(Node::isGroupNode).filter(Node::getValuePrimitive).filter(Node::isPermanent).collect(Collectors.toSet());
        for (Node node : nodes) {
            String groupName = node.getGroupName();
            List<Track> tracks = plugin.getTrackManager().getAll().values().stream().filter(t -> t.containsGroup(groupName)).collect(Collectors.toList());
            for (Track t : tracks) {
                lines.add(Maps.immutableEntry(t, MessageUtils.getAppendableNodeContextString(node) + "\n" + MessageUtils.listToArrowSep(t.getGroups(), groupName)));
            }
        }
    } else {
        // otherwise, just lookup for the actual group
        String groupName = ((Group) holder).getName();
        List<Track> tracks = plugin.getTrackManager().getAll().values().stream().filter(t -> t.containsGroup(groupName)).collect(Collectors.toList());
        for (Track t : tracks) {
            lines.add(Maps.immutableEntry(t, MessageUtils.listToArrowSep(t.getGroups(), groupName)));
        }
    }
    if (lines.isEmpty()) {
        Message.LIST_TRACKS_EMPTY.send(sender, holder.getFriendlyName());
        return CommandResult.SUCCESS;
    }
    Message.LIST_TRACKS.send(sender, holder.getFriendlyName());
    for (Map.Entry<Track, String> line : lines) {
        Message.LIST_TRACKS_ENTRY.send(sender, line.getKey().getName(), line.getValue());
    }
    return CommandResult.SUCCESS;
}
Also used : PermissionHolder(me.lucko.luckperms.common.model.PermissionHolder) SubCommand(me.lucko.luckperms.common.command.abstraction.SubCommand) MessageUtils(me.lucko.luckperms.common.command.utils.MessageUtils) LocaleManager(me.lucko.luckperms.common.locale.LocaleManager) Set(java.util.Set) Sender(me.lucko.luckperms.common.sender.Sender) Maps(com.google.common.collect.Maps) Collectors(java.util.stream.Collectors) CommandResult(me.lucko.luckperms.common.command.CommandResult) ArrayList(java.util.ArrayList) CommandPermission(me.lucko.luckperms.common.command.access.CommandPermission) CommandSpec(me.lucko.luckperms.common.locale.command.CommandSpec) Track(me.lucko.luckperms.common.model.Track) List(java.util.List) Map(java.util.Map) Message(me.lucko.luckperms.common.locale.message.Message) Group(me.lucko.luckperms.common.model.Group) LuckPermsPlugin(me.lucko.luckperms.common.plugin.LuckPermsPlugin) Node(me.lucko.luckperms.api.Node) ArgumentPermissions(me.lucko.luckperms.common.command.access.ArgumentPermissions) Predicates(me.lucko.luckperms.common.utils.Predicates) Group(me.lucko.luckperms.common.model.Group) Node(me.lucko.luckperms.api.Node) ArrayList(java.util.ArrayList) Map(java.util.Map) Track(me.lucko.luckperms.common.model.Track)

Aggregations

Sender (me.lucko.luckperms.common.sender.Sender)19 List (java.util.List)12 LocaleManager (me.lucko.luckperms.common.locale.LocaleManager)12 LuckPermsPlugin (me.lucko.luckperms.common.plugin.LuckPermsPlugin)12 Collectors (java.util.stream.Collectors)11 CommandResult (me.lucko.luckperms.common.command.CommandResult)11 CommandPermission (me.lucko.luckperms.common.command.access.CommandPermission)11 CommandSpec (me.lucko.luckperms.common.locale.command.CommandSpec)11 Predicates (me.lucko.luckperms.common.utils.Predicates)11 Message (me.lucko.luckperms.common.locale.message.Message)10 MessageUtils (me.lucko.luckperms.common.command.utils.MessageUtils)8 Map (java.util.Map)7 ArrayList (java.util.ArrayList)6 Set (java.util.Set)6 UUID (java.util.UUID)6 Node (me.lucko.luckperms.api.Node)6 SubCommand (me.lucko.luckperms.common.command.abstraction.SubCommand)6 ArgumentParser (me.lucko.luckperms.common.command.utils.ArgumentParser)6 Group (me.lucko.luckperms.common.model.Group)6 NodeFactory (me.lucko.luckperms.common.node.NodeFactory)6