CommandOperationContext<I> createCommandOperationContext(BaseCommand command, CommandIssuer issuer, String commandLabel, String[] args, boolean isAsync) { //noinspection unchecked return new CommandOperationContext<>( this, (I) issuer, command, commandLabel, args, isAsync ); }
public boolean hasAnnotation(Class<? extends Annotation> anno) { return getAnnotation(anno) != null; }
public static CommandIssuer getCurrentCommandIssuer() { CommandOperationContext context = commandOperationContext.get().peek(); return context != null ? context.getCommandIssuer() : null; }
/** @deprecated Unstable API */ @Deprecated @UnstableAPI public CommandHelp generateCommandHelp() { verifyUnstableAPI("help"); CommandOperationContext context = getCurrentCommandOperationContext(); if (context == null) { throw new IllegalStateException("This method can only be called as part of a command execution."); } String commandLabel = context.getCommandLabel(); return generateCommandHelp(context.getCommandIssuer(), this.obtainRootCommand(commandLabel)); }
private void validateConditions(String conditions, CommandOperationContext context) throws InvalidCommandArgument { if (conditions == null) { return; } conditions = this.manager.getCommandReplacements().replace(conditions); CommandIssuer issuer = context.getCommandIssuer(); for (String cond : ACFPatterns.PIPE.split(conditions)) { String[] split = ACFPatterns.COLON.split(cond, 2); String id = split[0].toLowerCase(); Condition<I> condition = this.conditions.get(id); if (condition == null) { RegisteredCommand cmd = context.getRegisteredCommand(); this.manager.log(LogLevel.ERROR, "Could not find command condition " + id + " for " + cmd.method.getName()); continue; } String config = split.length == 2 ? split[1] : null; //noinspection unchecked CC conditionContext = (CC) this.manager.createConditionContext(issuer, config); //noinspection unchecked condition.validateCondition(conditionContext); } }
public boolean isAsync() { return CommandManager.getCurrentCommandOperationContext().isAsync(); } }
public static CommandManager getCurrentCommandManager() { CommandOperationContext context = commandOperationContext.get().peek(); return context != null ? context.getCommandManager() : null; }
void validateConditions(CommandOperationContext context) throws InvalidCommandArgument { RegisteredCommand cmd = context.getRegisteredCommand(); validateConditions(cmd.conditions, context); validateConditions(cmd.scope, context); }
private void executeCommand(CommandOperationContext commandOperationContext, CommandIssuer issuer, String[] args, RegisteredCommand cmd) { if (cmd.hasPermission(issuer)) { commandOperationContext.setRegisteredCommand(cmd); if (checkPrecommand(commandOperationContext, cmd, issuer, args)) { return; } List<String> sargs = Arrays.asList(args); cmd.invoke(issuer, sargs, commandOperationContext); } else { issuer.sendMessage(MessageType.ERROR, MessageKeys.PERMISSION_DENIED); } }
for (String s : parameter.getValues()) { List<String> check = commandCompletions.getCompletionValues(this, sender, s, origArgs, opContext.isAsync()); if (!check.isEmpty()) { possible.addAll(check.stream().map(String::toLowerCase).collect(Collectors.toList()));
/** @deprecated Unstable API */ @Deprecated @UnstableAPI public CommandHelp generateCommandHelp(@NotNull String command) { verifyUnstableAPI("help"); CommandOperationContext context = getCurrentCommandOperationContext(); if (context == null) { throw new IllegalStateException("This method can only be called as part of a command execution."); } return generateCommandHelp(context.getCommandIssuer(), command); }