Skip to content

CommandWatcher

AlphaHelix edited this page Aug 25, 2017 · 2 revisions

How to use the CommandWatcher?

For the CommandWatcher to work, you will need to pass the given arguments.

You can then add in some expected Arguments and listen for those.

Here is a little example from my TabTags plugin.

CommandWatcher setOwnC = new CommandWatcher(args); // /tag set <name>
        CommandWatcher setOtherC = new CommandWatcher(args); // /tag set <name> <player>
        CommandWatcher resetC = new CommandWatcher(args); // /tag reset
        CommandWatcher resetOtherC = new CommandWatcher(args); // /tag reset <player>

        StringArgument set = new StringArgument();
        StringArgument name = new StringArgument();
        StringArgument reset = new StringArgument();
        PlayerArgument player = new PlayerArgument();

        setOwnC.addArguments(set, name);
        setOtherC.addArguments(set, name, player);
        resetC.addArguments(reset);
        resetOtherC.addArguments(reset, player);

        if (setOwnC.isSame()) {
            if (p.hasPermission("tabtags.set.own") || p.hasPermission("tabtags.admin")) {
                nameCache.put(p.getUniqueId(), p.getPlayerListName());
                p.setPlayerListName(name.fromArgument().replace("&", "§"));
            }
            return true;
        } else if (setOtherC.isSame()) {
            if (p.hasPermission("tabtags.set.others") || p.hasPermission("tabtags.admin")) {
                nameCache.put(p.getUniqueId(), player.fromArgument().getPlayerListName());
                player.fromArgument().setPlayerListName(name.fromArgument().replace("&", "§"));
            }
            return true;
        } else if (resetC.isSame()) {
            if (p.hasPermission("tabtags.reset.own") || p.hasPermission("tabtags.admin")) {
                p.setPlayerListName(nameCache.get(p.getUniqueId()));
                nameCache.remove(p.getUniqueId());
            }
            return true;
        } else if (resetOtherC.isSame()) {
            if (p.hasPermission("tabtags.reset.others") || p.hasPermission("tabtags.admin")) {
                player.fromArgument().setPlayerListName(nameCache.get(player.fromArgument().getUniqueId()));
                nameCache.remove(player.fromArgument().getUniqueId());
            }
            return true;
        }

Clone this wiki locally