, 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 extends MessageKeyProvider, String>)","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 extends Enum>>)","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 extends T>)","u":"getContextValue(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValue(Class extends T>, Integer)","u":"getContextValue(java.lang.Class,java.lang.Integer)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValueByName(Class extends T>, 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 extends Annotation>)","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 extends T>)","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 extends T>, String, T)","u":"registerDependency(java.lang.Class,java.lang.String,T)"},{"p":"co.aikar.commands","c":"CommandManager","l":"registerDependency(Class extends T>, 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, CEC>)","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 extends Enum>>, 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 extends MessageKeyProvider, String>)","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 extends Enum>>)","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 extends T>)","u":"getContextValue(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValue(Class extends T>, Integer)","u":"getContextValue(java.lang.Class,java.lang.Integer)"},{"p":"co.aikar.commands","c":"CommandCompletionContext","l":"getContextValueByName(Class extends T>, 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 extends Annotation>)","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 extends T>)","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 extends T>, String, T)","u":"registerDependency(java.lang.Class,java.lang.String,T)"},{"p":"co.aikar.commands","c":"CommandManager","l":"registerDependency(Class extends T>, 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, CEC>)","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 extends Enum>>, 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 extends T>)","u":"unregisterDependency(java.lang.Class)"},{"p":"co.aikar.commands","c":"CommandManager","l":"unregisterDependency(Class extends T>, 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}