From e41896bf2f2fa0474485e2038314551fa403f834 Mon Sep 17 00:00:00 2001 From: chickeneer Date: Sun, 2 Apr 2023 16:51:48 -0500 Subject: [PATCH] Update javadocs --- ...letions.AsyncCommandCompletionHandler.html | 2 +- ...dCompletions.CommandCompletionHandler.html | 4 +- ...andCompletions.SyncCompletionRequired.html | 4 +- .../co/aikar/commands/CommandCompletions.html | 31 +- .../co/aikar/commands/CommandManager.html | 43 +- ...dCompletions.CommandCompletionHandler.html | 5 + docs/acf-core/index-all.html | 12 + docs/acf-core/member-search-index.js | 2 +- ...letions.AsyncCommandCompletionHandler.html | 442 +++++++++--------- ...dCompletions.CommandCompletionHandler.html | 442 +++++++++--------- ...andCompletions.SyncCompletionRequired.html | 442 +++++++++--------- .../co/aikar/commands/CommandCompletions.html | 442 +++++++++--------- .../co/aikar/commands/CommandManager.html | 147 +++--- 13 files changed, 1087 insertions(+), 931 deletions(-) diff --git a/docs/acf-core/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html b/docs/acf-core/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html index 78175995..1a394224 100644 --- a/docs/acf-core/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html +++ b/docs/acf-core/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html @@ -77,7 +77,7 @@ loadScripts(document, 'script');
CommandCompletions<C extends CommandCompletionContext>

-
public static interface CommandCompletions.AsyncCommandCompletionHandler<C extends CommandCompletionContext> +
diff --git a/docs/acf-core/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html b/docs/acf-core/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html index 8366a2cb..084fdc44 100644 --- a/docs/acf-core/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html +++ b/docs/acf-core/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html @@ -81,7 +81,7 @@ loadScripts(document, 'script');
CommandCompletions<C extends CommandCompletionContext>

- +
diff --git a/docs/acf-core/co/aikar/commands/CommandCompletions.html b/docs/acf-core/co/aikar/commands/CommandCompletions.html index a2e601f5..58b3d0dd 100644 --- a/docs/acf-core/co/aikar/commands/CommandCompletions.html +++ b/docs/acf-core/co/aikar/commands/CommandCompletions.html @@ -168,6 +168,11 @@ loadScripts(document, 'script');
Registers a completion handler such as @players to default apply to all command parameters of the specified types
+ + +
+
Unregister a completion handler.
+
@@ -214,9 +219,23 @@ loadScripts(document, 'script');
  • +
    +

    unregisterCompletion

    + +
    Unregister a completion handler.
    +
    +
    Parameters:
    +
    id -
    +
    Returns:
    +
    Throws:
    +
    IllegalStateException - If the completion couldn't be found
    +
    +
    +
  • +
  • registerAsyncCompletion

    -
    public CommandCompletions.CommandCompletionHandler registerAsyncCompletion(String id, +
    Registr a completion handler to provide command completions based on the user input. This handler is declared to be safe to be executed asynchronously. @@ -238,7 +257,7 @@ loadScripts(document, 'script');
  • registerStaticCompletion

    -
    public CommandCompletions.CommandCompletionHandler registerStaticCompletion(String id, +
    Register a static list of command completions that will never change. Like @CommandCompletion, values are | (PIPE) separated. @@ -255,7 +274,7 @@ loadScripts(document, 'script');
  • registerStaticCompletion

    -
    public CommandCompletions.CommandCompletionHandler registerStaticCompletion(String id, +
    Register a static list of command completions that will never change
    @@ -269,7 +288,7 @@ loadScripts(document, 'script');
  • registerStaticCompletion

    -
    public CommandCompletions.CommandCompletionHandler registerStaticCompletion(String id, +
    Register a static list of command completions that will never change. The list is obtained from the supplier immediately as part of this method call.
    @@ -284,7 +303,7 @@ loadScripts(document, 'script');
  • registerStaticCompletion

    -
    public CommandCompletions.CommandCompletionHandler registerStaticCompletion(String id, +
    Register a static list of command completions that will never change
    @@ -298,7 +317,7 @@ loadScripts(document, 'script');
  • setDefaultCompletion

    -
    public void setDefaultCompletion(String id, +
    public void setDefaultCompletion(String id, Class... classes)
    Registers a completion handler such as @players to default apply to all command parameters of the specified types

    diff --git a/docs/acf-core/co/aikar/commands/CommandManager.html b/docs/acf-core/co/aikar/commands/CommandManager.html index 5fab8b89..e8f9ed2d 100644 --- a/docs/acf-core/co/aikar/commands/CommandManager.html +++ b/docs/acf-core/co/aikar/commands/CommandManager.html @@ -446,6 +446,17 @@ loadScripts(document, 'script');

    void
    setValidNamePredicate(@NotNull Predicate<String> isValidName)
     
    +
    <T> void
    +
    unregisterDependency(Class<? extends T> clazz)
    +
    +
    Unregisters an instance of the class, it will no longer be able to be injected
    +
    +
    <T> void
    +
    unregisterDependency(Class<? extends T> clazz, + String key)
    +
    +
    Unregisters an instance of the class, it will no longer be able to be injected
    +
    boolean
    usePerIssuerLocale(boolean setting)
     
    @@ -1092,10 +1103,38 @@ loadScripts(document, 'script');
  • +
    +

    unregisterDependency

    +
    public <T> void unregisterDependency(Class<? extends T> clazz)
    +
    Unregisters an instance of the class, it will no longer be able to be injected
    +
    +
    Parameters:
    +
    clazz - the class the injector should look for to remove
    +
    Throws:
    +
    IllegalStateException - If the dependency was not found.
    +
    +
    +
  • +
  • +
    +

    unregisterDependency

    +
    public <T> void unregisterDependency(Class<? extends T> clazz, + String key)
    +
    Unregisters an instance of the class, it will no longer be able to be injected
    +
    +
    Parameters:
    +
    clazz - the class the injector should look for to remove
    +
    key - the key which needs to be present if that
    +
    Throws:
    +
    IllegalStateException - If the dependency was not found.
    +
    +
    +
  • +
  • enableUnstableAPI

    @Deprecated -public void enableUnstableAPI(String api)
    +public void enableUnstableAPI(String api)
  • Deprecated.
    Use this with caution! If you enable and use Unstable API's, your next compile using ACF may require you to update your implementation to those unstable API's
    @@ -1105,7 +1144,7 @@ loadScripts(document, 'script');
  • getCommandPrefix

    - +
  • diff --git a/docs/acf-core/co/aikar/commands/class-use/CommandCompletions.CommandCompletionHandler.html b/docs/acf-core/co/aikar/commands/class-use/CommandCompletions.CommandCompletionHandler.html index aec2a008..e28dc93f 100644 --- a/docs/acf-core/co/aikar/commands/class-use/CommandCompletions.CommandCompletionHandler.html +++ b/docs/acf-core/co/aikar/commands/class-use/CommandCompletions.CommandCompletionHandler.html @@ -112,6 +112,11 @@ loadScripts(document, 'script');
    Register a static list of command completions that will never change.
    + +
    CommandCompletions.unregisterCompletion(String id)
    +
    +
    Unregister a completion handler.
    +
    diff --git a/docs/acf-core/index-all.html b/docs/acf-core/index-all.html index ff7a5b6e..a992912e 100644 --- a/docs/acf-core/index-all.html +++ b/docs/acf-core/index-all.html @@ -1906,6 +1906,18 @@ loadScripts(document, 'script');
    +
    unregisterCompletion(String) - Method in class co.aikar.commands.CommandCompletions
    +
    +
    Unregister a completion handler.
    +
    +
    unregisterDependency(Class<? extends T>) - Method in class co.aikar.commands.CommandManager
    +
    +
    Unregisters an instance of the class, it will no longer be able to be injected
    +
    +
    unregisterDependency(Class<? extends T>, String) - Method in class co.aikar.commands.CommandManager
    +
    +
    Unregisters an instance of the class, it will no longer be able to be injected
    +
    UnresolvedDependencyException - Exception in co.aikar.commands
    Thrown when a command mananger couldn't find a registered instance for a field that is marked with diff --git a/docs/acf-core/member-search-index.js b/docs/acf-core/member-search-index.js index 9f0ec7b2..8b408895 100644 --- a/docs/acf-core/member-search-index.js +++ b/docs/acf-core/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"addAll(T[], T...)","u":"addAll(T[],T...)"},{"p":"co.aikar.commands","c":"Locales","l":"addBundleClassLoader(ClassLoader)","u":"addBundleClassLoader(java.lang.ClassLoader)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"addCauseMethodName(String)","u":"addCauseMethodName(java.lang.String)"},{"p":"co.aikar.commands","c":"RootCommand","l":"addChild(BaseCommand)","u":"addChild(co.aikar.commands.BaseCommand)"},{"p":"co.aikar.commands","c":"RootCommand","l":"addChildShared(List, SetMultimap, BaseCommand)","u":"addChildShared(java.util.List,com.google.common.collect.SetMultimap,co.aikar.commands.BaseCommand)"},{"p":"co.aikar.commands","c":"CommandConditions","l":"addCondition(Class

    , String, CommandConditions.ParameterCondition)","u":"addCondition(java.lang.Class,java.lang.String,co.aikar.commands.CommandConditions.ParameterCondition)"},{"p":"co.aikar.commands","c":"CommandConditions","l":"addCondition(String, CommandConditions.Condition)","u":"addCondition(java.lang.String,co.aikar.commands.CommandConditions.Condition)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessage(Locale, MessageKeyProvider, String)","u":"addMessage(java.util.Locale,co.aikar.locales.MessageKeyProvider,java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessageBundle(ClassLoader, String, Locale)","u":"addMessageBundle(java.lang.ClassLoader,java.lang.String,java.util.Locale)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessageBundle(String, Locale)","u":"addMessageBundle(java.lang.String,java.util.Locale)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessageBundles(String...)","u":"addMessageBundles(java.lang.String...)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessages(Locale, Map)","u":"addMessages(java.util.Locale,java.util.Map)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessageStrings(Locale, Map)","u":"addMessageStrings(java.util.Locale,java.util.Map)"},{"p":"co.aikar.commands","c":"CommandReplacements","l":"addReplacement(String, String)","u":"addReplacement(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandReplacements","l":"addReplacements(String...)","u":"addReplacements(java.lang.String...)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"addSubcommand(String)","u":"addSubcommand(java.lang.String)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"addSubcommands(Collection)","u":"addSubcommands(java.util.Collection)"},{"p":"co.aikar.commands","c":"CommandManager","l":"addSupportedLanguage(Locale)","u":"addSupportedLanguage(java.util.Locale)"},{"p":"co.aikar.commands","c":"Locales","l":"AFRIKAANS"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"ApacheCommonsExceptionUtil()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"ApacheCommonsLangUtil()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"Locales","l":"ARABIC"},{"p":"co.aikar.commands","c":"BaseCommand","l":"BaseCommand()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"BaseCommand(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"BULGARIAN"},{"p":"co.aikar.commands","c":"CommandParameter","l":"canConsumeInput()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"canExecute(CommandIssuer, RegisteredCommand)","u":"canExecute(co.aikar.commands.CommandIssuer,co.aikar.commands.RegisteredCommand)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"canExecuteWithoutInput()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"canOverridePlayerContext()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"capitalize(String)","u":"capitalize(java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"capitalize(String, char...)","u":"capitalize(java.lang.String,char...)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"capitalize(String, char[])","u":"capitalize(java.lang.String,char[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"capitalizeFirst(String)","u":"capitalizeFirst(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"capitalizeFirst(String, char)","u":"capitalizeFirst(java.lang.String,char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"capitalizeFully(String)","u":"capitalizeFully(java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"capitalizeFully(String, char...)","u":"capitalizeFully(java.lang.String,char...)"},{"p":"co.aikar.commands","c":"Locales","l":"CHINESE"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"clone(T[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"combine(String[])","u":"combine(java.lang.String[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"combine(String[], int)","u":"combine(java.lang.String[],int)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"CommandCompletions(CommandManager)","u":"%3Cinit%3E(co.aikar.commands.CommandManager)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"CommandHelp(CommandManager, RootCommand, CommandIssuer)","u":"%3Cinit%3E(co.aikar.commands.CommandManager,co.aikar.commands.RootCommand,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"CommandHelpFormatter(CommandManager)","u":"%3Cinit%3E(co.aikar.commands.CommandManager)"},{"p":"co.aikar.commands","c":"CommandManager","l":"CommandManager()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"CommandParameter(RegisteredCommand, Parameter, int, boolean)","u":"%3Cinit%3E(co.aikar.commands.RegisteredCommand,java.lang.reflect.Parameter,int,boolean)"},{"p":"co.aikar.commands","c":"ConditionFailedException","l":"ConditionFailedException()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"ConditionFailedException","l":"ConditionFailedException(MessageKey, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"ConditionFailedException","l":"ConditionFailedException(MessageKeyProvider, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"ConditionFailedException","l":"ConditionFailedException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"conditions"},{"p":"co.aikar.commands.processors","c":"ConditionsProcessor","l":"ConditionsProcessor()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"CommandContexts","l":"contextMap"},{"p":"co.aikar.commands","c":"MessageKeys","l":"COULD_NOT_FIND_PLAYER"},{"p":"co.aikar.commands","c":"CommandManager","l":"createCommandContext(RegisteredCommand, CommandParameter, CommandIssuer, List, int, Map)","u":"createCommandContext(co.aikar.commands.RegisteredCommand,co.aikar.commands.CommandParameter,co.aikar.commands.CommandIssuer,java.util.List,int,java.util.Map)"},{"p":"co.aikar.commands","c":"CommandManager","l":"createCompletionContext(RegisteredCommand, CommandIssuer, String, String, String[])","u":"createCompletionContext(co.aikar.commands.RegisteredCommand,co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"CommandManager","l":"createConditionContext(CommandIssuer, String)","u":"createConditionContext(co.aikar.commands.CommandIssuer,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"createRegisteredCommand(BaseCommand, String, Method, String)","u":"createRegisteredCommand(co.aikar.commands.BaseCommand,java.lang.String,java.lang.reflect.Method,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"createRootCommand(String)","u":"createRootCommand(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"CZECH"},{"p":"co.aikar.commands","c":"Locales","l":"DANISH"},{"p":"co.aikar.commands","c":"CommandManager","l":"defaultExceptionHandler"},{"p":"co.aikar.commands","c":"CommandManager","l":"defaultFormatter"},{"p":"co.aikar.commands","c":"CommandManager","l":"defaultHelpPerPage"},{"p":"co.aikar.commands","c":"CommandManager","l":"dependencies"},{"p":"co.aikar.commands","c":"BaseCommand","l":"doHelp(CommandIssuer, String...)","u":"doHelp(co.aikar.commands.CommandIssuer,java.lang.String...)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"doHelp(Object, String...)","u":"doHelp(java.lang.Object,java.lang.String...)"},{"p":"co.aikar.commands","c":"Locales","l":"DUTCH"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"EMPTY"},{"p":"co.aikar.commands","c":"CommandManager","l":"enableUnstableAPI(String)","u":"enableUnstableAPI(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"ENGLISH"},{"p":"co.aikar.commands","c":"ACFUtil","l":"enumNames(Class>)","u":"enumNames(java.lang.Class)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"enumNames(Enum[])","u":"enumNames(java.lang.Enum[])"},{"p":"co.aikar.commands","c":"MessageType","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"co.aikar.commands","c":"MessageType","l":"ERROR"},{"p":"co.aikar.commands","c":"MessageKeys","l":"ERROR_GENERIC_LOGGED"},{"p":"co.aikar.commands","c":"MessageKeys","l":"ERROR_PERFORMING_COMMAND"},{"p":"co.aikar.commands","c":"MessageKeys","l":"ERROR_PREFIX"},{"p":"co.aikar.commands","c":"ExceptionHandler","l":"execute(BaseCommand, RegisteredCommand, CommandIssuer, List, Throwable)","u":"execute(co.aikar.commands.BaseCommand,co.aikar.commands.RegisteredCommand,co.aikar.commands.CommandIssuer,java.util.List,java.lang.Throwable)"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"execute(CommandIssuer, CommandRouter.CommandRouteResult)","u":"execute(co.aikar.commands.CommandIssuer,co.aikar.commands.CommandRouter.CommandRouteResult)"},{"p":"co.aikar.commands","c":"RootCommand","l":"execute(CommandIssuer, String, String[])","u":"execute(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"Locales","l":"FINNISH"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"format(int, String)","u":"format(int,java.lang.String)"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"format(String)","u":"format(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"formatMessage(CommandIssuer, MessageType, MessageKeyProvider, String...)","u":"formatMessage(co.aikar.commands.CommandIssuer,co.aikar.commands.MessageType,co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"formatNumber(Integer)","u":"formatNumber(java.lang.Integer)"},{"p":"co.aikar.commands","c":"CommandManager","l":"formatters"},{"p":"co.aikar.commands","c":"Locales","l":"FRENCH"},{"p":"co.aikar.commands","c":"CommandManager","l":"generateCommandHelp()"},{"p":"co.aikar.commands","c":"CommandManager","l":"generateCommandHelp(CommandIssuer, RootCommand)","u":"generateCommandHelp(co.aikar.commands.CommandIssuer,co.aikar.commands.RootCommand)"},{"p":"co.aikar.commands","c":"CommandManager","l":"generateCommandHelp(CommandIssuer, String)","u":"generateCommandHelp(co.aikar.commands.CommandIssuer,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"generateCommandHelp(String)","u":"generateCommandHelp(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"GERMAN"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getAnnotation(Class)","u":"getAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getAnnotation(Class)","u":"getAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getAnnotation(Class)","u":"getAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getAnnotationValue(Class)","u":"getAnnotationValue(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getAnnotationValue(Class)","u":"getAnnotationValue(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getAnnotationValue(Class, int)","u":"getAnnotationValue(java.lang.Class,int)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getAnnotationValue(Class, int)","u":"getAnnotationValue(java.lang.Class,int)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"getApplicableParameters()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getArgs()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getArgs()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getBooleanFlagValue(String)","u":"getBooleanFlagValue(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getBooleanFlagValue(String, Boolean)","u":"getBooleanFlagValue(java.lang.String,java.lang.Boolean)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getCause()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getCause(Throwable)","u":"getCause(java.lang.Throwable)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getCause(Throwable, String[])","u":"getCause(java.lang.Throwable,java.lang.String[])"},{"p":"co.aikar.commands","c":"RootCommand","l":"getChildren()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getCmd()"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"getColor(int)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getCommand()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getCommand()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getCommand()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandCompletions()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandConditions()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandContexts()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getCommandHelp()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getCommandIssuer()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandIssuer(Object)","u":"getCommandIssuer(java.lang.Object)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getCommandLabel()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getCommandManager()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getCommandName()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getCommandName()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getCommandPrefix()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getCommandPrefix()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandPrefix(CommandIssuer)","u":"getCommandPrefix(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandReplacements()"},{"p":"co.aikar.commands","c":"CommandCompletions.CommandCompletionHandler","l":"getCompletions(C)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getConditions()"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getConfig()"},{"p":"co.aikar.commands","c":"ConditionContext","l":"getConfig()"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getConfig(String)","u":"getConfig(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getConfig(String, String)","u":"getConfig(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getConfigs()"},{"p":"co.aikar.commands","c":"ConditionContext","l":"getConfigValue(String, Integer)","u":"getConfigValue(java.lang.String,java.lang.Integer)"},{"p":"co.aikar.commands","c":"ConditionContext","l":"getConfigValue(String, String)","u":"getConfigValue(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands.contexts","c":"ContextResolver","l":"getContext(C)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getContextFlags(Class)","u":"getContextFlags(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValue(Class)","u":"getContextValue(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValue(Class, Integer)","u":"getContextValue(java.lang.Class,java.lang.Integer)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValueByName(Class, String)","u":"getContextValueByName(java.lang.Class,java.lang.String)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getCurrentCommandIssuer()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCurrentCommandIssuer()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getCurrentCommandManager()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCurrentCommandManager()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCurrentCommandOperationContext()"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"getDefaultColor()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getDefaultExceptionHandler()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getDefaultFormatter()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getDefaultHelpPerPage()"},{"p":"co.aikar.commands","c":"Locales","l":"getDefaultLocale()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getDefaultRegisteredCommand()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getDefaultRegisteredCommand()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getDefaultValue()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getDefCommand()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getDescription()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getDescription()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getDescription()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getDisplayName(CommandIssuer)","u":"getDisplayName(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getDoubleFlagValue(String, Number)","u":"getDoubleFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"getEntryFormatReplacements(CommandHelp, HelpEntry)","u":"getEntryFormatReplacements(co.aikar.commands.CommandHelp,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"getEnumFromName(T[], String)","u":"getEnumFromName(T[],java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"getEnumFromName(T[], String, T)","u":"getEnumFromName(T[],java.lang.String,T)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"getEnumFromOrdinal(T[], int)","u":"getEnumFromOrdinal(T[],int)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getExceptionHandler()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getExecCommandLabel()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getExecSubcommand()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFirstArg()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"getFirstElement(Iterable)","u":"getFirstElement(java.lang.Iterable)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlags()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getFlags()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Double)","u":"getFlagValue(java.lang.String,java.lang.Double)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Float)","u":"getFlagValue(java.lang.String,java.lang.Float)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Integer)","u":"getFlagValue(java.lang.String,java.lang.Integer)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Long)","u":"getFlagValue(java.lang.String,java.lang.Long)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Number)","u":"getFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, String)","u":"getFlagValue(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFloatFlagValue(String, Number)","u":"getFloatFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandManager","l":"getFormat(MessageType)","u":"getFormat(co.aikar.commands.MessageType)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getFullStackTrace(Throwable)","u":"getFullStackTrace(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"getHeaderFooterFormatReplacements(CommandHelp)","u":"getHeaderFooterFormatReplacements(co.aikar.commands.CommandHelp)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getHelpEntries()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getHelpFormatter()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getHelpText()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getIndex()"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getInput()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getIntFlagValue(String, Number)","u":"getIntFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getIssuer()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getIssuer()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getIssuer()"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"getIssuer()"},{"p":"co.aikar.commands","c":"ConditionContext","l":"getIssuer()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getIssuerLocale(CommandIssuer)","u":"getIssuerLocale(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getLastArg()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getLastCommandOperationContext()"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"getLastCommandOperationContext()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getLocales()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getLongFlagValue(String, Number)","u":"getLongFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getManager()"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"getManager()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getManager()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getManager()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getMessage()"},{"p":"co.aikar.commands","c":"Locales","l":"getMessage(CommandIssuer, MessageKeyProvider)","u":"getMessage(co.aikar.commands.CommandIssuer,co.aikar.locales.MessageKeyProvider)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getMessage(int)"},{"p":"co.aikar.commands","c":"MessageKeys","l":"getMessageKey()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getMessages()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getName()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getName()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getNextParam()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getNumParams()"},{"p":"co.aikar.commands","c":"Locales","l":"getOptionalMessage(CommandIssuer, MessageKey)","u":"getOptionalMessage(co.aikar.commands.CommandIssuer,co.aikar.locales.MessageKey)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getOrigArgs()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getPage()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getParam()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getParameter()"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"getParameterFormatReplacements(CommandHelp, CommandParameter, HelpEntry)","u":"getParameterFormatReplacements(co.aikar.commands.CommandHelp,co.aikar.commands.CommandParameter,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getParameterPermissions()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getParameters()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getParameterSyntax()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getParameterSyntax(CommandIssuer)","u":"getParameterSyntax(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getParamIndex()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getPassedArgs()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getPermission()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getPerPage()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getPrefSubCommand()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getRegisteredCommand()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getRegisteredCommands()"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"getRegisteredCommands()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getRegisteredRootCommands()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getRequiredPermissions()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getRequiredPermissions()"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"getRequiredPermissions()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getRequiredPermissions()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getResolvedArg(Class...)","u":"getResolvedArg(java.lang.Class...)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getResolvedArg(String)","u":"getResolvedArg(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getResolvedArg(String, Class...)","u":"getResolvedArg(java.lang.String,java.lang.Class...)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getResolver()"},{"p":"co.aikar.commands","c":"CommandContexts","l":"getResolver(Class)","u":"getResolver(java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getRootCause(Throwable)","u":"getRootCause(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"CommandManager","l":"getRootCommand(String)","u":"getRootCommand(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getSearch()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getSearchScore()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getSearchTags()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getSelectedEntry()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getStackTrace(Throwable)","u":"getStackTrace(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getSubCommands()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getSubCommands()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getSupportedLanguages()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getSyntax()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getSyntax(CommandIssuer)","u":"getSyntax(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getSyntaxText()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getSyntaxText(CommandIssuer)","u":"getSyntaxText(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"RootCommand","l":"getTabCompletions(CommandIssuer, String, String[])","u":"getTabCompletions(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"RootCommand","l":"getTabCompletions(CommandIssuer, String, String[], boolean)","u":"getTabCompletions(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[],boolean)"},{"p":"co.aikar.commands","c":"RootCommand","l":"getTabCompletions(CommandIssuer, String, String[], boolean, boolean)","u":"getTabCompletions(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[],boolean,boolean)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getThrowable(int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getThrowableCount()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getThrowableCount(Throwable)","u":"getThrowableCount(java.lang.Throwable)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getThrowableList(Throwable)","u":"getThrowableList(java.lang.Throwable)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getThrowables()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getThrowables(Throwable)","u":"getThrowables(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getTotalPages()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getTotalResults()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getType()"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"getUniqueId()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getUniquePermission()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getUsage()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getValidNamePredicate()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getValues()"},{"p":"co.aikar.commands","c":"Locales","l":"GREEK"},{"p":"co.aikar.commands","c":"CommandManager","l":"handleUncaughtException(BaseCommand, RegisteredCommand, CommandIssuer, List, Throwable)","u":"handleUncaughtException(co.aikar.commands.BaseCommand,co.aikar.commands.RegisteredCommand,co.aikar.commands.CommandIssuer,java.util.List,java.lang.Throwable)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"hasAnnotation(Class)","u":"hasAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"hasAnnotation(Class)","u":"hasAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"RootCommand","l":"hasAnyPermission(CommandIssuer)","u":"hasAnyPermission(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"hasConfig(String)","u":"hasConfig(java.lang.String)"},{"p":"co.aikar.commands","c":"ConditionContext","l":"hasConfig(String)","u":"hasConfig(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"hasFlag(String)","u":"hasFlag(java.lang.String)"},{"p":"co.aikar.commands","c":"MessageType","l":"hashCode()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"hasIntersection(Collection, Collection)","u":"hasIntersection(java.util.Collection,java.util.Collection)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"hasPermission(CommandIssuer)","u":"hasPermission(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"hasPermission(CommandIssuer)","u":"hasPermission(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandManager","l":"hasPermission(CommandIssuer, Set)","u":"hasPermission(co.aikar.commands.CommandIssuer,java.util.Set)"},{"p":"co.aikar.commands","c":"CommandManager","l":"hasPermission(CommandIssuer, String)","u":"hasPermission(co.aikar.commands.CommandIssuer,java.lang.String)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"hasPermission(Object)","u":"hasPermission(java.lang.Object)"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"hasPermission(Object)","u":"hasPermission(java.lang.Object)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"hasPermission(String)","u":"hasPermission(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"hasRegisteredCommands()"},{"p":"co.aikar.commands","c":"Locales","l":"HEBREW"},{"p":"co.aikar.commands","c":"MessageType","l":"HELP"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_DETAILED_COMMAND_FORMAT"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_DETAILED_HEADER"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_DETAILED_PARAMETER_FORMAT"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_FORMAT"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_HEADER"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_NO_RESULTS"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_PAGE_INFORMATION"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_SEARCH_HEADER"},{"p":"co.aikar.commands","c":"BaseCommand","l":"help(CommandIssuer, String[])","u":"help(co.aikar.commands.CommandIssuer,java.lang.String[])"},{"p":"co.aikar.commands","c":"BaseCommand","l":"help(Object, String[])","u":"help(java.lang.Object,java.lang.String[])"},{"p":"co.aikar.commands","c":"CommandManager","l":"helpFormatter"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"helpSearchTags"},{"p":"co.aikar.commands","c":"Locales","l":"HINDI"},{"p":"co.aikar.commands","c":"Locales","l":"HUNGARIAN"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"INDEX_NOT_FOUND"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"indexOf(Object[], Object)","u":"indexOf(java.lang.Object[],java.lang.Object)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"indexOf(Object[], Object, int)","u":"indexOf(java.lang.Object[],java.lang.Object,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"indexOf(String, String[])","u":"indexOf(java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"indexOfThrowable(Class)","u":"indexOfThrowable(java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"indexOfThrowable(Class, int)","u":"indexOfThrowable(java.lang.Class,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"indexOfThrowable(Throwable, Class)","u":"indexOfThrowable(java.lang.Throwable,java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"indexOfThrowable(Throwable, Class, int)","u":"indexOfThrowable(java.lang.Throwable,java.lang.Class,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"indexOfType(Throwable, Class)","u":"indexOfType(java.lang.Throwable,java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"indexOfType(Throwable, Class, int)","u":"indexOfType(java.lang.Throwable,java.lang.Class,int)"},{"p":"co.aikar.commands","c":"MessageType","l":"INFO"},{"p":"co.aikar.commands","c":"MessageKeys","l":"INFO_MESSAGE"},{"p":"co.aikar.commands","c":"ACFUtil","l":"intersection(Collection, Collection)","u":"intersection(java.util.Collection,java.util.Collection)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"intToRoman(int)"},{"p":"co.aikar.commands","c":"MessageKeys","l":"INVALID_SYNTAX"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(MessageKey, boolean, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKey,boolean,java.lang.String...)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(MessageKey, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(MessageKeyProvider, boolean, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKeyProvider,boolean,java.lang.String...)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(MessageKeyProvider, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(String, boolean)","u":"%3Cinit%3E(java.lang.String,boolean)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"isAsync()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"isAsync()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isBetween(float, double, double)","u":"isBetween(float,double,double)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"isCauseMethodName(String)","u":"isCauseMethodName(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isCommandIssuer()"},{"p":"co.aikar.commands","c":"CommandManager","l":"isCommandIssuer(Class)","u":"isCommandIssuer(java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"isDelimiter(char, char[])","u":"isDelimiter(char,char[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isDouble(String)","u":"isDouble(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isFloat(String)","u":"isFloat(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isInteger(String)","u":"isInteger(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isLast()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"isLastArg()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"isLastPage()"},{"p":"co.aikar.commands","c":"CommandManager","l":"isLoggingUnhandledExceptions()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"isNestedThrowable(Throwable)","u":"isNestedThrowable(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isNumber(String)","u":"isNumber(java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"isNumeric(CharSequence)","u":"isNumeric(java.lang.CharSequence)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"isOnlyPage()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"isOptional()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isOptional()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isOptionalInput()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isOptionalResolver()"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"isPlayer()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"isPrivate()"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"issuer"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"issuer"},{"p":"co.aikar.commands","c":"CommandManager","l":"issuersLocale"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"isThrowableNested()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isTruthy(String)","u":"isTruthy(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"isValidName(String)","u":"isValidName(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"ITALIAN"},{"p":"co.aikar.commands","c":"Locales","l":"JAPANESE"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(byte[], char)","u":"join(byte[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(byte[], char, int, int)","u":"join(byte[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(char[], char)","u":"join(char[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(char[], char, int, int)","u":"join(char[],char,int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(Collection)","u":"join(java.util.Collection)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(Collection, String)","u":"join(java.util.Collection,java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(double[], char)","u":"join(double[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(double[], char, int, int)","u":"join(double[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(float[], char)","u":"join(float[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(float[], char, int, int)","u":"join(float[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(int[], char)","u":"join(int[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(int[], char, int, int)","u":"join(int[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Iterable, char)","u":"join(java.lang.Iterable,char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Iterable, String)","u":"join(java.lang.Iterable,java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Iterator, char)","u":"join(java.util.Iterator,char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Iterator, String)","u":"join(java.util.Iterator,java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(long[], char)","u":"join(long[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(long[], char, int, int)","u":"join(long[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Object[], char)","u":"join(java.lang.Object[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Object[], char, int, int)","u":"join(java.lang.Object[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Object[], String)","u":"join(java.lang.Object[],java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Object[], String, int, int)","u":"join(java.lang.Object[],java.lang.String,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(short[], char)","u":"join(short[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(short[], char, int, int)","u":"join(short[],char,int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[])","u":"join(java.lang.String[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[], char)","u":"join(java.lang.String[],char)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[], int)","u":"join(java.lang.String[],int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[], int, char)","u":"join(java.lang.String[],int,char)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[], String)","u":"join(java.lang.String[],java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(T...)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"joinArgs()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"joinArgs(String)","u":"joinArgs(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"KOREAN"},{"p":"co.aikar.commands","c":"Locales","l":"LATIN"},{"p":"co.aikar.commands","c":"ACFUtil","l":"limit(String, int)","u":"limit(java.lang.String,int)"},{"p":"co.aikar.commands","c":"Locales","l":"loadLanguages()"},{"p":"co.aikar.commands","c":"Locales","l":"loadMissingBundles()"},{"p":"co.aikar.commands","c":"CommandManager","l":"localeChangedCallbacks"},{"p":"co.aikar.commands","c":"Locales","l":"Locales(CommandManager)","u":"%3Cinit%3E(co.aikar.commands.CommandManager)"},{"p":"co.aikar.commands","c":"CommandManager","l":"log(LogLevel, String)","u":"log(co.aikar.commands.LogLevel,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"log(LogLevel, String, Throwable)","u":"log(co.aikar.commands.LogLevel,java.lang.String,java.lang.Throwable)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"ltrim(String)","u":"ltrim(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"manager"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"MessageFormatter(FT...)","u":"%3Cinit%3E(FT...)"},{"p":"co.aikar.commands","c":"MessageType","l":"MessageType()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"MessageKeys","l":"MUST_BE_A_NUMBER"},{"p":"co.aikar.commands","c":"MessageKeys","l":"MUST_BE_MAX_LENGTH"},{"p":"co.aikar.commands","c":"MessageKeys","l":"MUST_BE_MIN_LENGTH"},{"p":"co.aikar.commands","c":"MessageKeys","l":"NO_COMMAND_MATCHED_SEARCH"},{"p":"co.aikar.commands","c":"ACFUtil","l":"normalize(String)","u":"normalize(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"NORWEGIAN_BOKMAAL"},{"p":"co.aikar.commands","c":"Locales","l":"NORWEGIAN_NYNORSK"},{"p":"co.aikar.commands","c":"MessageKeys","l":"NOT_ALLOWED_ON_CONSOLE"},{"p":"co.aikar.commands","c":"CommandManager","l":"notifyLocaleChange(I, Locale, Locale)","u":"notifyLocaleChange(I,java.util.Locale,java.util.Locale)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"nullDefault(Object, Object)","u":"nullDefault(java.lang.Object,java.lang.Object)"},{"p":"co.aikar.commands","c":"CommandManager","l":"obtainRootCommand(String)","u":"obtainRootCommand(java.lang.String)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onBaseCommandRegister(BaseCommand, T)","u":"onBaseCommandRegister(co.aikar.commands.BaseCommand,T)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onCommandRegistered(RegisteredCommand, T)","u":"onCommandRegistered(co.aikar.commands.RegisteredCommand,T)"},{"p":"co.aikar.commands","c":"IssuerLocaleChangedCallback","l":"onIssuerLocaleChange(I, Locale, Locale)","u":"onIssuerLocaleChange(I,java.util.Locale,java.util.Locale)"},{"p":"co.aikar.commands","c":"CommandManager","l":"onLocaleChange(IssuerLocaleChangedCallback)","u":"onLocaleChange(co.aikar.commands.IssuerLocaleChangedCallback)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onParameterRegistered(RegisteredCommand, int, Parameter, T)","u":"onParameterRegistered(co.aikar.commands.RegisteredCommand,int,java.lang.reflect.Parameter,T)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onPostComand(CommandOperationContext)","u":"onPostComand(co.aikar.commands.CommandOperationContext)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onPostContextResolution(CommandExecutionContext, Object)","u":"onPostContextResolution(co.aikar.commands.CommandExecutionContext,java.lang.Object)"},{"p":"co.aikar.commands.processors","c":"ConditionsProcessor","l":"onPostContextResolution(CommandExecutionContext, Object)","u":"onPostContextResolution(co.aikar.commands.CommandExecutionContext,java.lang.Object)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onPreComand(CommandOperationContext)","u":"onPreComand(co.aikar.commands.CommandOperationContext)"},{"p":"co.aikar.commands.processors","c":"ConditionsProcessor","l":"onPreComand(CommandOperationContext)","u":"onPreComand(co.aikar.commands.CommandOperationContext)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onPreContextResolution(CommandExecutionContext)","u":"onPreContextResolution(co.aikar.commands.CommandExecutionContext)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"padLeft(String, int)","u":"padLeft(java.lang.String,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"padRight(String, int)","u":"padRight(java.lang.String,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseBigNumber(String, boolean)","u":"parseBigNumber(java.lang.String,boolean)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseDouble(String)","u":"parseDouble(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseDouble(String, Double)","u":"parseDouble(java.lang.String,java.lang.Double)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseFloat(String)","u":"parseFloat(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseFloat(String, Float)","u":"parseFloat(java.lang.String,java.lang.Float)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseInt(String)","u":"parseInt(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseInt(String, Integer)","u":"parseInt(java.lang.String,java.lang.Integer)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseLong(String)","u":"parseLong(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseLong(String, Long)","u":"parseLong(java.lang.String,java.lang.Long)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseNumber(String, boolean)","u":"parseNumber(java.lang.String,boolean)"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PERMISSION_DENIED"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PERMISSION_DENIED_PARAMETER"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PLEASE_SPECIFY_AT_LEAST"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PLEASE_SPECIFY_AT_MOST"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PLEASE_SPECIFY_ONE_OF"},{"p":"co.aikar.commands","c":"Locales","l":"POLISH"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"popFirstArg()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"popLastArg()"},{"p":"co.aikar.commands","c":"Locales","l":"PORTUGUESE"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"postCommand()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"precision(double, int)","u":"precision(double,int)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"preCommand()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"preformOnImmutable(List, Consumer>)","u":"preformOnImmutable(java.util.List,java.util.function.Consumer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printDetailedHelpCommand(CommandHelp, CommandIssuer, HelpEntry)","u":"printDetailedHelpCommand(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printDetailedHelpFooter(CommandHelp, CommandIssuer, HelpEntry)","u":"printDetailedHelpFooter(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printDetailedHelpHeader(CommandHelp, CommandIssuer, HelpEntry)","u":"printDetailedHelpHeader(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printDetailedParameter(CommandHelp, CommandIssuer, HelpEntry, CommandParameter)","u":"printDetailedParameter(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry,co.aikar.commands.CommandParameter)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printHelpCommand(CommandHelp, CommandIssuer, HelpEntry)","u":"printHelpCommand(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printHelpFooter(CommandHelp, CommandIssuer)","u":"printHelpFooter(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printHelpHeader(CommandHelp, CommandIssuer)","u":"printHelpHeader(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"printPartialStackTrace(PrintWriter)","u":"printPartialStackTrace(java.io.PrintWriter)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printSearchEntry(CommandHelp, CommandIssuer, HelpEntry)","u":"printSearchEntry(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printSearchFooter(CommandHelp, CommandIssuer)","u":"printSearchFooter(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printSearchHeader(CommandHelp, CommandIssuer)","u":"printSearchHeader(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"printStackTrace(PrintStream)","u":"printStackTrace(java.io.PrintStream)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"printStackTrace(PrintWriter)","u":"printStackTrace(java.io.PrintWriter)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"rand(double, double)","u":"rand(double,double)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"rand(int, int)","u":"rand(int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"rand(int, int, int, int)","u":"rand(int,int,int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"randBool()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"RANDOM"},{"p":"co.aikar.commands","c":"ACFUtil","l":"random(Class)","u":"random(java.lang.Class)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"random(List)","u":"random(java.util.List)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"random(T[])"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerAsyncCompletion(String, CommandCompletions.AsyncCommandCompletionHandler)","u":"registerAsyncCompletion(java.lang.String,co.aikar.commands.CommandCompletions.AsyncCommandCompletionHandler)"},{"p":"co.aikar.commands","c":"CommandManager","l":"registerCommand(BaseCommand)","u":"registerCommand(co.aikar.commands.BaseCommand)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerCompletion(String, CommandCompletions.CommandCompletionHandler)","u":"registerCompletion(java.lang.String,co.aikar.commands.CommandCompletions.CommandCompletionHandler)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerContext(Class, ContextResolver)","u":"registerContext(java.lang.Class,co.aikar.commands.contexts.ContextResolver)"},{"p":"co.aikar.commands","c":"CommandManager","l":"registerDependency(Class, String, T)","u":"registerDependency(java.lang.Class,java.lang.String,T)"},{"p":"co.aikar.commands","c":"CommandManager","l":"registerDependency(Class, T)","u":"registerDependency(java.lang.Class,T)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerIssuerAwareContext(Class, IssuerAwareContextResolver)","u":"registerIssuerAwareContext(java.lang.Class,co.aikar.commands.contexts.IssuerAwareContextResolver)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerIssuerOnlyContext(Class, IssuerOnlyContextResolver)","u":"registerIssuerOnlyContext(java.lang.Class,co.aikar.commands.contexts.IssuerOnlyContextResolver)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerOptionalContext(Class, OptionalContextResolver)","u":"registerOptionalContext(java.lang.Class,co.aikar.commands.contexts.OptionalContextResolver)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerSenderAwareContext(Class, IssuerAwareContextResolver)","u":"registerSenderAwareContext(java.lang.Class,co.aikar.commands.contexts.IssuerAwareContextResolver)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerStaticCompletion(String, Collection)","u":"registerStaticCompletion(java.lang.String,java.util.Collection)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerStaticCompletion(String, String)","u":"registerStaticCompletion(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerStaticCompletion(String, String[])","u":"registerStaticCompletion(java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerStaticCompletion(String, Supplier>)","u":"registerStaticCompletion(java.lang.String,java.util.function.Supplier)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"removeCauseMethodName(String)","u":"removeCauseMethodName(java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"removeCommonFrames(List, List)","u":"removeCommonFrames(java.util.List,java.util.List)"},{"p":"co.aikar.commands","c":"CommandReplacements","l":"replace(String)","u":"replace(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replace(String, Pattern, String)","u":"replace(java.lang.String,java.util.regex.Pattern,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replace(String, String, String)","u":"replace(java.lang.String,java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"replaceI18NStrings(String)","u":"replaceI18NStrings(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"replacements"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePattern(String, Pattern, String)","u":"replacePattern(java.lang.String,java.util.regex.Pattern,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePattern(String, String, String)","u":"replacePattern(java.lang.String,java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePatternMatch(String, Pattern, String)","u":"replacePatternMatch(java.lang.String,java.util.regex.Pattern,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePatternMatch(String, String, String)","u":"replacePatternMatch(java.lang.String,java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePatterns(String, String...)","u":"replacePatterns(java.lang.String,java.lang.String...)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replaceStrings(String, String...)","u":"replaceStrings(java.lang.String,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"requiresInput()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"requiresPermission(String)","u":"requiresPermission(java.lang.String)"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"requiresPermission(String)","u":"requiresPermission(java.lang.String)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"requiresPermission(String)","u":"requiresPermission(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"ROMANIAN"},{"p":"co.aikar.commands","c":"CommandManager","l":"rootCommands"},{"p":"co.aikar.commands","c":"ACFUtil","l":"round(double, int)","u":"round(double,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"roundUp(int, int)","u":"roundUp(int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"rtrim(String)","u":"rtrim(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"RUSSIAN"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendError(MessageKey, String...)","u":"sendError(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendError(MessageKeyProvider, String...)","u":"sendError(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendInfo(MessageKey, String...)","u":"sendInfo(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendInfo(MessageKeyProvider, String...)","u":"sendInfo(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandManager","l":"sendMessage(CommandIssuer, MessageType, MessageKeyProvider, String...)","u":"sendMessage(co.aikar.commands.CommandIssuer,co.aikar.commands.MessageType,co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandManager","l":"sendMessage(IT, MessageType, MessageKeyProvider, String...)","u":"sendMessage(IT,co.aikar.commands.MessageType,co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendMessage(MessageType, MessageKey, String...)","u":"sendMessage(co.aikar.commands.MessageType,co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendMessage(MessageType, MessageKeyProvider, String...)","u":"sendMessage(co.aikar.commands.MessageType,co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendMessage(String)","u":"sendMessage(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendMessageInternal(String)","u":"sendMessageInternal(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendSyntax(MessageKey, String...)","u":"sendSyntax(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendSyntax(MessageKeyProvider, String...)","u":"sendSyntax(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setCanConsumeInput(boolean)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"setCause(Throwable, Throwable)","u":"setCause(java.lang.Throwable,java.lang.Throwable)"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"setColor(int, FT)","u":"setColor(int,FT)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setCommandIssuer(boolean)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setConditions(String)","u":"setConditions(java.lang.String)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"setContextFlags(Class, String)","u":"setContextFlags(java.lang.Class,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"setDefaultCompletion(String, Class...)","u":"setDefaultCompletion(java.lang.String,java.lang.Class...)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setDefaultExceptionHandler(ExceptionHandler)","u":"setDefaultExceptionHandler(co.aikar.commands.ExceptionHandler)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setDefaultExceptionHandler(ExceptionHandler, boolean)","u":"setDefaultExceptionHandler(co.aikar.commands.ExceptionHandler,boolean)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setDefaultFormatter(MF)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setDefaultHelpPerPage(int)"},{"p":"co.aikar.commands","c":"Locales","l":"setDefaultLocale(Locale)","u":"setDefaultLocale(java.util.Locale)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setDefaultValue(String)","u":"setDefaultValue(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setDescription(String)","u":"setDescription(java.lang.String)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"setExceptionHandler(ExceptionHandler)","u":"setExceptionHandler(co.aikar.commands.ExceptionHandler)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setFlags(Map)","u":"setFlags(java.util.Map)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setFormat(MessageType, FT...)","u":"setFormat(co.aikar.commands.MessageType,FT...)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setFormat(MessageType, int, FT)","u":"setFormat(co.aikar.commands.MessageType,int,FT)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setFormat(MessageType, MF)","u":"setFormat(co.aikar.commands.MessageType,MF)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setHelpFormatter(CommandHelpFormatter)","u":"setHelpFormatter(co.aikar.commands.CommandHelpFormatter)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setIssuerLocale(IT, Locale)","u":"setIssuerLocale(IT,java.util.Locale)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setNextParam(CommandParameter)","u":"setNextParam(co.aikar.commands.CommandParameter)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setOptional(boolean)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setOptionalResolver(boolean)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"setPage(int)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"setPage(int, int)","u":"setPage(int,int)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"setPerPage(int)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"setRegisteredCommand(RegisteredCommand)","u":"setRegisteredCommand(co.aikar.commands.RegisteredCommand)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setRequiresInput(boolean)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setResolver(ContextResolver)","u":"setResolver(co.aikar.commands.contexts.ContextResolver)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"setSearch(List)","u":"setSearch(java.util.List)"},{"p":"co.aikar.commands","c":"HelpEntry","l":"setSearchScore(int)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setSyntax(String)","u":"setSyntax(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setValidNamePredicate(Predicate)","u":"setValidNamePredicate(java.util.function.Predicate)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setValues(String[])","u":"setValues(java.lang.String[])"},{"p":"co.aikar.commands","c":"HelpEntry","l":"shouldShow()"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"showAllResults(CommandHelp, List)","u":"showAllResults(co.aikar.commands.CommandHelp,java.util.List)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"showCommandHelp()"},{"p":"co.aikar.commands","c":"ShowCommandHelp","l":"ShowCommandHelp()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"ShowCommandHelp","l":"ShowCommandHelp(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"co.aikar.commands","c":"ShowCommandHelp","l":"ShowCommandHelp(List)","u":"%3Cinit%3E(java.util.List)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"showDetailedHelp(CommandHelp, HelpEntry)","u":"showDetailedHelp(co.aikar.commands.CommandHelp,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"showHelp()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"showHelp(CommandIssuer)","u":"showHelp(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"showSearchResults(CommandHelp, List)","u":"showSearchResults(co.aikar.commands.CommandHelp,java.util.List)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"showSyntax(CommandIssuer, RegisteredCommand)","u":"showSyntax(co.aikar.commands.CommandIssuer,co.aikar.commands.RegisteredCommand)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"simpleMatch(Class>, String)","u":"simpleMatch(java.lang.Class,java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"SIMPLIFIED_CHINESE"},{"p":"co.aikar.commands","c":"ACFUtil","l":"simplifyString(String)","u":"simplifyString(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"sneaky(Throwable)","u":"sneaky(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"Locales","l":"SPANISH"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"startsWith(CharSequence, CharSequence)","u":"startsWith(java.lang.CharSequence,java.lang.CharSequence)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"startsWithIgnoreCase(CharSequence, CharSequence)","u":"startsWithIgnoreCase(java.lang.CharSequence,java.lang.CharSequence)"},{"p":"co.aikar.commands","c":"CommandManager","l":"supportedLanguages"},{"p":"co.aikar.commands","c":"Locales","l":"SWEDISH"},{"p":"co.aikar.commands","c":"CommandCompletions.SyncCompletionRequired","l":"SyncCompletionRequired()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"MessageType","l":"SYNTAX"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"tabComplete(CommandIssuer, RootCommand, String[], boolean)","u":"tabComplete(co.aikar.commands.CommandIssuer,co.aikar.commands.RootCommand,java.lang.String[],boolean)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"tabComplete(CommandIssuer, String, String[])","u":"tabComplete(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"BaseCommand","l":"tabComplete(CommandIssuer, String, String[], boolean)","u":"tabComplete(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[],boolean)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"testExactMatch(String)","u":"testExactMatch(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"THAI"},{"p":"co.aikar.commands","c":"Locales","l":"TRADITIONAL_CHINESE"},{"p":"co.aikar.commands","c":"Locales","l":"TURKISH"},{"p":"co.aikar.commands","c":"ACFUtil","l":"ucfirst(String)","u":"ucfirst(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"UKRANIAN"},{"p":"co.aikar.commands","c":"MessageKeys","l":"UNKNOWN_COMMAND"},{"p":"co.aikar.commands","c":"CommandHelp","l":"updateSearchScore(HelpEntry)","u":"updateSearchScore(co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandManager","l":"usePerIssuerLocale"},{"p":"co.aikar.commands","c":"CommandManager","l":"usePerIssuerLocale(boolean)"},{"p":"co.aikar.commands","c":"CommandManager","l":"usingPerIssuerLocale()"},{"p":"co.aikar.commands","c":"CommandConditions.Condition","l":"validateCondition(ConditionContext)","u":"validateCondition(co.aikar.commands.ConditionContext)"},{"p":"co.aikar.commands","c":"CommandConditions.ParameterCondition","l":"validateCondition(ConditionContext, CEC, P)","u":"validateCondition(co.aikar.commands.ConditionContext,CEC,P)"},{"p":"co.aikar.commands","c":"CommandManager","l":"validNamePredicate"},{"p":"co.aikar.commands.annotation","c":"CommandAlias","l":"value()"},{"p":"co.aikar.commands.annotation","c":"CommandCompletion","l":"value()"},{"p":"co.aikar.commands.annotation","c":"CommandPermission","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Conditions","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Default","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Dependency","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Description","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Flags","l":"value()"},{"p":"co.aikar.commands.annotation","c":"HelpCommand","l":"value()"},{"p":"co.aikar.commands.annotation","c":"HelpSearchTags","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Name","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Split","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Subcommand","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Syntax","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Values","l":"value()"},{"p":"co.aikar.commands","c":"MessageKeys","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"co.aikar.commands","c":"MessageKeys","l":"values()"},{"p":"co.aikar.commands","c":"Locales","l":"VIETNAMESE"},{"p":"co.aikar.commands","c":"Locales","l":"WELSH"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"addAll(T[], T...)","u":"addAll(T[],T...)"},{"p":"co.aikar.commands","c":"Locales","l":"addBundleClassLoader(ClassLoader)","u":"addBundleClassLoader(java.lang.ClassLoader)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"addCauseMethodName(String)","u":"addCauseMethodName(java.lang.String)"},{"p":"co.aikar.commands","c":"RootCommand","l":"addChild(BaseCommand)","u":"addChild(co.aikar.commands.BaseCommand)"},{"p":"co.aikar.commands","c":"RootCommand","l":"addChildShared(List, SetMultimap, BaseCommand)","u":"addChildShared(java.util.List,com.google.common.collect.SetMultimap,co.aikar.commands.BaseCommand)"},{"p":"co.aikar.commands","c":"CommandConditions","l":"addCondition(Class

    , String, CommandConditions.ParameterCondition)","u":"addCondition(java.lang.Class,java.lang.String,co.aikar.commands.CommandConditions.ParameterCondition)"},{"p":"co.aikar.commands","c":"CommandConditions","l":"addCondition(String, CommandConditions.Condition)","u":"addCondition(java.lang.String,co.aikar.commands.CommandConditions.Condition)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessage(Locale, MessageKeyProvider, String)","u":"addMessage(java.util.Locale,co.aikar.locales.MessageKeyProvider,java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessageBundle(ClassLoader, String, Locale)","u":"addMessageBundle(java.lang.ClassLoader,java.lang.String,java.util.Locale)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessageBundle(String, Locale)","u":"addMessageBundle(java.lang.String,java.util.Locale)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessageBundles(String...)","u":"addMessageBundles(java.lang.String...)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessages(Locale, Map)","u":"addMessages(java.util.Locale,java.util.Map)"},{"p":"co.aikar.commands","c":"Locales","l":"addMessageStrings(Locale, Map)","u":"addMessageStrings(java.util.Locale,java.util.Map)"},{"p":"co.aikar.commands","c":"CommandReplacements","l":"addReplacement(String, String)","u":"addReplacement(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandReplacements","l":"addReplacements(String...)","u":"addReplacements(java.lang.String...)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"addSubcommand(String)","u":"addSubcommand(java.lang.String)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"addSubcommands(Collection)","u":"addSubcommands(java.util.Collection)"},{"p":"co.aikar.commands","c":"CommandManager","l":"addSupportedLanguage(Locale)","u":"addSupportedLanguage(java.util.Locale)"},{"p":"co.aikar.commands","c":"Locales","l":"AFRIKAANS"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"ApacheCommonsExceptionUtil()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"ApacheCommonsLangUtil()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"Locales","l":"ARABIC"},{"p":"co.aikar.commands","c":"BaseCommand","l":"BaseCommand()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"BaseCommand(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"BULGARIAN"},{"p":"co.aikar.commands","c":"CommandParameter","l":"canConsumeInput()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"canExecute(CommandIssuer, RegisteredCommand)","u":"canExecute(co.aikar.commands.CommandIssuer,co.aikar.commands.RegisteredCommand)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"canExecuteWithoutInput()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"canOverridePlayerContext()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"capitalize(String)","u":"capitalize(java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"capitalize(String, char...)","u":"capitalize(java.lang.String,char...)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"capitalize(String, char[])","u":"capitalize(java.lang.String,char[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"capitalizeFirst(String)","u":"capitalizeFirst(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"capitalizeFirst(String, char)","u":"capitalizeFirst(java.lang.String,char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"capitalizeFully(String)","u":"capitalizeFully(java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"capitalizeFully(String, char...)","u":"capitalizeFully(java.lang.String,char...)"},{"p":"co.aikar.commands","c":"Locales","l":"CHINESE"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"clone(T[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"combine(String[])","u":"combine(java.lang.String[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"combine(String[], int)","u":"combine(java.lang.String[],int)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"CommandCompletions(CommandManager)","u":"%3Cinit%3E(co.aikar.commands.CommandManager)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"CommandHelp(CommandManager, RootCommand, CommandIssuer)","u":"%3Cinit%3E(co.aikar.commands.CommandManager,co.aikar.commands.RootCommand,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"CommandHelpFormatter(CommandManager)","u":"%3Cinit%3E(co.aikar.commands.CommandManager)"},{"p":"co.aikar.commands","c":"CommandManager","l":"CommandManager()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"CommandParameter(RegisteredCommand, Parameter, int, boolean)","u":"%3Cinit%3E(co.aikar.commands.RegisteredCommand,java.lang.reflect.Parameter,int,boolean)"},{"p":"co.aikar.commands","c":"ConditionFailedException","l":"ConditionFailedException()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"ConditionFailedException","l":"ConditionFailedException(MessageKey, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"ConditionFailedException","l":"ConditionFailedException(MessageKeyProvider, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"ConditionFailedException","l":"ConditionFailedException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"conditions"},{"p":"co.aikar.commands.processors","c":"ConditionsProcessor","l":"ConditionsProcessor()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"CommandContexts","l":"contextMap"},{"p":"co.aikar.commands","c":"MessageKeys","l":"COULD_NOT_FIND_PLAYER"},{"p":"co.aikar.commands","c":"CommandManager","l":"createCommandContext(RegisteredCommand, CommandParameter, CommandIssuer, List, int, Map)","u":"createCommandContext(co.aikar.commands.RegisteredCommand,co.aikar.commands.CommandParameter,co.aikar.commands.CommandIssuer,java.util.List,int,java.util.Map)"},{"p":"co.aikar.commands","c":"CommandManager","l":"createCompletionContext(RegisteredCommand, CommandIssuer, String, String, String[])","u":"createCompletionContext(co.aikar.commands.RegisteredCommand,co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"CommandManager","l":"createConditionContext(CommandIssuer, String)","u":"createConditionContext(co.aikar.commands.CommandIssuer,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"createRegisteredCommand(BaseCommand, String, Method, String)","u":"createRegisteredCommand(co.aikar.commands.BaseCommand,java.lang.String,java.lang.reflect.Method,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"createRootCommand(String)","u":"createRootCommand(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"CZECH"},{"p":"co.aikar.commands","c":"Locales","l":"DANISH"},{"p":"co.aikar.commands","c":"CommandManager","l":"defaultExceptionHandler"},{"p":"co.aikar.commands","c":"CommandManager","l":"defaultFormatter"},{"p":"co.aikar.commands","c":"CommandManager","l":"defaultHelpPerPage"},{"p":"co.aikar.commands","c":"CommandManager","l":"dependencies"},{"p":"co.aikar.commands","c":"BaseCommand","l":"doHelp(CommandIssuer, String...)","u":"doHelp(co.aikar.commands.CommandIssuer,java.lang.String...)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"doHelp(Object, String...)","u":"doHelp(java.lang.Object,java.lang.String...)"},{"p":"co.aikar.commands","c":"Locales","l":"DUTCH"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"EMPTY"},{"p":"co.aikar.commands","c":"CommandManager","l":"enableUnstableAPI(String)","u":"enableUnstableAPI(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"ENGLISH"},{"p":"co.aikar.commands","c":"ACFUtil","l":"enumNames(Class>)","u":"enumNames(java.lang.Class)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"enumNames(Enum[])","u":"enumNames(java.lang.Enum[])"},{"p":"co.aikar.commands","c":"MessageType","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"co.aikar.commands","c":"MessageType","l":"ERROR"},{"p":"co.aikar.commands","c":"MessageKeys","l":"ERROR_GENERIC_LOGGED"},{"p":"co.aikar.commands","c":"MessageKeys","l":"ERROR_PERFORMING_COMMAND"},{"p":"co.aikar.commands","c":"MessageKeys","l":"ERROR_PREFIX"},{"p":"co.aikar.commands","c":"ExceptionHandler","l":"execute(BaseCommand, RegisteredCommand, CommandIssuer, List, Throwable)","u":"execute(co.aikar.commands.BaseCommand,co.aikar.commands.RegisteredCommand,co.aikar.commands.CommandIssuer,java.util.List,java.lang.Throwable)"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"execute(CommandIssuer, CommandRouter.CommandRouteResult)","u":"execute(co.aikar.commands.CommandIssuer,co.aikar.commands.CommandRouter.CommandRouteResult)"},{"p":"co.aikar.commands","c":"RootCommand","l":"execute(CommandIssuer, String, String[])","u":"execute(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"Locales","l":"FINNISH"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"format(int, String)","u":"format(int,java.lang.String)"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"format(String)","u":"format(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"formatMessage(CommandIssuer, MessageType, MessageKeyProvider, String...)","u":"formatMessage(co.aikar.commands.CommandIssuer,co.aikar.commands.MessageType,co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"formatNumber(Integer)","u":"formatNumber(java.lang.Integer)"},{"p":"co.aikar.commands","c":"CommandManager","l":"formatters"},{"p":"co.aikar.commands","c":"Locales","l":"FRENCH"},{"p":"co.aikar.commands","c":"CommandManager","l":"generateCommandHelp()"},{"p":"co.aikar.commands","c":"CommandManager","l":"generateCommandHelp(CommandIssuer, RootCommand)","u":"generateCommandHelp(co.aikar.commands.CommandIssuer,co.aikar.commands.RootCommand)"},{"p":"co.aikar.commands","c":"CommandManager","l":"generateCommandHelp(CommandIssuer, String)","u":"generateCommandHelp(co.aikar.commands.CommandIssuer,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"generateCommandHelp(String)","u":"generateCommandHelp(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"GERMAN"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getAnnotation(Class)","u":"getAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getAnnotation(Class)","u":"getAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getAnnotation(Class)","u":"getAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getAnnotationValue(Class)","u":"getAnnotationValue(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getAnnotationValue(Class)","u":"getAnnotationValue(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getAnnotationValue(Class, int)","u":"getAnnotationValue(java.lang.Class,int)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getAnnotationValue(Class, int)","u":"getAnnotationValue(java.lang.Class,int)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"getApplicableParameters()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getArgs()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getArgs()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getBooleanFlagValue(String)","u":"getBooleanFlagValue(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getBooleanFlagValue(String, Boolean)","u":"getBooleanFlagValue(java.lang.String,java.lang.Boolean)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getCause()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getCause(Throwable)","u":"getCause(java.lang.Throwable)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getCause(Throwable, String[])","u":"getCause(java.lang.Throwable,java.lang.String[])"},{"p":"co.aikar.commands","c":"RootCommand","l":"getChildren()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getCmd()"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"getColor(int)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getCommand()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getCommand()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getCommand()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandCompletions()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandConditions()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandContexts()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getCommandHelp()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getCommandIssuer()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandIssuer(Object)","u":"getCommandIssuer(java.lang.Object)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getCommandLabel()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getCommandManager()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getCommandName()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getCommandName()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getCommandPrefix()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getCommandPrefix()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandPrefix(CommandIssuer)","u":"getCommandPrefix(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCommandReplacements()"},{"p":"co.aikar.commands","c":"CommandCompletions.CommandCompletionHandler","l":"getCompletions(C)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getConditions()"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getConfig()"},{"p":"co.aikar.commands","c":"ConditionContext","l":"getConfig()"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getConfig(String)","u":"getConfig(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getConfig(String, String)","u":"getConfig(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getConfigs()"},{"p":"co.aikar.commands","c":"ConditionContext","l":"getConfigValue(String, Integer)","u":"getConfigValue(java.lang.String,java.lang.Integer)"},{"p":"co.aikar.commands","c":"ConditionContext","l":"getConfigValue(String, String)","u":"getConfigValue(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands.contexts","c":"ContextResolver","l":"getContext(C)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getContextFlags(Class)","u":"getContextFlags(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValue(Class)","u":"getContextValue(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValue(Class, Integer)","u":"getContextValue(java.lang.Class,java.lang.Integer)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValueByName(Class, String)","u":"getContextValueByName(java.lang.Class,java.lang.String)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getCurrentCommandIssuer()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCurrentCommandIssuer()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getCurrentCommandManager()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCurrentCommandManager()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getCurrentCommandOperationContext()"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"getDefaultColor()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getDefaultExceptionHandler()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getDefaultFormatter()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getDefaultHelpPerPage()"},{"p":"co.aikar.commands","c":"Locales","l":"getDefaultLocale()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getDefaultRegisteredCommand()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getDefaultRegisteredCommand()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getDefaultValue()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getDefCommand()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getDescription()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getDescription()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getDescription()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getDisplayName(CommandIssuer)","u":"getDisplayName(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getDoubleFlagValue(String, Number)","u":"getDoubleFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"getEntryFormatReplacements(CommandHelp, HelpEntry)","u":"getEntryFormatReplacements(co.aikar.commands.CommandHelp,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"getEnumFromName(T[], String)","u":"getEnumFromName(T[],java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"getEnumFromName(T[], String, T)","u":"getEnumFromName(T[],java.lang.String,T)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"getEnumFromOrdinal(T[], int)","u":"getEnumFromOrdinal(T[],int)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getExceptionHandler()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getExecCommandLabel()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getExecSubcommand()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFirstArg()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"getFirstElement(Iterable)","u":"getFirstElement(java.lang.Iterable)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlags()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getFlags()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Double)","u":"getFlagValue(java.lang.String,java.lang.Double)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Float)","u":"getFlagValue(java.lang.String,java.lang.Float)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Integer)","u":"getFlagValue(java.lang.String,java.lang.Integer)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Long)","u":"getFlagValue(java.lang.String,java.lang.Long)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, Number)","u":"getFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFlagValue(String, String)","u":"getFlagValue(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getFloatFlagValue(String, Number)","u":"getFloatFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandManager","l":"getFormat(MessageType)","u":"getFormat(co.aikar.commands.MessageType)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getFullStackTrace(Throwable)","u":"getFullStackTrace(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"getHeaderFooterFormatReplacements(CommandHelp)","u":"getHeaderFooterFormatReplacements(co.aikar.commands.CommandHelp)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getHelpEntries()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getHelpFormatter()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getHelpText()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getIndex()"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getInput()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getIntFlagValue(String, Number)","u":"getIntFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getIssuer()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getIssuer()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getIssuer()"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"getIssuer()"},{"p":"co.aikar.commands","c":"ConditionContext","l":"getIssuer()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getIssuerLocale(CommandIssuer)","u":"getIssuerLocale(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getLastArg()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getLastCommandOperationContext()"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"getLastCommandOperationContext()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getLocales()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getLongFlagValue(String, Number)","u":"getLongFlagValue(java.lang.String,java.lang.Number)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getManager()"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"getManager()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getManager()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getManager()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getMessage()"},{"p":"co.aikar.commands","c":"Locales","l":"getMessage(CommandIssuer, MessageKeyProvider)","u":"getMessage(co.aikar.commands.CommandIssuer,co.aikar.locales.MessageKeyProvider)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getMessage(int)"},{"p":"co.aikar.commands","c":"MessageKeys","l":"getMessageKey()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getMessages()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getName()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getName()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getNextParam()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getNumParams()"},{"p":"co.aikar.commands","c":"Locales","l":"getOptionalMessage(CommandIssuer, MessageKey)","u":"getOptionalMessage(co.aikar.commands.CommandIssuer,co.aikar.locales.MessageKey)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getOrigArgs()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getPage()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getParam()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getParameter()"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"getParameterFormatReplacements(CommandHelp, CommandParameter, HelpEntry)","u":"getParameterFormatReplacements(co.aikar.commands.CommandHelp,co.aikar.commands.CommandParameter,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getParameterPermissions()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getParameters()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getParameterSyntax()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getParameterSyntax(CommandIssuer)","u":"getParameterSyntax(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getParamIndex()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getPassedArgs()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getPermission()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getPerPage()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getPrefSubCommand()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"getRegisteredCommand()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getRegisteredCommands()"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"getRegisteredCommands()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getRegisteredRootCommands()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getRequiredPermissions()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getRequiredPermissions()"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"getRequiredPermissions()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getRequiredPermissions()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getResolvedArg(Class...)","u":"getResolvedArg(java.lang.Class...)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getResolvedArg(String)","u":"getResolvedArg(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"getResolvedArg(String, Class...)","u":"getResolvedArg(java.lang.String,java.lang.Class...)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getResolver()"},{"p":"co.aikar.commands","c":"CommandContexts","l":"getResolver(Class)","u":"getResolver(java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getRootCause(Throwable)","u":"getRootCause(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"CommandManager","l":"getRootCommand(String)","u":"getRootCommand(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getSearch()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getSearchScore()"},{"p":"co.aikar.commands","c":"HelpEntry","l":"getSearchTags()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getSelectedEntry()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getStackTrace(Throwable)","u":"getStackTrace(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"getSubCommands()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getSubCommands()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getSupportedLanguages()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getSyntax()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getSyntax(CommandIssuer)","u":"getSyntax(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getSyntaxText()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"getSyntaxText(CommandIssuer)","u":"getSyntaxText(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"RootCommand","l":"getTabCompletions(CommandIssuer, String, String[])","u":"getTabCompletions(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"RootCommand","l":"getTabCompletions(CommandIssuer, String, String[], boolean)","u":"getTabCompletions(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[],boolean)"},{"p":"co.aikar.commands","c":"RootCommand","l":"getTabCompletions(CommandIssuer, String, String[], boolean, boolean)","u":"getTabCompletions(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[],boolean,boolean)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getThrowable(int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getThrowableCount()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getThrowableCount(Throwable)","u":"getThrowableCount(java.lang.Throwable)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getThrowableList(Throwable)","u":"getThrowableList(java.lang.Throwable)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"getThrowables()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"getThrowables(Throwable)","u":"getThrowables(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getTotalPages()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"getTotalResults()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getType()"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"getUniqueId()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getUniquePermission()"},{"p":"co.aikar.commands","c":"RootCommand","l":"getUsage()"},{"p":"co.aikar.commands","c":"CommandManager","l":"getValidNamePredicate()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"getValues()"},{"p":"co.aikar.commands","c":"Locales","l":"GREEK"},{"p":"co.aikar.commands","c":"CommandManager","l":"handleUncaughtException(BaseCommand, RegisteredCommand, CommandIssuer, List, Throwable)","u":"handleUncaughtException(co.aikar.commands.BaseCommand,co.aikar.commands.RegisteredCommand,co.aikar.commands.CommandIssuer,java.util.List,java.lang.Throwable)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"hasAnnotation(Class)","u":"hasAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"hasAnnotation(Class)","u":"hasAnnotation(java.lang.Class)"},{"p":"co.aikar.commands","c":"RootCommand","l":"hasAnyPermission(CommandIssuer)","u":"hasAnyPermission(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"hasConfig(String)","u":"hasConfig(java.lang.String)"},{"p":"co.aikar.commands","c":"ConditionContext","l":"hasConfig(String)","u":"hasConfig(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"hasFlag(String)","u":"hasFlag(java.lang.String)"},{"p":"co.aikar.commands","c":"MessageType","l":"hashCode()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"hasIntersection(Collection, Collection)","u":"hasIntersection(java.util.Collection,java.util.Collection)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"hasPermission(CommandIssuer)","u":"hasPermission(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"hasPermission(CommandIssuer)","u":"hasPermission(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandManager","l":"hasPermission(CommandIssuer, Set)","u":"hasPermission(co.aikar.commands.CommandIssuer,java.util.Set)"},{"p":"co.aikar.commands","c":"CommandManager","l":"hasPermission(CommandIssuer, String)","u":"hasPermission(co.aikar.commands.CommandIssuer,java.lang.String)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"hasPermission(Object)","u":"hasPermission(java.lang.Object)"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"hasPermission(Object)","u":"hasPermission(java.lang.Object)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"hasPermission(String)","u":"hasPermission(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"hasRegisteredCommands()"},{"p":"co.aikar.commands","c":"Locales","l":"HEBREW"},{"p":"co.aikar.commands","c":"MessageType","l":"HELP"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_DETAILED_COMMAND_FORMAT"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_DETAILED_HEADER"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_DETAILED_PARAMETER_FORMAT"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_FORMAT"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_HEADER"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_NO_RESULTS"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_PAGE_INFORMATION"},{"p":"co.aikar.commands","c":"MessageKeys","l":"HELP_SEARCH_HEADER"},{"p":"co.aikar.commands","c":"BaseCommand","l":"help(CommandIssuer, String[])","u":"help(co.aikar.commands.CommandIssuer,java.lang.String[])"},{"p":"co.aikar.commands","c":"BaseCommand","l":"help(Object, String[])","u":"help(java.lang.Object,java.lang.String[])"},{"p":"co.aikar.commands","c":"CommandManager","l":"helpFormatter"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"helpSearchTags"},{"p":"co.aikar.commands","c":"Locales","l":"HINDI"},{"p":"co.aikar.commands","c":"Locales","l":"HUNGARIAN"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"INDEX_NOT_FOUND"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"indexOf(Object[], Object)","u":"indexOf(java.lang.Object[],java.lang.Object)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"indexOf(Object[], Object, int)","u":"indexOf(java.lang.Object[],java.lang.Object,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"indexOf(String, String[])","u":"indexOf(java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"indexOfThrowable(Class)","u":"indexOfThrowable(java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"indexOfThrowable(Class, int)","u":"indexOfThrowable(java.lang.Class,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"indexOfThrowable(Throwable, Class)","u":"indexOfThrowable(java.lang.Throwable,java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"indexOfThrowable(Throwable, Class, int)","u":"indexOfThrowable(java.lang.Throwable,java.lang.Class,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"indexOfType(Throwable, Class)","u":"indexOfType(java.lang.Throwable,java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"indexOfType(Throwable, Class, int)","u":"indexOfType(java.lang.Throwable,java.lang.Class,int)"},{"p":"co.aikar.commands","c":"MessageType","l":"INFO"},{"p":"co.aikar.commands","c":"MessageKeys","l":"INFO_MESSAGE"},{"p":"co.aikar.commands","c":"ACFUtil","l":"intersection(Collection, Collection)","u":"intersection(java.util.Collection,java.util.Collection)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"intToRoman(int)"},{"p":"co.aikar.commands","c":"MessageKeys","l":"INVALID_SYNTAX"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(MessageKey, boolean, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKey,boolean,java.lang.String...)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(MessageKey, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(MessageKeyProvider, boolean, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKeyProvider,boolean,java.lang.String...)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(MessageKeyProvider, String...)","u":"%3Cinit%3E(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"co.aikar.commands","c":"InvalidCommandArgument","l":"InvalidCommandArgument(String, boolean)","u":"%3Cinit%3E(java.lang.String,boolean)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"isAsync()"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"isAsync()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isBetween(float, double, double)","u":"isBetween(float,double,double)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"isCauseMethodName(String)","u":"isCauseMethodName(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isCommandIssuer()"},{"p":"co.aikar.commands","c":"CommandManager","l":"isCommandIssuer(Class)","u":"isCommandIssuer(java.lang.Class)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"isDelimiter(char, char[])","u":"isDelimiter(char,char[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isDouble(String)","u":"isDouble(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isFloat(String)","u":"isFloat(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isInteger(String)","u":"isInteger(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isLast()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"isLastArg()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"isLastPage()"},{"p":"co.aikar.commands","c":"CommandManager","l":"isLoggingUnhandledExceptions()"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"isNestedThrowable(Throwable)","u":"isNestedThrowable(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isNumber(String)","u":"isNumber(java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"isNumeric(CharSequence)","u":"isNumeric(java.lang.CharSequence)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"isOnlyPage()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"isOptional()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isOptional()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isOptionalInput()"},{"p":"co.aikar.commands","c":"CommandParameter","l":"isOptionalResolver()"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"isPlayer()"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"isPrivate()"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"issuer"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"issuer"},{"p":"co.aikar.commands","c":"CommandManager","l":"issuersLocale"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"isThrowableNested()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"isTruthy(String)","u":"isTruthy(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"isValidName(String)","u":"isValidName(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"ITALIAN"},{"p":"co.aikar.commands","c":"Locales","l":"JAPANESE"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(byte[], char)","u":"join(byte[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(byte[], char, int, int)","u":"join(byte[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(char[], char)","u":"join(char[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(char[], char, int, int)","u":"join(char[],char,int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(Collection)","u":"join(java.util.Collection)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(Collection, String)","u":"join(java.util.Collection,java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(double[], char)","u":"join(double[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(double[], char, int, int)","u":"join(double[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(float[], char)","u":"join(float[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(float[], char, int, int)","u":"join(float[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(int[], char)","u":"join(int[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(int[], char, int, int)","u":"join(int[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Iterable, char)","u":"join(java.lang.Iterable,char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Iterable, String)","u":"join(java.lang.Iterable,java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Iterator, char)","u":"join(java.util.Iterator,char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Iterator, String)","u":"join(java.util.Iterator,java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(long[], char)","u":"join(long[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(long[], char, int, int)","u":"join(long[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Object[], char)","u":"join(java.lang.Object[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Object[], char, int, int)","u":"join(java.lang.Object[],char,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Object[], String)","u":"join(java.lang.Object[],java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(Object[], String, int, int)","u":"join(java.lang.Object[],java.lang.String,int,int)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(short[], char)","u":"join(short[],char)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(short[], char, int, int)","u":"join(short[],char,int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[])","u":"join(java.lang.String[])"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[], char)","u":"join(java.lang.String[],char)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[], int)","u":"join(java.lang.String[],int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[], int, char)","u":"join(java.lang.String[],int,char)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"join(String[], String)","u":"join(java.lang.String[],java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"join(T...)"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"joinArgs()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"joinArgs(String)","u":"joinArgs(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"KOREAN"},{"p":"co.aikar.commands","c":"Locales","l":"LATIN"},{"p":"co.aikar.commands","c":"ACFUtil","l":"limit(String, int)","u":"limit(java.lang.String,int)"},{"p":"co.aikar.commands","c":"Locales","l":"loadLanguages()"},{"p":"co.aikar.commands","c":"Locales","l":"loadMissingBundles()"},{"p":"co.aikar.commands","c":"CommandManager","l":"localeChangedCallbacks"},{"p":"co.aikar.commands","c":"Locales","l":"Locales(CommandManager)","u":"%3Cinit%3E(co.aikar.commands.CommandManager)"},{"p":"co.aikar.commands","c":"CommandManager","l":"log(LogLevel, String)","u":"log(co.aikar.commands.LogLevel,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"log(LogLevel, String, Throwable)","u":"log(co.aikar.commands.LogLevel,java.lang.String,java.lang.Throwable)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"ltrim(String)","u":"ltrim(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"manager"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"MessageFormatter(FT...)","u":"%3Cinit%3E(FT...)"},{"p":"co.aikar.commands","c":"MessageType","l":"MessageType()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"MessageKeys","l":"MUST_BE_A_NUMBER"},{"p":"co.aikar.commands","c":"MessageKeys","l":"MUST_BE_MAX_LENGTH"},{"p":"co.aikar.commands","c":"MessageKeys","l":"MUST_BE_MIN_LENGTH"},{"p":"co.aikar.commands","c":"MessageKeys","l":"NO_COMMAND_MATCHED_SEARCH"},{"p":"co.aikar.commands","c":"ACFUtil","l":"normalize(String)","u":"normalize(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"NORWEGIAN_BOKMAAL"},{"p":"co.aikar.commands","c":"Locales","l":"NORWEGIAN_NYNORSK"},{"p":"co.aikar.commands","c":"MessageKeys","l":"NOT_ALLOWED_ON_CONSOLE"},{"p":"co.aikar.commands","c":"CommandManager","l":"notifyLocaleChange(I, Locale, Locale)","u":"notifyLocaleChange(I,java.util.Locale,java.util.Locale)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"nullDefault(Object, Object)","u":"nullDefault(java.lang.Object,java.lang.Object)"},{"p":"co.aikar.commands","c":"CommandManager","l":"obtainRootCommand(String)","u":"obtainRootCommand(java.lang.String)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onBaseCommandRegister(BaseCommand, T)","u":"onBaseCommandRegister(co.aikar.commands.BaseCommand,T)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onCommandRegistered(RegisteredCommand, T)","u":"onCommandRegistered(co.aikar.commands.RegisteredCommand,T)"},{"p":"co.aikar.commands","c":"IssuerLocaleChangedCallback","l":"onIssuerLocaleChange(I, Locale, Locale)","u":"onIssuerLocaleChange(I,java.util.Locale,java.util.Locale)"},{"p":"co.aikar.commands","c":"CommandManager","l":"onLocaleChange(IssuerLocaleChangedCallback)","u":"onLocaleChange(co.aikar.commands.IssuerLocaleChangedCallback)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onParameterRegistered(RegisteredCommand, int, Parameter, T)","u":"onParameterRegistered(co.aikar.commands.RegisteredCommand,int,java.lang.reflect.Parameter,T)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onPostComand(CommandOperationContext)","u":"onPostComand(co.aikar.commands.CommandOperationContext)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onPostContextResolution(CommandExecutionContext, Object)","u":"onPostContextResolution(co.aikar.commands.CommandExecutionContext,java.lang.Object)"},{"p":"co.aikar.commands.processors","c":"ConditionsProcessor","l":"onPostContextResolution(CommandExecutionContext, Object)","u":"onPostContextResolution(co.aikar.commands.CommandExecutionContext,java.lang.Object)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onPreComand(CommandOperationContext)","u":"onPreComand(co.aikar.commands.CommandOperationContext)"},{"p":"co.aikar.commands.processors","c":"ConditionsProcessor","l":"onPreComand(CommandOperationContext)","u":"onPreComand(co.aikar.commands.CommandOperationContext)"},{"p":"co.aikar.commands","c":"AnnotationProcessor","l":"onPreContextResolution(CommandExecutionContext)","u":"onPreContextResolution(co.aikar.commands.CommandExecutionContext)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"padLeft(String, int)","u":"padLeft(java.lang.String,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"padRight(String, int)","u":"padRight(java.lang.String,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseBigNumber(String, boolean)","u":"parseBigNumber(java.lang.String,boolean)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseDouble(String)","u":"parseDouble(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseDouble(String, Double)","u":"parseDouble(java.lang.String,java.lang.Double)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseFloat(String)","u":"parseFloat(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseFloat(String, Float)","u":"parseFloat(java.lang.String,java.lang.Float)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseInt(String)","u":"parseInt(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseInt(String, Integer)","u":"parseInt(java.lang.String,java.lang.Integer)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseLong(String)","u":"parseLong(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseLong(String, Long)","u":"parseLong(java.lang.String,java.lang.Long)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"parseNumber(String, boolean)","u":"parseNumber(java.lang.String,boolean)"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PERMISSION_DENIED"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PERMISSION_DENIED_PARAMETER"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PLEASE_SPECIFY_AT_LEAST"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PLEASE_SPECIFY_AT_MOST"},{"p":"co.aikar.commands","c":"MessageKeys","l":"PLEASE_SPECIFY_ONE_OF"},{"p":"co.aikar.commands","c":"Locales","l":"POLISH"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"popFirstArg()"},{"p":"co.aikar.commands","c":"CommandExecutionContext","l":"popLastArg()"},{"p":"co.aikar.commands","c":"Locales","l":"PORTUGUESE"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"postCommand()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"precision(double, int)","u":"precision(double,int)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"preCommand()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"preformOnImmutable(List, Consumer>)","u":"preformOnImmutable(java.util.List,java.util.function.Consumer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printDetailedHelpCommand(CommandHelp, CommandIssuer, HelpEntry)","u":"printDetailedHelpCommand(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printDetailedHelpFooter(CommandHelp, CommandIssuer, HelpEntry)","u":"printDetailedHelpFooter(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printDetailedHelpHeader(CommandHelp, CommandIssuer, HelpEntry)","u":"printDetailedHelpHeader(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printDetailedParameter(CommandHelp, CommandIssuer, HelpEntry, CommandParameter)","u":"printDetailedParameter(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry,co.aikar.commands.CommandParameter)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printHelpCommand(CommandHelp, CommandIssuer, HelpEntry)","u":"printHelpCommand(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printHelpFooter(CommandHelp, CommandIssuer)","u":"printHelpFooter(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printHelpHeader(CommandHelp, CommandIssuer)","u":"printHelpHeader(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"printPartialStackTrace(PrintWriter)","u":"printPartialStackTrace(java.io.PrintWriter)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printSearchEntry(CommandHelp, CommandIssuer, HelpEntry)","u":"printSearchEntry(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printSearchFooter(CommandHelp, CommandIssuer)","u":"printSearchFooter(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"printSearchHeader(CommandHelp, CommandIssuer)","u":"printSearchHeader(co.aikar.commands.CommandHelp,co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"printStackTrace(PrintStream)","u":"printStackTrace(java.io.PrintStream)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil.Nestable","l":"printStackTrace(PrintWriter)","u":"printStackTrace(java.io.PrintWriter)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"rand(double, double)","u":"rand(double,double)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"rand(int, int)","u":"rand(int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"rand(int, int, int, int)","u":"rand(int,int,int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"randBool()"},{"p":"co.aikar.commands","c":"ACFUtil","l":"RANDOM"},{"p":"co.aikar.commands","c":"ACFUtil","l":"random(Class)","u":"random(java.lang.Class)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"random(List)","u":"random(java.util.List)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"random(T[])"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerAsyncCompletion(String, CommandCompletions.AsyncCommandCompletionHandler)","u":"registerAsyncCompletion(java.lang.String,co.aikar.commands.CommandCompletions.AsyncCommandCompletionHandler)"},{"p":"co.aikar.commands","c":"CommandManager","l":"registerCommand(BaseCommand)","u":"registerCommand(co.aikar.commands.BaseCommand)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerCompletion(String, CommandCompletions.CommandCompletionHandler)","u":"registerCompletion(java.lang.String,co.aikar.commands.CommandCompletions.CommandCompletionHandler)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerContext(Class, ContextResolver)","u":"registerContext(java.lang.Class,co.aikar.commands.contexts.ContextResolver)"},{"p":"co.aikar.commands","c":"CommandManager","l":"registerDependency(Class, String, T)","u":"registerDependency(java.lang.Class,java.lang.String,T)"},{"p":"co.aikar.commands","c":"CommandManager","l":"registerDependency(Class, T)","u":"registerDependency(java.lang.Class,T)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerIssuerAwareContext(Class, IssuerAwareContextResolver)","u":"registerIssuerAwareContext(java.lang.Class,co.aikar.commands.contexts.IssuerAwareContextResolver)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerIssuerOnlyContext(Class, IssuerOnlyContextResolver)","u":"registerIssuerOnlyContext(java.lang.Class,co.aikar.commands.contexts.IssuerOnlyContextResolver)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerOptionalContext(Class, OptionalContextResolver)","u":"registerOptionalContext(java.lang.Class,co.aikar.commands.contexts.OptionalContextResolver)"},{"p":"co.aikar.commands","c":"CommandContexts","l":"registerSenderAwareContext(Class, IssuerAwareContextResolver)","u":"registerSenderAwareContext(java.lang.Class,co.aikar.commands.contexts.IssuerAwareContextResolver)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerStaticCompletion(String, Collection)","u":"registerStaticCompletion(java.lang.String,java.util.Collection)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerStaticCompletion(String, String)","u":"registerStaticCompletion(java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerStaticCompletion(String, String[])","u":"registerStaticCompletion(java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"registerStaticCompletion(String, Supplier>)","u":"registerStaticCompletion(java.lang.String,java.util.function.Supplier)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"removeCauseMethodName(String)","u":"removeCauseMethodName(java.lang.String)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"removeCommonFrames(List, List)","u":"removeCommonFrames(java.util.List,java.util.List)"},{"p":"co.aikar.commands","c":"CommandReplacements","l":"replace(String)","u":"replace(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replace(String, Pattern, String)","u":"replace(java.lang.String,java.util.regex.Pattern,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replace(String, String, String)","u":"replace(java.lang.String,java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"replaceI18NStrings(String)","u":"replaceI18NStrings(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"replacements"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePattern(String, Pattern, String)","u":"replacePattern(java.lang.String,java.util.regex.Pattern,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePattern(String, String, String)","u":"replacePattern(java.lang.String,java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePatternMatch(String, Pattern, String)","u":"replacePatternMatch(java.lang.String,java.util.regex.Pattern,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePatternMatch(String, String, String)","u":"replacePatternMatch(java.lang.String,java.lang.String,java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replacePatterns(String, String...)","u":"replacePatterns(java.lang.String,java.lang.String...)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"replaceStrings(String, String...)","u":"replaceStrings(java.lang.String,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"requiresInput()"},{"p":"co.aikar.commands","c":"BaseCommand","l":"requiresPermission(String)","u":"requiresPermission(java.lang.String)"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"requiresPermission(String)","u":"requiresPermission(java.lang.String)"},{"p":"co.aikar.commands","c":"RegisteredCommand","l":"requiresPermission(String)","u":"requiresPermission(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"ROMANIAN"},{"p":"co.aikar.commands","c":"CommandManager","l":"rootCommands"},{"p":"co.aikar.commands","c":"ACFUtil","l":"round(double, int)","u":"round(double,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"roundUp(int, int)","u":"roundUp(int,int)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"rtrim(String)","u":"rtrim(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"RUSSIAN"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendError(MessageKey, String...)","u":"sendError(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendError(MessageKeyProvider, String...)","u":"sendError(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendInfo(MessageKey, String...)","u":"sendInfo(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendInfo(MessageKeyProvider, String...)","u":"sendInfo(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandManager","l":"sendMessage(CommandIssuer, MessageType, MessageKeyProvider, String...)","u":"sendMessage(co.aikar.commands.CommandIssuer,co.aikar.commands.MessageType,co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandManager","l":"sendMessage(IT, MessageType, MessageKeyProvider, String...)","u":"sendMessage(IT,co.aikar.commands.MessageType,co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendMessage(MessageType, MessageKey, String...)","u":"sendMessage(co.aikar.commands.MessageType,co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendMessage(MessageType, MessageKeyProvider, String...)","u":"sendMessage(co.aikar.commands.MessageType,co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendMessage(String)","u":"sendMessage(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendMessageInternal(String)","u":"sendMessageInternal(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendSyntax(MessageKey, String...)","u":"sendSyntax(co.aikar.locales.MessageKey,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandIssuer","l":"sendSyntax(MessageKeyProvider, String...)","u":"sendSyntax(co.aikar.locales.MessageKeyProvider,java.lang.String...)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setCanConsumeInput(boolean)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsExceptionUtil","l":"setCause(Throwable, Throwable)","u":"setCause(java.lang.Throwable,java.lang.Throwable)"},{"p":"co.aikar.commands","c":"MessageFormatter","l":"setColor(int, FT)","u":"setColor(int,FT)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setCommandIssuer(boolean)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setConditions(String)","u":"setConditions(java.lang.String)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"setContextFlags(Class, String)","u":"setContextFlags(java.lang.Class,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"setDefaultCompletion(String, Class...)","u":"setDefaultCompletion(java.lang.String,java.lang.Class...)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setDefaultExceptionHandler(ExceptionHandler)","u":"setDefaultExceptionHandler(co.aikar.commands.ExceptionHandler)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setDefaultExceptionHandler(ExceptionHandler, boolean)","u":"setDefaultExceptionHandler(co.aikar.commands.ExceptionHandler,boolean)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setDefaultFormatter(MF)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setDefaultHelpPerPage(int)"},{"p":"co.aikar.commands","c":"Locales","l":"setDefaultLocale(Locale)","u":"setDefaultLocale(java.util.Locale)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setDefaultValue(String)","u":"setDefaultValue(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setDescription(String)","u":"setDescription(java.lang.String)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"setExceptionHandler(ExceptionHandler)","u":"setExceptionHandler(co.aikar.commands.ExceptionHandler)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setFlags(Map)","u":"setFlags(java.util.Map)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setFormat(MessageType, FT...)","u":"setFormat(co.aikar.commands.MessageType,FT...)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setFormat(MessageType, int, FT)","u":"setFormat(co.aikar.commands.MessageType,int,FT)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setFormat(MessageType, MF)","u":"setFormat(co.aikar.commands.MessageType,MF)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setHelpFormatter(CommandHelpFormatter)","u":"setHelpFormatter(co.aikar.commands.CommandHelpFormatter)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setIssuerLocale(IT, Locale)","u":"setIssuerLocale(IT,java.util.Locale)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setNextParam(CommandParameter)","u":"setNextParam(co.aikar.commands.CommandParameter)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setOptional(boolean)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setOptionalResolver(boolean)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"setPage(int)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"setPage(int, int)","u":"setPage(int,int)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"setPerPage(int)"},{"p":"co.aikar.commands","c":"CommandOperationContext","l":"setRegisteredCommand(RegisteredCommand)","u":"setRegisteredCommand(co.aikar.commands.RegisteredCommand)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setRequiresInput(boolean)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setResolver(ContextResolver)","u":"setResolver(co.aikar.commands.contexts.ContextResolver)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"setSearch(List)","u":"setSearch(java.util.List)"},{"p":"co.aikar.commands","c":"HelpEntry","l":"setSearchScore(int)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setSyntax(String)","u":"setSyntax(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"setValidNamePredicate(Predicate)","u":"setValidNamePredicate(java.util.function.Predicate)"},{"p":"co.aikar.commands","c":"CommandParameter","l":"setValues(String[])","u":"setValues(java.lang.String[])"},{"p":"co.aikar.commands","c":"HelpEntry","l":"shouldShow()"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"showAllResults(CommandHelp, List)","u":"showAllResults(co.aikar.commands.CommandHelp,java.util.List)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"showCommandHelp()"},{"p":"co.aikar.commands","c":"ShowCommandHelp","l":"ShowCommandHelp()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"ShowCommandHelp","l":"ShowCommandHelp(boolean)","u":"%3Cinit%3E(boolean)"},{"p":"co.aikar.commands","c":"ShowCommandHelp","l":"ShowCommandHelp(List)","u":"%3Cinit%3E(java.util.List)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"showDetailedHelp(CommandHelp, HelpEntry)","u":"showDetailedHelp(co.aikar.commands.CommandHelp,co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"showHelp()"},{"p":"co.aikar.commands","c":"CommandHelp","l":"showHelp(CommandIssuer)","u":"showHelp(co.aikar.commands.CommandIssuer)"},{"p":"co.aikar.commands","c":"CommandHelpFormatter","l":"showSearchResults(CommandHelp, List)","u":"showSearchResults(co.aikar.commands.CommandHelp,java.util.List)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"showSyntax(CommandIssuer, RegisteredCommand)","u":"showSyntax(co.aikar.commands.CommandIssuer,co.aikar.commands.RegisteredCommand)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"simpleMatch(Class>, String)","u":"simpleMatch(java.lang.Class,java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"SIMPLIFIED_CHINESE"},{"p":"co.aikar.commands","c":"ACFUtil","l":"simplifyString(String)","u":"simplifyString(java.lang.String)"},{"p":"co.aikar.commands","c":"ACFUtil","l":"sneaky(Throwable)","u":"sneaky(java.lang.Throwable)"},{"p":"co.aikar.commands","c":"Locales","l":"SPANISH"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"startsWith(CharSequence, CharSequence)","u":"startsWith(java.lang.CharSequence,java.lang.CharSequence)"},{"p":"co.aikar.commands.apachecommonslang","c":"ApacheCommonsLangUtil","l":"startsWithIgnoreCase(CharSequence, CharSequence)","u":"startsWithIgnoreCase(java.lang.CharSequence,java.lang.CharSequence)"},{"p":"co.aikar.commands","c":"CommandManager","l":"supportedLanguages"},{"p":"co.aikar.commands","c":"Locales","l":"SWEDISH"},{"p":"co.aikar.commands","c":"CommandCompletions.SyncCompletionRequired","l":"SyncCompletionRequired()","u":"%3Cinit%3E()"},{"p":"co.aikar.commands","c":"MessageType","l":"SYNTAX"},{"p":"co.aikar.commands","c":"ForwardingCommand","l":"tabComplete(CommandIssuer, RootCommand, String[], boolean)","u":"tabComplete(co.aikar.commands.CommandIssuer,co.aikar.commands.RootCommand,java.lang.String[],boolean)"},{"p":"co.aikar.commands","c":"BaseCommand","l":"tabComplete(CommandIssuer, String, String[])","u":"tabComplete(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[])"},{"p":"co.aikar.commands","c":"BaseCommand","l":"tabComplete(CommandIssuer, String, String[], boolean)","u":"tabComplete(co.aikar.commands.CommandIssuer,java.lang.String,java.lang.String[],boolean)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"testExactMatch(String)","u":"testExactMatch(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"THAI"},{"p":"co.aikar.commands","c":"Locales","l":"TRADITIONAL_CHINESE"},{"p":"co.aikar.commands","c":"Locales","l":"TURKISH"},{"p":"co.aikar.commands","c":"ACFUtil","l":"ucfirst(String)","u":"ucfirst(java.lang.String)"},{"p":"co.aikar.commands","c":"Locales","l":"UKRANIAN"},{"p":"co.aikar.commands","c":"MessageKeys","l":"UNKNOWN_COMMAND"},{"p":"co.aikar.commands","c":"CommandCompletions","l":"unregisterCompletion(String)","u":"unregisterCompletion(java.lang.String)"},{"p":"co.aikar.commands","c":"CommandManager","l":"unregisterDependency(Class)","u":"unregisterDependency(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandManager","l":"unregisterDependency(Class, String)","u":"unregisterDependency(java.lang.Class,java.lang.String)"},{"p":"co.aikar.commands","c":"CommandHelp","l":"updateSearchScore(HelpEntry)","u":"updateSearchScore(co.aikar.commands.HelpEntry)"},{"p":"co.aikar.commands","c":"CommandManager","l":"usePerIssuerLocale"},{"p":"co.aikar.commands","c":"CommandManager","l":"usePerIssuerLocale(boolean)"},{"p":"co.aikar.commands","c":"CommandManager","l":"usingPerIssuerLocale()"},{"p":"co.aikar.commands","c":"CommandConditions.Condition","l":"validateCondition(ConditionContext)","u":"validateCondition(co.aikar.commands.ConditionContext)"},{"p":"co.aikar.commands","c":"CommandConditions.ParameterCondition","l":"validateCondition(ConditionContext, CEC, P)","u":"validateCondition(co.aikar.commands.ConditionContext,CEC,P)"},{"p":"co.aikar.commands","c":"CommandManager","l":"validNamePredicate"},{"p":"co.aikar.commands.annotation","c":"CommandAlias","l":"value()"},{"p":"co.aikar.commands.annotation","c":"CommandCompletion","l":"value()"},{"p":"co.aikar.commands.annotation","c":"CommandPermission","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Conditions","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Default","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Dependency","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Description","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Flags","l":"value()"},{"p":"co.aikar.commands.annotation","c":"HelpCommand","l":"value()"},{"p":"co.aikar.commands.annotation","c":"HelpSearchTags","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Name","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Split","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Subcommand","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Syntax","l":"value()"},{"p":"co.aikar.commands.annotation","c":"Values","l":"value()"},{"p":"co.aikar.commands","c":"MessageKeys","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"co.aikar.commands","c":"MessageKeys","l":"values()"},{"p":"co.aikar.commands","c":"Locales","l":"VIETNAMESE"},{"p":"co.aikar.commands","c":"Locales","l":"WELSH"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html b/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html index 97d29c25..3bf16714 100644 --- a/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html +++ b/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html @@ -96,231 +96,245 @@ 083 } 084 085 /** -086 * Registr a completion handler to provide command completions based on the user input. -087 * This handler is declared to be safe to be executed asynchronously. -088 * <p> -089 * Not all platforms support this, so if the platform does not support asynchronous execution, -090 * your handler will be executed on the main thread. -091 * <p> -092 * Use this anytime your handler does not need to access state that is not considered thread safe. -093 * <p> -094 * Use context.isAsync() to determine if you are async or not. -095 * -096 * @param id -097 * @param handler -098 * @return -099 */ -100 public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) { -101 return this.completionMap.put(prepareCompletionId(id), handler); -102 } -103 -104 /** -105 * Register a static list of command completions that will never change. -106 * Like @CommandCompletion, values are | (PIPE) separated. +086 * Unregister a completion handler. +087 * @param id +088 * @return +089 * @throws IllegalStateException If the completion couldn't be found +090 */ +091 public CommandCompletionHandler unregisterCompletion(String id) { +092 if (!this.completionMap.containsKey(id)) { +093 throw new IllegalStateException("The supplied key " + id + " does not exist in any completions"); +094 } +095 +096 return this.completionMap.remove(id); +097 } +098 +099 /** +100 * Registr a completion handler to provide command completions based on the user input. +101 * This handler is declared to be safe to be executed asynchronously. +102 * <p> +103 * Not all platforms support this, so if the platform does not support asynchronous execution, +104 * your handler will be executed on the main thread. +105 * <p> +106 * Use this anytime your handler does not need to access state that is not considered thread safe. 107 * <p> -108 * Example: foo|bar|baz +108 * Use context.isAsync() to determine if you are async or not. 109 * 110 * @param id -111 * @param list +111 * @param handler 112 * @return 113 */ -114 public CommandCompletionHandler registerStaticCompletion(String id, String list) { -115 return registerStaticCompletion(id, ACFPatterns.PIPE.split(list)); +114 public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) { +115 return this.completionMap.put(prepareCompletionId(id), handler); 116 } 117 118 /** -119 * Register a static list of command completions that will never change -120 * -121 * @param id -122 * @param completions -123 * @return -124 */ -125 public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { -126 return registerStaticCompletion(id, Arrays.asList(completions)); -127 } -128 -129 /** -130 * Register a static list of command completions that will never change. The list is obtained from the supplier -131 * immediately as part of this method call. -132 * -133 * @param id -134 * @param supplier -135 * @return -136 */ -137 public CommandCompletionHandler registerStaticCompletion(String id, Supplier<Collection<String>> supplier) { -138 return registerStaticCompletion(id, supplier.get()); -139 } -140 -141 /** -142 * Register a static list of command completions that will never change -143 * -144 * @param id -145 * @param completions -146 * @return -147 */ -148 public CommandCompletionHandler registerStaticCompletion(String id, Collection<String> completions) { -149 return registerAsyncCompletion(id, x -> completions); -150 } -151 -152 /** -153 * Registers a completion handler such as @players to default apply to all command parameters of the specified types -154 * <p> -155 * This enables automatic completion support for parameters without manually defining it for custom objects -156 * -157 * @param id -158 * @param classes -159 */ -160 public void setDefaultCompletion(String id, Class... classes) { -161 // get completion with specified id -162 id = prepareCompletionId(id); -163 CommandCompletionHandler completion = completionMap.get(id); -164 -165 if (completion == null) { -166 // Throw something because no completion with specified id -167 throw new IllegalStateException("Completion not registered for " + id); -168 } -169 -170 for (Class clazz : classes) { -171 defaultCompletions.put(clazz, id); -172 } -173 } -174 -175 @NotNull -176 private static String prepareCompletionId(String id) { -177 return (id.startsWith("@") ? "" : "@") + id.toLowerCase(Locale.ENGLISH); -178 } -179 -180 @NotNull -181 List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) { -182 String[] completions = ACFPatterns.SPACE.split(cmd.complete); -183 final int argIndex = args.length - 1; -184 -185 String input = args[argIndex]; -186 -187 String completion = argIndex < completions.length ? completions[argIndex] : null; -188 if (completion == null || completion.isEmpty() || "*".equals(completion)) { -189 completion = findDefaultCompletion(cmd, args); -190 } -191 -192 if (completion == null && completions.length > 0) { -193 String last = completions[completions.length - 1]; -194 if (last.startsWith("repeat@")) { -195 completion = last; -196 } else if (argIndex >= completions.length && cmd.parameters[cmd.parameters.length - 1].consumesRest) { -197 completion = last; -198 } -199 } +119 * Register a static list of command completions that will never change. +120 * Like @CommandCompletion, values are | (PIPE) separated. +121 * <p> +122 * Example: foo|bar|baz +123 * +124 * @param id +125 * @param list +126 * @return +127 */ +128 public CommandCompletionHandler registerStaticCompletion(String id, String list) { +129 return registerStaticCompletion(id, ACFPatterns.PIPE.split(list)); +130 } +131 +132 /** +133 * Register a static list of command completions that will never change +134 * +135 * @param id +136 * @param completions +137 * @return +138 */ +139 public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { +140 return registerStaticCompletion(id, Arrays.asList(completions)); +141 } +142 +143 /** +144 * Register a static list of command completions that will never change. The list is obtained from the supplier +145 * immediately as part of this method call. +146 * +147 * @param id +148 * @param supplier +149 * @return +150 */ +151 public CommandCompletionHandler registerStaticCompletion(String id, Supplier<Collection<String>> supplier) { +152 return registerStaticCompletion(id, supplier.get()); +153 } +154 +155 /** +156 * Register a static list of command completions that will never change +157 * +158 * @param id +159 * @param completions +160 * @return +161 */ +162 public CommandCompletionHandler registerStaticCompletion(String id, Collection<String> completions) { +163 return registerAsyncCompletion(id, x -> completions); +164 } +165 +166 /** +167 * Registers a completion handler such as @players to default apply to all command parameters of the specified types +168 * <p> +169 * This enables automatic completion support for parameters without manually defining it for custom objects +170 * +171 * @param id +172 * @param classes +173 */ +174 public void setDefaultCompletion(String id, Class... classes) { +175 // get completion with specified id +176 id = prepareCompletionId(id); +177 CommandCompletionHandler completion = completionMap.get(id); +178 +179 if (completion == null) { +180 // Throw something because no completion with specified id +181 throw new IllegalStateException("Completion not registered for " + id); +182 } +183 +184 for (Class clazz : classes) { +185 defaultCompletions.put(clazz, id); +186 } +187 } +188 +189 @NotNull +190 private static String prepareCompletionId(String id) { +191 return (id.startsWith("@") ? "" : "@") + id.toLowerCase(Locale.ENGLISH); +192 } +193 +194 @NotNull +195 List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) { +196 String[] completions = ACFPatterns.SPACE.split(cmd.complete); +197 final int argIndex = args.length - 1; +198 +199 String input = args[argIndex]; 200 -201 if (completion == null) { -202 return Collections.singletonList(input); -203 } -204 -205 return getCompletionValues(cmd, sender, completion, args, isAsync); -206 } -207 -208 String findDefaultCompletion(RegisteredCommand cmd, String[] args) { -209 int i = 0; -210 for (CommandParameter param : cmd.parameters) { -211 if (param.canConsumeInput() && ++i == args.length) { -212 Class type = param.getType(); -213 while (type != null) { -214 String completion = this.defaultCompletions.get(type); -215 if (completion != null) { -216 return completion; -217 } -218 type = type.getSuperclass(); -219 } -220 if (param.getType().isEnum()) { -221 CommandOperationContext ctx = CommandManager.getCurrentCommandOperationContext(); -222 //noinspection unchecked -223 ctx.enumCompletionValues = ACFUtil.enumNames((Class<? extends Enum<?>>) param.getType()); -224 return DEFAULT_ENUM_ID; -225 } -226 break; -227 } -228 } -229 return null; -230 } -231 -232 List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { -233 if (DEFAULT_ENUM_ID.equals(completion)) { -234 CommandOperationContext<?> ctx = CommandManager.getCurrentCommandOperationContext(); -235 return ctx.enumCompletionValues; -236 } -237 boolean repeat = completion.startsWith("repeat@"); -238 if (repeat) { -239 completion = completion.substring(6); -240 } -241 completion = manager.getCommandReplacements().replace(completion); -242 -243 List<String> allCompletions = new ArrayList<>(); -244 String input = args.length > 0 ? args[args.length - 1] : ""; +201 String completion = argIndex < completions.length ? completions[argIndex] : null; +202 if (completion == null || completion.isEmpty() || "*".equals(completion)) { +203 completion = findDefaultCompletion(cmd, args); +204 } +205 +206 if (completion == null && completions.length > 0) { +207 String last = completions[completions.length - 1]; +208 if (last.startsWith("repeat@")) { +209 completion = last; +210 } else if (argIndex >= completions.length && cmd.parameters[cmd.parameters.length - 1].consumesRest) { +211 completion = last; +212 } +213 } +214 +215 if (completion == null) { +216 return Collections.singletonList(input); +217 } +218 +219 return getCompletionValues(cmd, sender, completion, args, isAsync); +220 } +221 +222 String findDefaultCompletion(RegisteredCommand cmd, String[] args) { +223 int i = 0; +224 for (CommandParameter param : cmd.parameters) { +225 if (param.canConsumeInput() && ++i == args.length) { +226 Class type = param.getType(); +227 while (type != null) { +228 String completion = this.defaultCompletions.get(type); +229 if (completion != null) { +230 return completion; +231 } +232 type = type.getSuperclass(); +233 } +234 if (param.getType().isEnum()) { +235 CommandOperationContext ctx = CommandManager.getCurrentCommandOperationContext(); +236 //noinspection unchecked +237 ctx.enumCompletionValues = ACFUtil.enumNames((Class<? extends Enum<?>>) param.getType()); +238 return DEFAULT_ENUM_ID; +239 } +240 break; +241 } +242 } +243 return null; +244 } 245 -246 for (String value : ACFPatterns.PIPE.split(completion)) { -247 String[] complete = ACFPatterns.COLONEQUALS.split(value, 2); -248 CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase(Locale.ENGLISH)); -249 if (handler != null) { -250 if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) { -251 ACFUtil.sneaky(new SyncCompletionRequired()); -252 return null; -253 } -254 String config = complete.length == 1 ? null : complete[1]; -255 CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args); +246 List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { +247 if (DEFAULT_ENUM_ID.equals(completion)) { +248 CommandOperationContext<?> ctx = CommandManager.getCurrentCommandOperationContext(); +249 return ctx.enumCompletionValues; +250 } +251 boolean repeat = completion.startsWith("repeat@"); +252 if (repeat) { +253 completion = completion.substring(6); +254 } +255 completion = manager.getCommandReplacements().replace(completion); 256 -257 try { -258 //noinspection unchecked -259 Collection<String> completions = handler.getCompletions(context); -260 -261 //Handle completions with more than one word: -262 if (!repeat && completions != null -263 && command.parameters[command.parameters.length - 1].consumesRest -264 && args.length > ACFPatterns.SPACE.split(command.complete).length) { -265 String start = String.join(" ", args); -266 completions = completions.stream() -267 .map(s -> { -268 if (s != null && s.split(" ").length >= args.length && ApacheCommonsLangUtil.startsWithIgnoreCase(s, start)) { -269 String[] completionArgs = s.split(" "); -270 return String.join(" ", Arrays.copyOfRange(completionArgs, args.length - 1, completionArgs.length)); -271 } else { -272 return s; -273 } -274 }).collect(Collectors.toList()); -275 } -276 -277 if (completions != null) { -278 allCompletions.addAll(completions); -279 continue; -280 } -281 //noinspection ConstantIfStatement,ConstantConditions -282 if (false) { // Hack to fool compiler. since its sneakily thrown. -283 throw new CommandCompletionTextLookupException(); -284 } -285 } catch (CommandCompletionTextLookupException ignored) { -286 // This should only happen if some other feedback error occured. -287 } catch (Exception e) { -288 command.handleException(sender, Arrays.asList(args), e); -289 } -290 // Something went wrong in lookup, fall back to input -291 return Collections.singletonList(input); -292 } else { -293 // Plaintext value -294 allCompletions.add(value); -295 } -296 } -297 return allCompletions; -298 } -299 -300 public interface CommandCompletionHandler<C extends CommandCompletionContext> { -301 Collection<String> getCompletions(C context) throws InvalidCommandArgument; -302 } -303 -304 public interface AsyncCommandCompletionHandler<C extends CommandCompletionContext> extends CommandCompletionHandler<C> { -305 } -306 -307 public static class SyncCompletionRequired extends RuntimeException { -308 } -309 -310} +257 List<String> allCompletions = new ArrayList<>(); +258 String input = args.length > 0 ? args[args.length - 1] : ""; +259 +260 for (String value : ACFPatterns.PIPE.split(completion)) { +261 String[] complete = ACFPatterns.COLONEQUALS.split(value, 2); +262 CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase(Locale.ENGLISH)); +263 if (handler != null) { +264 if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) { +265 ACFUtil.sneaky(new SyncCompletionRequired()); +266 return null; +267 } +268 String config = complete.length == 1 ? null : complete[1]; +269 CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args); +270 +271 try { +272 //noinspection unchecked +273 Collection<String> completions = handler.getCompletions(context); +274 +275 //Handle completions with more than one word: +276 if (!repeat && completions != null +277 && command.parameters[command.parameters.length - 1].consumesRest +278 && args.length > ACFPatterns.SPACE.split(command.complete).length) { +279 String start = String.join(" ", args); +280 completions = completions.stream() +281 .map(s -> { +282 if (s != null && s.split(" ").length >= args.length && ApacheCommonsLangUtil.startsWithIgnoreCase(s, start)) { +283 String[] completionArgs = s.split(" "); +284 return String.join(" ", Arrays.copyOfRange(completionArgs, args.length - 1, completionArgs.length)); +285 } else { +286 return s; +287 } +288 }).collect(Collectors.toList()); +289 } +290 +291 if (completions != null) { +292 allCompletions.addAll(completions); +293 continue; +294 } +295 //noinspection ConstantIfStatement,ConstantConditions +296 if (false) { // Hack to fool compiler. since its sneakily thrown. +297 throw new CommandCompletionTextLookupException(); +298 } +299 } catch (CommandCompletionTextLookupException ignored) { +300 // This should only happen if some other feedback error occured. +301 } catch (Exception e) { +302 command.handleException(sender, Arrays.asList(args), e); +303 } +304 // Something went wrong in lookup, fall back to input +305 return Collections.singletonList(input); +306 } else { +307 // Plaintext value +308 allCompletions.add(value); +309 } +310 } +311 return allCompletions; +312 } +313 +314 public interface CommandCompletionHandler<C extends CommandCompletionContext> { +315 Collection<String> getCompletions(C context) throws InvalidCommandArgument; +316 } +317 +318 public interface AsyncCommandCompletionHandler<C extends CommandCompletionContext> extends CommandCompletionHandler<C> { +319 } +320 +321 public static class SyncCompletionRequired extends RuntimeException { +322 } +323 +324} diff --git a/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html b/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html index 1b5e5039..dccb163c 100644 --- a/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html +++ b/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html @@ -96,231 +96,245 @@ 083 } 084 085 /** -086 * Registr a completion handler to provide command completions based on the user input. -087 * This handler is declared to be safe to be executed asynchronously. -088 * <p> -089 * Not all platforms support this, so if the platform does not support asynchronous execution, -090 * your handler will be executed on the main thread. -091 * <p> -092 * Use this anytime your handler does not need to access state that is not considered thread safe. -093 * <p> -094 * Use context.isAsync() to determine if you are async or not. -095 * -096 * @param id -097 * @param handler -098 * @return -099 */ -100 public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) { -101 return this.completionMap.put(prepareCompletionId(id), handler); -102 } -103 -104 /** -105 * Register a static list of command completions that will never change. -106 * Like @CommandCompletion, values are | (PIPE) separated. +086 * Unregister a completion handler. +087 * @param id +088 * @return +089 * @throws IllegalStateException If the completion couldn't be found +090 */ +091 public CommandCompletionHandler unregisterCompletion(String id) { +092 if (!this.completionMap.containsKey(id)) { +093 throw new IllegalStateException("The supplied key " + id + " does not exist in any completions"); +094 } +095 +096 return this.completionMap.remove(id); +097 } +098 +099 /** +100 * Registr a completion handler to provide command completions based on the user input. +101 * This handler is declared to be safe to be executed asynchronously. +102 * <p> +103 * Not all platforms support this, so if the platform does not support asynchronous execution, +104 * your handler will be executed on the main thread. +105 * <p> +106 * Use this anytime your handler does not need to access state that is not considered thread safe. 107 * <p> -108 * Example: foo|bar|baz +108 * Use context.isAsync() to determine if you are async or not. 109 * 110 * @param id -111 * @param list +111 * @param handler 112 * @return 113 */ -114 public CommandCompletionHandler registerStaticCompletion(String id, String list) { -115 return registerStaticCompletion(id, ACFPatterns.PIPE.split(list)); +114 public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) { +115 return this.completionMap.put(prepareCompletionId(id), handler); 116 } 117 118 /** -119 * Register a static list of command completions that will never change -120 * -121 * @param id -122 * @param completions -123 * @return -124 */ -125 public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { -126 return registerStaticCompletion(id, Arrays.asList(completions)); -127 } -128 -129 /** -130 * Register a static list of command completions that will never change. The list is obtained from the supplier -131 * immediately as part of this method call. -132 * -133 * @param id -134 * @param supplier -135 * @return -136 */ -137 public CommandCompletionHandler registerStaticCompletion(String id, Supplier<Collection<String>> supplier) { -138 return registerStaticCompletion(id, supplier.get()); -139 } -140 -141 /** -142 * Register a static list of command completions that will never change -143 * -144 * @param id -145 * @param completions -146 * @return -147 */ -148 public CommandCompletionHandler registerStaticCompletion(String id, Collection<String> completions) { -149 return registerAsyncCompletion(id, x -> completions); -150 } -151 -152 /** -153 * Registers a completion handler such as @players to default apply to all command parameters of the specified types -154 * <p> -155 * This enables automatic completion support for parameters without manually defining it for custom objects -156 * -157 * @param id -158 * @param classes -159 */ -160 public void setDefaultCompletion(String id, Class... classes) { -161 // get completion with specified id -162 id = prepareCompletionId(id); -163 CommandCompletionHandler completion = completionMap.get(id); -164 -165 if (completion == null) { -166 // Throw something because no completion with specified id -167 throw new IllegalStateException("Completion not registered for " + id); -168 } -169 -170 for (Class clazz : classes) { -171 defaultCompletions.put(clazz, id); -172 } -173 } -174 -175 @NotNull -176 private static String prepareCompletionId(String id) { -177 return (id.startsWith("@") ? "" : "@") + id.toLowerCase(Locale.ENGLISH); -178 } -179 -180 @NotNull -181 List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) { -182 String[] completions = ACFPatterns.SPACE.split(cmd.complete); -183 final int argIndex = args.length - 1; -184 -185 String input = args[argIndex]; -186 -187 String completion = argIndex < completions.length ? completions[argIndex] : null; -188 if (completion == null || completion.isEmpty() || "*".equals(completion)) { -189 completion = findDefaultCompletion(cmd, args); -190 } -191 -192 if (completion == null && completions.length > 0) { -193 String last = completions[completions.length - 1]; -194 if (last.startsWith("repeat@")) { -195 completion = last; -196 } else if (argIndex >= completions.length && cmd.parameters[cmd.parameters.length - 1].consumesRest) { -197 completion = last; -198 } -199 } +119 * Register a static list of command completions that will never change. +120 * Like @CommandCompletion, values are | (PIPE) separated. +121 * <p> +122 * Example: foo|bar|baz +123 * +124 * @param id +125 * @param list +126 * @return +127 */ +128 public CommandCompletionHandler registerStaticCompletion(String id, String list) { +129 return registerStaticCompletion(id, ACFPatterns.PIPE.split(list)); +130 } +131 +132 /** +133 * Register a static list of command completions that will never change +134 * +135 * @param id +136 * @param completions +137 * @return +138 */ +139 public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { +140 return registerStaticCompletion(id, Arrays.asList(completions)); +141 } +142 +143 /** +144 * Register a static list of command completions that will never change. The list is obtained from the supplier +145 * immediately as part of this method call. +146 * +147 * @param id +148 * @param supplier +149 * @return +150 */ +151 public CommandCompletionHandler registerStaticCompletion(String id, Supplier<Collection<String>> supplier) { +152 return registerStaticCompletion(id, supplier.get()); +153 } +154 +155 /** +156 * Register a static list of command completions that will never change +157 * +158 * @param id +159 * @param completions +160 * @return +161 */ +162 public CommandCompletionHandler registerStaticCompletion(String id, Collection<String> completions) { +163 return registerAsyncCompletion(id, x -> completions); +164 } +165 +166 /** +167 * Registers a completion handler such as @players to default apply to all command parameters of the specified types +168 * <p> +169 * This enables automatic completion support for parameters without manually defining it for custom objects +170 * +171 * @param id +172 * @param classes +173 */ +174 public void setDefaultCompletion(String id, Class... classes) { +175 // get completion with specified id +176 id = prepareCompletionId(id); +177 CommandCompletionHandler completion = completionMap.get(id); +178 +179 if (completion == null) { +180 // Throw something because no completion with specified id +181 throw new IllegalStateException("Completion not registered for " + id); +182 } +183 +184 for (Class clazz : classes) { +185 defaultCompletions.put(clazz, id); +186 } +187 } +188 +189 @NotNull +190 private static String prepareCompletionId(String id) { +191 return (id.startsWith("@") ? "" : "@") + id.toLowerCase(Locale.ENGLISH); +192 } +193 +194 @NotNull +195 List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) { +196 String[] completions = ACFPatterns.SPACE.split(cmd.complete); +197 final int argIndex = args.length - 1; +198 +199 String input = args[argIndex]; 200 -201 if (completion == null) { -202 return Collections.singletonList(input); -203 } -204 -205 return getCompletionValues(cmd, sender, completion, args, isAsync); -206 } -207 -208 String findDefaultCompletion(RegisteredCommand cmd, String[] args) { -209 int i = 0; -210 for (CommandParameter param : cmd.parameters) { -211 if (param.canConsumeInput() && ++i == args.length) { -212 Class type = param.getType(); -213 while (type != null) { -214 String completion = this.defaultCompletions.get(type); -215 if (completion != null) { -216 return completion; -217 } -218 type = type.getSuperclass(); -219 } -220 if (param.getType().isEnum()) { -221 CommandOperationContext ctx = CommandManager.getCurrentCommandOperationContext(); -222 //noinspection unchecked -223 ctx.enumCompletionValues = ACFUtil.enumNames((Class<? extends Enum<?>>) param.getType()); -224 return DEFAULT_ENUM_ID; -225 } -226 break; -227 } -228 } -229 return null; -230 } -231 -232 List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { -233 if (DEFAULT_ENUM_ID.equals(completion)) { -234 CommandOperationContext<?> ctx = CommandManager.getCurrentCommandOperationContext(); -235 return ctx.enumCompletionValues; -236 } -237 boolean repeat = completion.startsWith("repeat@"); -238 if (repeat) { -239 completion = completion.substring(6); -240 } -241 completion = manager.getCommandReplacements().replace(completion); -242 -243 List<String> allCompletions = new ArrayList<>(); -244 String input = args.length > 0 ? args[args.length - 1] : ""; +201 String completion = argIndex < completions.length ? completions[argIndex] : null; +202 if (completion == null || completion.isEmpty() || "*".equals(completion)) { +203 completion = findDefaultCompletion(cmd, args); +204 } +205 +206 if (completion == null && completions.length > 0) { +207 String last = completions[completions.length - 1]; +208 if (last.startsWith("repeat@")) { +209 completion = last; +210 } else if (argIndex >= completions.length && cmd.parameters[cmd.parameters.length - 1].consumesRest) { +211 completion = last; +212 } +213 } +214 +215 if (completion == null) { +216 return Collections.singletonList(input); +217 } +218 +219 return getCompletionValues(cmd, sender, completion, args, isAsync); +220 } +221 +222 String findDefaultCompletion(RegisteredCommand cmd, String[] args) { +223 int i = 0; +224 for (CommandParameter param : cmd.parameters) { +225 if (param.canConsumeInput() && ++i == args.length) { +226 Class type = param.getType(); +227 while (type != null) { +228 String completion = this.defaultCompletions.get(type); +229 if (completion != null) { +230 return completion; +231 } +232 type = type.getSuperclass(); +233 } +234 if (param.getType().isEnum()) { +235 CommandOperationContext ctx = CommandManager.getCurrentCommandOperationContext(); +236 //noinspection unchecked +237 ctx.enumCompletionValues = ACFUtil.enumNames((Class<? extends Enum<?>>) param.getType()); +238 return DEFAULT_ENUM_ID; +239 } +240 break; +241 } +242 } +243 return null; +244 } 245 -246 for (String value : ACFPatterns.PIPE.split(completion)) { -247 String[] complete = ACFPatterns.COLONEQUALS.split(value, 2); -248 CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase(Locale.ENGLISH)); -249 if (handler != null) { -250 if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) { -251 ACFUtil.sneaky(new SyncCompletionRequired()); -252 return null; -253 } -254 String config = complete.length == 1 ? null : complete[1]; -255 CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args); +246 List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { +247 if (DEFAULT_ENUM_ID.equals(completion)) { +248 CommandOperationContext<?> ctx = CommandManager.getCurrentCommandOperationContext(); +249 return ctx.enumCompletionValues; +250 } +251 boolean repeat = completion.startsWith("repeat@"); +252 if (repeat) { +253 completion = completion.substring(6); +254 } +255 completion = manager.getCommandReplacements().replace(completion); 256 -257 try { -258 //noinspection unchecked -259 Collection<String> completions = handler.getCompletions(context); -260 -261 //Handle completions with more than one word: -262 if (!repeat && completions != null -263 && command.parameters[command.parameters.length - 1].consumesRest -264 && args.length > ACFPatterns.SPACE.split(command.complete).length) { -265 String start = String.join(" ", args); -266 completions = completions.stream() -267 .map(s -> { -268 if (s != null && s.split(" ").length >= args.length && ApacheCommonsLangUtil.startsWithIgnoreCase(s, start)) { -269 String[] completionArgs = s.split(" "); -270 return String.join(" ", Arrays.copyOfRange(completionArgs, args.length - 1, completionArgs.length)); -271 } else { -272 return s; -273 } -274 }).collect(Collectors.toList()); -275 } -276 -277 if (completions != null) { -278 allCompletions.addAll(completions); -279 continue; -280 } -281 //noinspection ConstantIfStatement,ConstantConditions -282 if (false) { // Hack to fool compiler. since its sneakily thrown. -283 throw new CommandCompletionTextLookupException(); -284 } -285 } catch (CommandCompletionTextLookupException ignored) { -286 // This should only happen if some other feedback error occured. -287 } catch (Exception e) { -288 command.handleException(sender, Arrays.asList(args), e); -289 } -290 // Something went wrong in lookup, fall back to input -291 return Collections.singletonList(input); -292 } else { -293 // Plaintext value -294 allCompletions.add(value); -295 } -296 } -297 return allCompletions; -298 } -299 -300 public interface CommandCompletionHandler<C extends CommandCompletionContext> { -301 Collection<String> getCompletions(C context) throws InvalidCommandArgument; -302 } -303 -304 public interface AsyncCommandCompletionHandler<C extends CommandCompletionContext> extends CommandCompletionHandler<C> { -305 } -306 -307 public static class SyncCompletionRequired extends RuntimeException { -308 } -309 -310} +257 List<String> allCompletions = new ArrayList<>(); +258 String input = args.length > 0 ? args[args.length - 1] : ""; +259 +260 for (String value : ACFPatterns.PIPE.split(completion)) { +261 String[] complete = ACFPatterns.COLONEQUALS.split(value, 2); +262 CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase(Locale.ENGLISH)); +263 if (handler != null) { +264 if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) { +265 ACFUtil.sneaky(new SyncCompletionRequired()); +266 return null; +267 } +268 String config = complete.length == 1 ? null : complete[1]; +269 CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args); +270 +271 try { +272 //noinspection unchecked +273 Collection<String> completions = handler.getCompletions(context); +274 +275 //Handle completions with more than one word: +276 if (!repeat && completions != null +277 && command.parameters[command.parameters.length - 1].consumesRest +278 && args.length > ACFPatterns.SPACE.split(command.complete).length) { +279 String start = String.join(" ", args); +280 completions = completions.stream() +281 .map(s -> { +282 if (s != null && s.split(" ").length >= args.length && ApacheCommonsLangUtil.startsWithIgnoreCase(s, start)) { +283 String[] completionArgs = s.split(" "); +284 return String.join(" ", Arrays.copyOfRange(completionArgs, args.length - 1, completionArgs.length)); +285 } else { +286 return s; +287 } +288 }).collect(Collectors.toList()); +289 } +290 +291 if (completions != null) { +292 allCompletions.addAll(completions); +293 continue; +294 } +295 //noinspection ConstantIfStatement,ConstantConditions +296 if (false) { // Hack to fool compiler. since its sneakily thrown. +297 throw new CommandCompletionTextLookupException(); +298 } +299 } catch (CommandCompletionTextLookupException ignored) { +300 // This should only happen if some other feedback error occured. +301 } catch (Exception e) { +302 command.handleException(sender, Arrays.asList(args), e); +303 } +304 // Something went wrong in lookup, fall back to input +305 return Collections.singletonList(input); +306 } else { +307 // Plaintext value +308 allCompletions.add(value); +309 } +310 } +311 return allCompletions; +312 } +313 +314 public interface CommandCompletionHandler<C extends CommandCompletionContext> { +315 Collection<String> getCompletions(C context) throws InvalidCommandArgument; +316 } +317 +318 public interface AsyncCommandCompletionHandler<C extends CommandCompletionContext> extends CommandCompletionHandler<C> { +319 } +320 +321 public static class SyncCompletionRequired extends RuntimeException { +322 } +323 +324} diff --git a/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.SyncCompletionRequired.html b/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.SyncCompletionRequired.html index c6147437..16f92969 100644 --- a/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.SyncCompletionRequired.html +++ b/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.SyncCompletionRequired.html @@ -96,231 +96,245 @@ 083 } 084 085 /** -086 * Registr a completion handler to provide command completions based on the user input. -087 * This handler is declared to be safe to be executed asynchronously. -088 * <p> -089 * Not all platforms support this, so if the platform does not support asynchronous execution, -090 * your handler will be executed on the main thread. -091 * <p> -092 * Use this anytime your handler does not need to access state that is not considered thread safe. -093 * <p> -094 * Use context.isAsync() to determine if you are async or not. -095 * -096 * @param id -097 * @param handler -098 * @return -099 */ -100 public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) { -101 return this.completionMap.put(prepareCompletionId(id), handler); -102 } -103 -104 /** -105 * Register a static list of command completions that will never change. -106 * Like @CommandCompletion, values are | (PIPE) separated. +086 * Unregister a completion handler. +087 * @param id +088 * @return +089 * @throws IllegalStateException If the completion couldn't be found +090 */ +091 public CommandCompletionHandler unregisterCompletion(String id) { +092 if (!this.completionMap.containsKey(id)) { +093 throw new IllegalStateException("The supplied key " + id + " does not exist in any completions"); +094 } +095 +096 return this.completionMap.remove(id); +097 } +098 +099 /** +100 * Registr a completion handler to provide command completions based on the user input. +101 * This handler is declared to be safe to be executed asynchronously. +102 * <p> +103 * Not all platforms support this, so if the platform does not support asynchronous execution, +104 * your handler will be executed on the main thread. +105 * <p> +106 * Use this anytime your handler does not need to access state that is not considered thread safe. 107 * <p> -108 * Example: foo|bar|baz +108 * Use context.isAsync() to determine if you are async or not. 109 * 110 * @param id -111 * @param list +111 * @param handler 112 * @return 113 */ -114 public CommandCompletionHandler registerStaticCompletion(String id, String list) { -115 return registerStaticCompletion(id, ACFPatterns.PIPE.split(list)); +114 public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) { +115 return this.completionMap.put(prepareCompletionId(id), handler); 116 } 117 118 /** -119 * Register a static list of command completions that will never change -120 * -121 * @param id -122 * @param completions -123 * @return -124 */ -125 public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { -126 return registerStaticCompletion(id, Arrays.asList(completions)); -127 } -128 -129 /** -130 * Register a static list of command completions that will never change. The list is obtained from the supplier -131 * immediately as part of this method call. -132 * -133 * @param id -134 * @param supplier -135 * @return -136 */ -137 public CommandCompletionHandler registerStaticCompletion(String id, Supplier<Collection<String>> supplier) { -138 return registerStaticCompletion(id, supplier.get()); -139 } -140 -141 /** -142 * Register a static list of command completions that will never change -143 * -144 * @param id -145 * @param completions -146 * @return -147 */ -148 public CommandCompletionHandler registerStaticCompletion(String id, Collection<String> completions) { -149 return registerAsyncCompletion(id, x -> completions); -150 } -151 -152 /** -153 * Registers a completion handler such as @players to default apply to all command parameters of the specified types -154 * <p> -155 * This enables automatic completion support for parameters without manually defining it for custom objects -156 * -157 * @param id -158 * @param classes -159 */ -160 public void setDefaultCompletion(String id, Class... classes) { -161 // get completion with specified id -162 id = prepareCompletionId(id); -163 CommandCompletionHandler completion = completionMap.get(id); -164 -165 if (completion == null) { -166 // Throw something because no completion with specified id -167 throw new IllegalStateException("Completion not registered for " + id); -168 } -169 -170 for (Class clazz : classes) { -171 defaultCompletions.put(clazz, id); -172 } -173 } -174 -175 @NotNull -176 private static String prepareCompletionId(String id) { -177 return (id.startsWith("@") ? "" : "@") + id.toLowerCase(Locale.ENGLISH); -178 } -179 -180 @NotNull -181 List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) { -182 String[] completions = ACFPatterns.SPACE.split(cmd.complete); -183 final int argIndex = args.length - 1; -184 -185 String input = args[argIndex]; -186 -187 String completion = argIndex < completions.length ? completions[argIndex] : null; -188 if (completion == null || completion.isEmpty() || "*".equals(completion)) { -189 completion = findDefaultCompletion(cmd, args); -190 } -191 -192 if (completion == null && completions.length > 0) { -193 String last = completions[completions.length - 1]; -194 if (last.startsWith("repeat@")) { -195 completion = last; -196 } else if (argIndex >= completions.length && cmd.parameters[cmd.parameters.length - 1].consumesRest) { -197 completion = last; -198 } -199 } +119 * Register a static list of command completions that will never change. +120 * Like @CommandCompletion, values are | (PIPE) separated. +121 * <p> +122 * Example: foo|bar|baz +123 * +124 * @param id +125 * @param list +126 * @return +127 */ +128 public CommandCompletionHandler registerStaticCompletion(String id, String list) { +129 return registerStaticCompletion(id, ACFPatterns.PIPE.split(list)); +130 } +131 +132 /** +133 * Register a static list of command completions that will never change +134 * +135 * @param id +136 * @param completions +137 * @return +138 */ +139 public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { +140 return registerStaticCompletion(id, Arrays.asList(completions)); +141 } +142 +143 /** +144 * Register a static list of command completions that will never change. The list is obtained from the supplier +145 * immediately as part of this method call. +146 * +147 * @param id +148 * @param supplier +149 * @return +150 */ +151 public CommandCompletionHandler registerStaticCompletion(String id, Supplier<Collection<String>> supplier) { +152 return registerStaticCompletion(id, supplier.get()); +153 } +154 +155 /** +156 * Register a static list of command completions that will never change +157 * +158 * @param id +159 * @param completions +160 * @return +161 */ +162 public CommandCompletionHandler registerStaticCompletion(String id, Collection<String> completions) { +163 return registerAsyncCompletion(id, x -> completions); +164 } +165 +166 /** +167 * Registers a completion handler such as @players to default apply to all command parameters of the specified types +168 * <p> +169 * This enables automatic completion support for parameters without manually defining it for custom objects +170 * +171 * @param id +172 * @param classes +173 */ +174 public void setDefaultCompletion(String id, Class... classes) { +175 // get completion with specified id +176 id = prepareCompletionId(id); +177 CommandCompletionHandler completion = completionMap.get(id); +178 +179 if (completion == null) { +180 // Throw something because no completion with specified id +181 throw new IllegalStateException("Completion not registered for " + id); +182 } +183 +184 for (Class clazz : classes) { +185 defaultCompletions.put(clazz, id); +186 } +187 } +188 +189 @NotNull +190 private static String prepareCompletionId(String id) { +191 return (id.startsWith("@") ? "" : "@") + id.toLowerCase(Locale.ENGLISH); +192 } +193 +194 @NotNull +195 List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) { +196 String[] completions = ACFPatterns.SPACE.split(cmd.complete); +197 final int argIndex = args.length - 1; +198 +199 String input = args[argIndex]; 200 -201 if (completion == null) { -202 return Collections.singletonList(input); -203 } -204 -205 return getCompletionValues(cmd, sender, completion, args, isAsync); -206 } -207 -208 String findDefaultCompletion(RegisteredCommand cmd, String[] args) { -209 int i = 0; -210 for (CommandParameter param : cmd.parameters) { -211 if (param.canConsumeInput() && ++i == args.length) { -212 Class type = param.getType(); -213 while (type != null) { -214 String completion = this.defaultCompletions.get(type); -215 if (completion != null) { -216 return completion; -217 } -218 type = type.getSuperclass(); -219 } -220 if (param.getType().isEnum()) { -221 CommandOperationContext ctx = CommandManager.getCurrentCommandOperationContext(); -222 //noinspection unchecked -223 ctx.enumCompletionValues = ACFUtil.enumNames((Class<? extends Enum<?>>) param.getType()); -224 return DEFAULT_ENUM_ID; -225 } -226 break; -227 } -228 } -229 return null; -230 } -231 -232 List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { -233 if (DEFAULT_ENUM_ID.equals(completion)) { -234 CommandOperationContext<?> ctx = CommandManager.getCurrentCommandOperationContext(); -235 return ctx.enumCompletionValues; -236 } -237 boolean repeat = completion.startsWith("repeat@"); -238 if (repeat) { -239 completion = completion.substring(6); -240 } -241 completion = manager.getCommandReplacements().replace(completion); -242 -243 List<String> allCompletions = new ArrayList<>(); -244 String input = args.length > 0 ? args[args.length - 1] : ""; +201 String completion = argIndex < completions.length ? completions[argIndex] : null; +202 if (completion == null || completion.isEmpty() || "*".equals(completion)) { +203 completion = findDefaultCompletion(cmd, args); +204 } +205 +206 if (completion == null && completions.length > 0) { +207 String last = completions[completions.length - 1]; +208 if (last.startsWith("repeat@")) { +209 completion = last; +210 } else if (argIndex >= completions.length && cmd.parameters[cmd.parameters.length - 1].consumesRest) { +211 completion = last; +212 } +213 } +214 +215 if (completion == null) { +216 return Collections.singletonList(input); +217 } +218 +219 return getCompletionValues(cmd, sender, completion, args, isAsync); +220 } +221 +222 String findDefaultCompletion(RegisteredCommand cmd, String[] args) { +223 int i = 0; +224 for (CommandParameter param : cmd.parameters) { +225 if (param.canConsumeInput() && ++i == args.length) { +226 Class type = param.getType(); +227 while (type != null) { +228 String completion = this.defaultCompletions.get(type); +229 if (completion != null) { +230 return completion; +231 } +232 type = type.getSuperclass(); +233 } +234 if (param.getType().isEnum()) { +235 CommandOperationContext ctx = CommandManager.getCurrentCommandOperationContext(); +236 //noinspection unchecked +237 ctx.enumCompletionValues = ACFUtil.enumNames((Class<? extends Enum<?>>) param.getType()); +238 return DEFAULT_ENUM_ID; +239 } +240 break; +241 } +242 } +243 return null; +244 } 245 -246 for (String value : ACFPatterns.PIPE.split(completion)) { -247 String[] complete = ACFPatterns.COLONEQUALS.split(value, 2); -248 CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase(Locale.ENGLISH)); -249 if (handler != null) { -250 if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) { -251 ACFUtil.sneaky(new SyncCompletionRequired()); -252 return null; -253 } -254 String config = complete.length == 1 ? null : complete[1]; -255 CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args); +246 List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { +247 if (DEFAULT_ENUM_ID.equals(completion)) { +248 CommandOperationContext<?> ctx = CommandManager.getCurrentCommandOperationContext(); +249 return ctx.enumCompletionValues; +250 } +251 boolean repeat = completion.startsWith("repeat@"); +252 if (repeat) { +253 completion = completion.substring(6); +254 } +255 completion = manager.getCommandReplacements().replace(completion); 256 -257 try { -258 //noinspection unchecked -259 Collection<String> completions = handler.getCompletions(context); -260 -261 //Handle completions with more than one word: -262 if (!repeat && completions != null -263 && command.parameters[command.parameters.length - 1].consumesRest -264 && args.length > ACFPatterns.SPACE.split(command.complete).length) { -265 String start = String.join(" ", args); -266 completions = completions.stream() -267 .map(s -> { -268 if (s != null && s.split(" ").length >= args.length && ApacheCommonsLangUtil.startsWithIgnoreCase(s, start)) { -269 String[] completionArgs = s.split(" "); -270 return String.join(" ", Arrays.copyOfRange(completionArgs, args.length - 1, completionArgs.length)); -271 } else { -272 return s; -273 } -274 }).collect(Collectors.toList()); -275 } -276 -277 if (completions != null) { -278 allCompletions.addAll(completions); -279 continue; -280 } -281 //noinspection ConstantIfStatement,ConstantConditions -282 if (false) { // Hack to fool compiler. since its sneakily thrown. -283 throw new CommandCompletionTextLookupException(); -284 } -285 } catch (CommandCompletionTextLookupException ignored) { -286 // This should only happen if some other feedback error occured. -287 } catch (Exception e) { -288 command.handleException(sender, Arrays.asList(args), e); -289 } -290 // Something went wrong in lookup, fall back to input -291 return Collections.singletonList(input); -292 } else { -293 // Plaintext value -294 allCompletions.add(value); -295 } -296 } -297 return allCompletions; -298 } -299 -300 public interface CommandCompletionHandler<C extends CommandCompletionContext> { -301 Collection<String> getCompletions(C context) throws InvalidCommandArgument; -302 } -303 -304 public interface AsyncCommandCompletionHandler<C extends CommandCompletionContext> extends CommandCompletionHandler<C> { -305 } -306 -307 public static class SyncCompletionRequired extends RuntimeException { -308 } -309 -310} +257 List<String> allCompletions = new ArrayList<>(); +258 String input = args.length > 0 ? args[args.length - 1] : ""; +259 +260 for (String value : ACFPatterns.PIPE.split(completion)) { +261 String[] complete = ACFPatterns.COLONEQUALS.split(value, 2); +262 CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase(Locale.ENGLISH)); +263 if (handler != null) { +264 if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) { +265 ACFUtil.sneaky(new SyncCompletionRequired()); +266 return null; +267 } +268 String config = complete.length == 1 ? null : complete[1]; +269 CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args); +270 +271 try { +272 //noinspection unchecked +273 Collection<String> completions = handler.getCompletions(context); +274 +275 //Handle completions with more than one word: +276 if (!repeat && completions != null +277 && command.parameters[command.parameters.length - 1].consumesRest +278 && args.length > ACFPatterns.SPACE.split(command.complete).length) { +279 String start = String.join(" ", args); +280 completions = completions.stream() +281 .map(s -> { +282 if (s != null && s.split(" ").length >= args.length && ApacheCommonsLangUtil.startsWithIgnoreCase(s, start)) { +283 String[] completionArgs = s.split(" "); +284 return String.join(" ", Arrays.copyOfRange(completionArgs, args.length - 1, completionArgs.length)); +285 } else { +286 return s; +287 } +288 }).collect(Collectors.toList()); +289 } +290 +291 if (completions != null) { +292 allCompletions.addAll(completions); +293 continue; +294 } +295 //noinspection ConstantIfStatement,ConstantConditions +296 if (false) { // Hack to fool compiler. since its sneakily thrown. +297 throw new CommandCompletionTextLookupException(); +298 } +299 } catch (CommandCompletionTextLookupException ignored) { +300 // This should only happen if some other feedback error occured. +301 } catch (Exception e) { +302 command.handleException(sender, Arrays.asList(args), e); +303 } +304 // Something went wrong in lookup, fall back to input +305 return Collections.singletonList(input); +306 } else { +307 // Plaintext value +308 allCompletions.add(value); +309 } +310 } +311 return allCompletions; +312 } +313 +314 public interface CommandCompletionHandler<C extends CommandCompletionContext> { +315 Collection<String> getCompletions(C context) throws InvalidCommandArgument; +316 } +317 +318 public interface AsyncCommandCompletionHandler<C extends CommandCompletionContext> extends CommandCompletionHandler<C> { +319 } +320 +321 public static class SyncCompletionRequired extends RuntimeException { +322 } +323 +324} diff --git a/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.html b/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.html index 59bbae74..45f6db3e 100644 --- a/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.html +++ b/docs/acf-core/src-html/co/aikar/commands/CommandCompletions.html @@ -96,231 +96,245 @@ 083 } 084 085 /** -086 * Registr a completion handler to provide command completions based on the user input. -087 * This handler is declared to be safe to be executed asynchronously. -088 * <p> -089 * Not all platforms support this, so if the platform does not support asynchronous execution, -090 * your handler will be executed on the main thread. -091 * <p> -092 * Use this anytime your handler does not need to access state that is not considered thread safe. -093 * <p> -094 * Use context.isAsync() to determine if you are async or not. -095 * -096 * @param id -097 * @param handler -098 * @return -099 */ -100 public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) { -101 return this.completionMap.put(prepareCompletionId(id), handler); -102 } -103 -104 /** -105 * Register a static list of command completions that will never change. -106 * Like @CommandCompletion, values are | (PIPE) separated. +086 * Unregister a completion handler. +087 * @param id +088 * @return +089 * @throws IllegalStateException If the completion couldn't be found +090 */ +091 public CommandCompletionHandler unregisterCompletion(String id) { +092 if (!this.completionMap.containsKey(id)) { +093 throw new IllegalStateException("The supplied key " + id + " does not exist in any completions"); +094 } +095 +096 return this.completionMap.remove(id); +097 } +098 +099 /** +100 * Registr a completion handler to provide command completions based on the user input. +101 * This handler is declared to be safe to be executed asynchronously. +102 * <p> +103 * Not all platforms support this, so if the platform does not support asynchronous execution, +104 * your handler will be executed on the main thread. +105 * <p> +106 * Use this anytime your handler does not need to access state that is not considered thread safe. 107 * <p> -108 * Example: foo|bar|baz +108 * Use context.isAsync() to determine if you are async or not. 109 * 110 * @param id -111 * @param list +111 * @param handler 112 * @return 113 */ -114 public CommandCompletionHandler registerStaticCompletion(String id, String list) { -115 return registerStaticCompletion(id, ACFPatterns.PIPE.split(list)); +114 public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) { +115 return this.completionMap.put(prepareCompletionId(id), handler); 116 } 117 118 /** -119 * Register a static list of command completions that will never change -120 * -121 * @param id -122 * @param completions -123 * @return -124 */ -125 public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { -126 return registerStaticCompletion(id, Arrays.asList(completions)); -127 } -128 -129 /** -130 * Register a static list of command completions that will never change. The list is obtained from the supplier -131 * immediately as part of this method call. -132 * -133 * @param id -134 * @param supplier -135 * @return -136 */ -137 public CommandCompletionHandler registerStaticCompletion(String id, Supplier<Collection<String>> supplier) { -138 return registerStaticCompletion(id, supplier.get()); -139 } -140 -141 /** -142 * Register a static list of command completions that will never change -143 * -144 * @param id -145 * @param completions -146 * @return -147 */ -148 public CommandCompletionHandler registerStaticCompletion(String id, Collection<String> completions) { -149 return registerAsyncCompletion(id, x -> completions); -150 } -151 -152 /** -153 * Registers a completion handler such as @players to default apply to all command parameters of the specified types -154 * <p> -155 * This enables automatic completion support for parameters without manually defining it for custom objects -156 * -157 * @param id -158 * @param classes -159 */ -160 public void setDefaultCompletion(String id, Class... classes) { -161 // get completion with specified id -162 id = prepareCompletionId(id); -163 CommandCompletionHandler completion = completionMap.get(id); -164 -165 if (completion == null) { -166 // Throw something because no completion with specified id -167 throw new IllegalStateException("Completion not registered for " + id); -168 } -169 -170 for (Class clazz : classes) { -171 defaultCompletions.put(clazz, id); -172 } -173 } -174 -175 @NotNull -176 private static String prepareCompletionId(String id) { -177 return (id.startsWith("@") ? "" : "@") + id.toLowerCase(Locale.ENGLISH); -178 } -179 -180 @NotNull -181 List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) { -182 String[] completions = ACFPatterns.SPACE.split(cmd.complete); -183 final int argIndex = args.length - 1; -184 -185 String input = args[argIndex]; -186 -187 String completion = argIndex < completions.length ? completions[argIndex] : null; -188 if (completion == null || completion.isEmpty() || "*".equals(completion)) { -189 completion = findDefaultCompletion(cmd, args); -190 } -191 -192 if (completion == null && completions.length > 0) { -193 String last = completions[completions.length - 1]; -194 if (last.startsWith("repeat@")) { -195 completion = last; -196 } else if (argIndex >= completions.length && cmd.parameters[cmd.parameters.length - 1].consumesRest) { -197 completion = last; -198 } -199 } +119 * Register a static list of command completions that will never change. +120 * Like @CommandCompletion, values are | (PIPE) separated. +121 * <p> +122 * Example: foo|bar|baz +123 * +124 * @param id +125 * @param list +126 * @return +127 */ +128 public CommandCompletionHandler registerStaticCompletion(String id, String list) { +129 return registerStaticCompletion(id, ACFPatterns.PIPE.split(list)); +130 } +131 +132 /** +133 * Register a static list of command completions that will never change +134 * +135 * @param id +136 * @param completions +137 * @return +138 */ +139 public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) { +140 return registerStaticCompletion(id, Arrays.asList(completions)); +141 } +142 +143 /** +144 * Register a static list of command completions that will never change. The list is obtained from the supplier +145 * immediately as part of this method call. +146 * +147 * @param id +148 * @param supplier +149 * @return +150 */ +151 public CommandCompletionHandler registerStaticCompletion(String id, Supplier<Collection<String>> supplier) { +152 return registerStaticCompletion(id, supplier.get()); +153 } +154 +155 /** +156 * Register a static list of command completions that will never change +157 * +158 * @param id +159 * @param completions +160 * @return +161 */ +162 public CommandCompletionHandler registerStaticCompletion(String id, Collection<String> completions) { +163 return registerAsyncCompletion(id, x -> completions); +164 } +165 +166 /** +167 * Registers a completion handler such as @players to default apply to all command parameters of the specified types +168 * <p> +169 * This enables automatic completion support for parameters without manually defining it for custom objects +170 * +171 * @param id +172 * @param classes +173 */ +174 public void setDefaultCompletion(String id, Class... classes) { +175 // get completion with specified id +176 id = prepareCompletionId(id); +177 CommandCompletionHandler completion = completionMap.get(id); +178 +179 if (completion == null) { +180 // Throw something because no completion with specified id +181 throw new IllegalStateException("Completion not registered for " + id); +182 } +183 +184 for (Class clazz : classes) { +185 defaultCompletions.put(clazz, id); +186 } +187 } +188 +189 @NotNull +190 private static String prepareCompletionId(String id) { +191 return (id.startsWith("@") ? "" : "@") + id.toLowerCase(Locale.ENGLISH); +192 } +193 +194 @NotNull +195 List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) { +196 String[] completions = ACFPatterns.SPACE.split(cmd.complete); +197 final int argIndex = args.length - 1; +198 +199 String input = args[argIndex]; 200 -201 if (completion == null) { -202 return Collections.singletonList(input); -203 } -204 -205 return getCompletionValues(cmd, sender, completion, args, isAsync); -206 } -207 -208 String findDefaultCompletion(RegisteredCommand cmd, String[] args) { -209 int i = 0; -210 for (CommandParameter param : cmd.parameters) { -211 if (param.canConsumeInput() && ++i == args.length) { -212 Class type = param.getType(); -213 while (type != null) { -214 String completion = this.defaultCompletions.get(type); -215 if (completion != null) { -216 return completion; -217 } -218 type = type.getSuperclass(); -219 } -220 if (param.getType().isEnum()) { -221 CommandOperationContext ctx = CommandManager.getCurrentCommandOperationContext(); -222 //noinspection unchecked -223 ctx.enumCompletionValues = ACFUtil.enumNames((Class<? extends Enum<?>>) param.getType()); -224 return DEFAULT_ENUM_ID; -225 } -226 break; -227 } -228 } -229 return null; -230 } -231 -232 List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { -233 if (DEFAULT_ENUM_ID.equals(completion)) { -234 CommandOperationContext<?> ctx = CommandManager.getCurrentCommandOperationContext(); -235 return ctx.enumCompletionValues; -236 } -237 boolean repeat = completion.startsWith("repeat@"); -238 if (repeat) { -239 completion = completion.substring(6); -240 } -241 completion = manager.getCommandReplacements().replace(completion); -242 -243 List<String> allCompletions = new ArrayList<>(); -244 String input = args.length > 0 ? args[args.length - 1] : ""; +201 String completion = argIndex < completions.length ? completions[argIndex] : null; +202 if (completion == null || completion.isEmpty() || "*".equals(completion)) { +203 completion = findDefaultCompletion(cmd, args); +204 } +205 +206 if (completion == null && completions.length > 0) { +207 String last = completions[completions.length - 1]; +208 if (last.startsWith("repeat@")) { +209 completion = last; +210 } else if (argIndex >= completions.length && cmd.parameters[cmd.parameters.length - 1].consumesRest) { +211 completion = last; +212 } +213 } +214 +215 if (completion == null) { +216 return Collections.singletonList(input); +217 } +218 +219 return getCompletionValues(cmd, sender, completion, args, isAsync); +220 } +221 +222 String findDefaultCompletion(RegisteredCommand cmd, String[] args) { +223 int i = 0; +224 for (CommandParameter param : cmd.parameters) { +225 if (param.canConsumeInput() && ++i == args.length) { +226 Class type = param.getType(); +227 while (type != null) { +228 String completion = this.defaultCompletions.get(type); +229 if (completion != null) { +230 return completion; +231 } +232 type = type.getSuperclass(); +233 } +234 if (param.getType().isEnum()) { +235 CommandOperationContext ctx = CommandManager.getCurrentCommandOperationContext(); +236 //noinspection unchecked +237 ctx.enumCompletionValues = ACFUtil.enumNames((Class<? extends Enum<?>>) param.getType()); +238 return DEFAULT_ENUM_ID; +239 } +240 break; +241 } +242 } +243 return null; +244 } 245 -246 for (String value : ACFPatterns.PIPE.split(completion)) { -247 String[] complete = ACFPatterns.COLONEQUALS.split(value, 2); -248 CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase(Locale.ENGLISH)); -249 if (handler != null) { -250 if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) { -251 ACFUtil.sneaky(new SyncCompletionRequired()); -252 return null; -253 } -254 String config = complete.length == 1 ? null : complete[1]; -255 CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args); +246 List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) { +247 if (DEFAULT_ENUM_ID.equals(completion)) { +248 CommandOperationContext<?> ctx = CommandManager.getCurrentCommandOperationContext(); +249 return ctx.enumCompletionValues; +250 } +251 boolean repeat = completion.startsWith("repeat@"); +252 if (repeat) { +253 completion = completion.substring(6); +254 } +255 completion = manager.getCommandReplacements().replace(completion); 256 -257 try { -258 //noinspection unchecked -259 Collection<String> completions = handler.getCompletions(context); -260 -261 //Handle completions with more than one word: -262 if (!repeat && completions != null -263 && command.parameters[command.parameters.length - 1].consumesRest -264 && args.length > ACFPatterns.SPACE.split(command.complete).length) { -265 String start = String.join(" ", args); -266 completions = completions.stream() -267 .map(s -> { -268 if (s != null && s.split(" ").length >= args.length && ApacheCommonsLangUtil.startsWithIgnoreCase(s, start)) { -269 String[] completionArgs = s.split(" "); -270 return String.join(" ", Arrays.copyOfRange(completionArgs, args.length - 1, completionArgs.length)); -271 } else { -272 return s; -273 } -274 }).collect(Collectors.toList()); -275 } -276 -277 if (completions != null) { -278 allCompletions.addAll(completions); -279 continue; -280 } -281 //noinspection ConstantIfStatement,ConstantConditions -282 if (false) { // Hack to fool compiler. since its sneakily thrown. -283 throw new CommandCompletionTextLookupException(); -284 } -285 } catch (CommandCompletionTextLookupException ignored) { -286 // This should only happen if some other feedback error occured. -287 } catch (Exception e) { -288 command.handleException(sender, Arrays.asList(args), e); -289 } -290 // Something went wrong in lookup, fall back to input -291 return Collections.singletonList(input); -292 } else { -293 // Plaintext value -294 allCompletions.add(value); -295 } -296 } -297 return allCompletions; -298 } -299 -300 public interface CommandCompletionHandler<C extends CommandCompletionContext> { -301 Collection<String> getCompletions(C context) throws InvalidCommandArgument; -302 } -303 -304 public interface AsyncCommandCompletionHandler<C extends CommandCompletionContext> extends CommandCompletionHandler<C> { -305 } -306 -307 public static class SyncCompletionRequired extends RuntimeException { -308 } -309 -310} +257 List<String> allCompletions = new ArrayList<>(); +258 String input = args.length > 0 ? args[args.length - 1] : ""; +259 +260 for (String value : ACFPatterns.PIPE.split(completion)) { +261 String[] complete = ACFPatterns.COLONEQUALS.split(value, 2); +262 CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase(Locale.ENGLISH)); +263 if (handler != null) { +264 if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) { +265 ACFUtil.sneaky(new SyncCompletionRequired()); +266 return null; +267 } +268 String config = complete.length == 1 ? null : complete[1]; +269 CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args); +270 +271 try { +272 //noinspection unchecked +273 Collection<String> completions = handler.getCompletions(context); +274 +275 //Handle completions with more than one word: +276 if (!repeat && completions != null +277 && command.parameters[command.parameters.length - 1].consumesRest +278 && args.length > ACFPatterns.SPACE.split(command.complete).length) { +279 String start = String.join(" ", args); +280 completions = completions.stream() +281 .map(s -> { +282 if (s != null && s.split(" ").length >= args.length && ApacheCommonsLangUtil.startsWithIgnoreCase(s, start)) { +283 String[] completionArgs = s.split(" "); +284 return String.join(" ", Arrays.copyOfRange(completionArgs, args.length - 1, completionArgs.length)); +285 } else { +286 return s; +287 } +288 }).collect(Collectors.toList()); +289 } +290 +291 if (completions != null) { +292 allCompletions.addAll(completions); +293 continue; +294 } +295 //noinspection ConstantIfStatement,ConstantConditions +296 if (false) { // Hack to fool compiler. since its sneakily thrown. +297 throw new CommandCompletionTextLookupException(); +298 } +299 } catch (CommandCompletionTextLookupException ignored) { +300 // This should only happen if some other feedback error occured. +301 } catch (Exception e) { +302 command.handleException(sender, Arrays.asList(args), e); +303 } +304 // Something went wrong in lookup, fall back to input +305 return Collections.singletonList(input); +306 } else { +307 // Plaintext value +308 allCompletions.add(value); +309 } +310 } +311 return allCompletions; +312 } +313 +314 public interface CommandCompletionHandler<C extends CommandCompletionContext> { +315 Collection<String> getCompletions(C context) throws InvalidCommandArgument; +316 } +317 +318 public interface AsyncCommandCompletionHandler<C extends CommandCompletionContext> extends CommandCompletionHandler<C> { +319 } +320 +321 public static class SyncCompletionRequired extends RuntimeException { +322 } +323 +324} diff --git a/docs/acf-core/src-html/co/aikar/commands/CommandManager.html b/docs/acf-core/src-html/co/aikar/commands/CommandManager.html index b3031b83..6818ee94 100644 --- a/docs/acf-core/src-html/co/aikar/commands/CommandManager.html +++ b/docs/acf-core/src-html/co/aikar/commands/CommandManager.html @@ -545,70 +545,95 @@ 532 533 dependencies.put(clazz, key, instance); 534 } -535 +535 536 /** -537 * Attempts to inject instances of classes registered with {@link CommandManager#registerDependency(Class, Object)} -538 * into all fields of the class and its superclasses that are marked with {@link Dependency}. -539 * -540 * @param baseCommand the instance which fields should be filled +537 * Unregisters an instance of the class, it will no longer be able to be injected +538 * +539 * @param clazz the class the injector should look for to remove +540 * @throws IllegalStateException If the dependency was not found. 541 */ -542 void injectDependencies(BaseCommand baseCommand) { -543 Class clazz = baseCommand.getClass(); -544 do { -545 for (Field field : clazz.getDeclaredFields()) { -546 if (annotations.hasAnnotation(field, Dependency.class)) { -547 String dependency = annotations.getAnnotationValue(field, Dependency.class); -548 String key = (key = dependency).isEmpty() ? field.getType().getName() : key; -549 Object object = dependencies.row(field.getType()).get(key); -550 if (object == null) { -551 throw new UnresolvedDependencyException("Could not find a registered instance of " + -552 field.getType().getName() + " with key " + key + " for field " + field.getName() + -553 " in class " + baseCommand.getClass().getName()); -554 } -555 -556 try { -557 boolean accessible = field.isAccessible(); -558 if (!accessible) { -559 field.setAccessible(true); -560 } -561 field.set(baseCommand, object); -562 field.setAccessible(accessible); -563 } catch (IllegalAccessException e) { -564 e.printStackTrace(); //TODO should we print our own exception here to make a more descriptive error? -565 } -566 } -567 } -568 clazz = clazz.getSuperclass(); -569 } while (!clazz.equals(BaseCommand.class)); -570 } -571 -572 /** -573 * @deprecated Use this with caution! If you enable and use Unstable API's, your next compile using ACF -574 * may require you to update your implementation to those unstable API's -575 */ -576 @Deprecated -577 public void enableUnstableAPI(String api) { -578 unstableAPIs.add(api); -579 } +542 public <T> void unregisterDependency(Class<? extends T> clazz) { +543 unregisterDependency(clazz, clazz.getName()); +544 } +545 +546 /** +547 * Unregisters an instance of the class, it will no longer be able to be injected +548 * +549 * @param clazz the class the injector should look for to remove +550 * @param key the key which needs to be present if that +551 * @throws IllegalStateException If the dependency was not found. +552 */ +553 public <T> void unregisterDependency(Class<? extends T> clazz, String key) { +554 if (!dependencies.containsKey(clazz, key)) { +555 throw new IllegalStateException("Unable to unregister a dependency of " + clazz.getName() + " with the key " + key + " because it wasn't registered"); +556 } +557 +558 dependencies.remove(clazz, key); +559 } +560 +561 /** +562 * Attempts to inject instances of classes registered with {@link CommandManager#registerDependency(Class, Object)} +563 * into all fields of the class and its superclasses that are marked with {@link Dependency}. +564 * +565 * @param baseCommand the instance which fields should be filled +566 */ +567 void injectDependencies(BaseCommand baseCommand) { +568 Class clazz = baseCommand.getClass(); +569 do { +570 for (Field field : clazz.getDeclaredFields()) { +571 if (annotations.hasAnnotation(field, Dependency.class)) { +572 String dependency = annotations.getAnnotationValue(field, Dependency.class); +573 String key = (key = dependency).isEmpty() ? field.getType().getName() : key; +574 Object object = dependencies.row(field.getType()).get(key); +575 if (object == null) { +576 throw new UnresolvedDependencyException("Could not find a registered instance of " + +577 field.getType().getName() + " with key " + key + " for field " + field.getName() + +578 " in class " + baseCommand.getClass().getName()); +579 } 580 -581 void verifyUnstableAPI(String api) { -582 if (!unstableAPIs.contains(api)) { -583 throw new IllegalStateException("Using an unstable API that has not been enabled ( " + api + "). See https://acfunstable.emc.gs"); -584 } -585 } -586 -587 boolean hasUnstableAPI(String api) { -588 return unstableAPIs.contains(api); -589 } -590 -591 Annotations getAnnotations() { -592 return annotations; -593 } -594 -595 public String getCommandPrefix(CommandIssuer issuer) { -596 return ""; -597 } -598} +581 try { +582 boolean accessible = field.isAccessible(); +583 if (!accessible) { +584 field.setAccessible(true); +585 } +586 field.set(baseCommand, object); +587 field.setAccessible(accessible); +588 } catch (IllegalAccessException e) { +589 e.printStackTrace(); //TODO should we print our own exception here to make a more descriptive error? +590 } +591 } +592 } +593 clazz = clazz.getSuperclass(); +594 } while (!clazz.equals(BaseCommand.class)); +595 } +596 +597 /** +598 * @deprecated Use this with caution! If you enable and use Unstable API's, your next compile using ACF +599 * may require you to update your implementation to those unstable API's +600 */ +601 @Deprecated +602 public void enableUnstableAPI(String api) { +603 unstableAPIs.add(api); +604 } +605 +606 void verifyUnstableAPI(String api) { +607 if (!unstableAPIs.contains(api)) { +608 throw new IllegalStateException("Using an unstable API that has not been enabled ( " + api + "). See https://acfunstable.emc.gs"); +609 } +610 } +611 +612 boolean hasUnstableAPI(String api) { +613 return unstableAPIs.contains(api); +614 } +615 +616 Annotations getAnnotations() { +617 return annotations; +618 } +619 +620 public String getCommandPrefix(CommandIssuer issuer) { +621 return ""; +622 } +623}