All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xyz.nickr.telepad.command.HelpCommand Maven / Gradle / Ivy

There is a newer version: 1.1.7
Show newest version
package xyz.nickr.telepad.command;

import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
import pro.zackpollard.telegrambot.api.chat.message.Message;
import pro.zackpollard.telegrambot.api.chat.message.send.ParseMode;
import xyz.nickr.telepad.TelepadBot;
import xyz.nickr.telepad.util.PaginatedData;

/**
 * @author Nick Robson
 */
public class HelpCommand extends Command {

    public HelpCommand() {
        super("help", "start");
        this.setHelp("retrieves help information for each command");
    }

    @Override
    public boolean hasPermission(TelepadBot bot, Message message) {
        return true;
    }

    @Override
    public void exec(TelepadBot bot, Message message, String[] args) {
        List commands = new LinkedList<>(bot.getCommandManager().getCommands());
        commands.removeIf(c -> !c.hasPermission(bot, message));
        commands.sort(Comparator.comparing(a -> a.getNames()[0]));

        List lines = commands.stream()
                .map(c -> "/" + String.join(", /", c.getNames()) + " " + c.getUsage() + "\n  - " + c.getHelp())
                .collect(Collectors.toList());

        PaginatedData paginatedData = new PaginatedData(lines, 5);
        paginatedData.setParseMode(ParseMode.NONE);
        paginatedData.send(0, message);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy