chickeneer 37f89ba7be Merge branch 'master' into AlbeMiglio_master
# Conflicts:
#	docs/acf-brigadier/allclasses-index.html
#	docs/acf-brigadier/allpackages-index.html
#	docs/acf-brigadier/co/aikar/commands/ACFBrigadierManager.html
#	docs/acf-brigadier/co/aikar/commands/class-use/ACFBrigadierManager.html
#	docs/acf-brigadier/co/aikar/commands/package-summary.html
#	docs/acf-brigadier/co/aikar/commands/package-tree.html
#	docs/acf-brigadier/co/aikar/commands/package-use.html
#	docs/acf-brigadier/deprecated-list.html
#	docs/acf-brigadier/index-all.html
#	docs/acf-brigadier/index.html
#	docs/acf-brigadier/overview-tree.html
#	docs/acf-bukkit/allclasses-index.html
#	docs/acf-bukkit/allpackages-index.html
#	docs/acf-bukkit/co/aikar/commands/ACFBukkitHelpTopic.html
#	docs/acf-bukkit/co/aikar/commands/ACFBukkitUtil.html
#	docs/acf-bukkit/co/aikar/commands/BukkitCommandCompletionContext.html
#	docs/acf-bukkit/co/aikar/commands/BukkitCommandCompletions.html
#	docs/acf-bukkit/co/aikar/commands/BukkitCommandContexts.html
#	docs/acf-bukkit/co/aikar/commands/BukkitCommandExecutionContext.html
#	docs/acf-bukkit/co/aikar/commands/BukkitCommandIssuer.html
#	docs/acf-bukkit/co/aikar/commands/BukkitCommandManager.html
#	docs/acf-bukkit/co/aikar/commands/BukkitConditionContext.html
#	docs/acf-bukkit/co/aikar/commands/BukkitLocales.html
#	docs/acf-bukkit/co/aikar/commands/BukkitMessageFormatter.html
#	docs/acf-bukkit/co/aikar/commands/BukkitRegisteredCommand.html
#	docs/acf-bukkit/co/aikar/commands/BukkitRootCommand.html
#	docs/acf-bukkit/co/aikar/commands/MinecraftMessageKeys.html
#	docs/acf-bukkit/co/aikar/commands/bukkit/contexts/OnlinePlayer.html
#	docs/acf-bukkit/co/aikar/commands/bukkit/contexts/class-use/OnlinePlayer.html
#	docs/acf-bukkit/co/aikar/commands/bukkit/contexts/package-summary.html
#	docs/acf-bukkit/co/aikar/commands/bukkit/contexts/package-tree.html
#	docs/acf-bukkit/co/aikar/commands/bukkit/contexts/package-use.html
#	docs/acf-bukkit/co/aikar/commands/class-use/ACFBukkitHelpTopic.html
#	docs/acf-bukkit/co/aikar/commands/class-use/ACFBukkitUtil.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitCommandCompletionContext.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitCommandCompletions.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitCommandContexts.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitCommandExecutionContext.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitCommandIssuer.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitCommandManager.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitConditionContext.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitLocales.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitMessageFormatter.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitRegisteredCommand.html
#	docs/acf-bukkit/co/aikar/commands/class-use/BukkitRootCommand.html
#	docs/acf-bukkit/co/aikar/commands/class-use/MinecraftMessageKeys.html
#	docs/acf-bukkit/co/aikar/commands/contexts/OnlinePlayer.html
#	docs/acf-bukkit/co/aikar/commands/contexts/class-use/OnlinePlayer.html
#	docs/acf-bukkit/co/aikar/commands/contexts/package-summary.html
#	docs/acf-bukkit/co/aikar/commands/contexts/package-tree.html
#	docs/acf-bukkit/co/aikar/commands/contexts/package-use.html
#	docs/acf-bukkit/co/aikar/commands/package-summary.html
#	docs/acf-bukkit/co/aikar/commands/package-tree.html
#	docs/acf-bukkit/co/aikar/commands/package-use.html
#	docs/acf-bukkit/deprecated-list.html
#	docs/acf-bukkit/index-all.html
#	docs/acf-bukkit/index.html
#	docs/acf-bukkit/overview-summary.html
#	docs/acf-bukkit/overview-tree.html
#	docs/acf-bungee/allclasses-index.html
#	docs/acf-bungee/allpackages-index.html
#	docs/acf-bungee/co/aikar/commands/ACFBungeeListener.html
#	docs/acf-bungee/co/aikar/commands/ACFBungeeUtil.html
#	docs/acf-bungee/co/aikar/commands/BungeeCommandCompletionContext.html
#	docs/acf-bungee/co/aikar/commands/BungeeCommandCompletions.html
#	docs/acf-bungee/co/aikar/commands/BungeeCommandContexts.html
#	docs/acf-bungee/co/aikar/commands/BungeeCommandExecutionContext.html
#	docs/acf-bungee/co/aikar/commands/BungeeCommandIssuer.html
#	docs/acf-bungee/co/aikar/commands/BungeeCommandManager.html
#	docs/acf-bungee/co/aikar/commands/BungeeConditionContext.html
#	docs/acf-bungee/co/aikar/commands/BungeeLocales.html
#	docs/acf-bungee/co/aikar/commands/BungeeMessageFormatter.html
#	docs/acf-bungee/co/aikar/commands/BungeeRegisteredCommand.html
#	docs/acf-bungee/co/aikar/commands/BungeeRootCommand.html
#	docs/acf-bungee/co/aikar/commands/MinecraftMessageKeys.html
#	docs/acf-bungee/co/aikar/commands/bungee/contexts/OnlinePlayer.html
#	docs/acf-bungee/co/aikar/commands/bungee/contexts/class-use/OnlinePlayer.html
#	docs/acf-bungee/co/aikar/commands/bungee/contexts/package-summary.html
#	docs/acf-bungee/co/aikar/commands/bungee/contexts/package-tree.html
#	docs/acf-bungee/co/aikar/commands/bungee/contexts/package-use.html
#	docs/acf-bungee/co/aikar/commands/class-use/ACFBungeeListener.html
#	docs/acf-bungee/co/aikar/commands/class-use/ACFBungeeUtil.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeCommandCompletionContext.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeCommandCompletions.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeCommandContexts.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeCommandExecutionContext.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeCommandIssuer.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeCommandManager.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeConditionContext.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeLocales.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeMessageFormatter.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeRegisteredCommand.html
#	docs/acf-bungee/co/aikar/commands/class-use/BungeeRootCommand.html
#	docs/acf-bungee/co/aikar/commands/class-use/MinecraftMessageKeys.html
#	docs/acf-bungee/co/aikar/commands/contexts/OnlineProxiedPlayer.html
#	docs/acf-bungee/co/aikar/commands/contexts/class-use/OnlineProxiedPlayer.html
#	docs/acf-bungee/co/aikar/commands/contexts/package-summary.html
#	docs/acf-bungee/co/aikar/commands/contexts/package-tree.html
#	docs/acf-bungee/co/aikar/commands/contexts/package-use.html
#	docs/acf-bungee/co/aikar/commands/package-summary.html
#	docs/acf-bungee/co/aikar/commands/package-tree.html
#	docs/acf-bungee/co/aikar/commands/package-use.html
#	docs/acf-bungee/constant-values.html
#	docs/acf-bungee/deprecated-list.html
#	docs/acf-bungee/index-all.html
#	docs/acf-bungee/index.html
#	docs/acf-bungee/overview-summary.html
#	docs/acf-bungee/overview-tree.html
#	docs/acf-core/allclasses-index.html
#	docs/acf-core/allpackages-index.html
#	docs/acf-core/co/aikar/commands/ACFUtil.html
#	docs/acf-core/co/aikar/commands/AnnotationProcessor.html
#	docs/acf-core/co/aikar/commands/BaseCommand.html
#	docs/acf-core/co/aikar/commands/CommandCompletionContext.html
#	docs/acf-core/co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html
#	docs/acf-core/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html
#	docs/acf-core/co/aikar/commands/CommandCompletions.SyncCompletionRequired.html
#	docs/acf-core/co/aikar/commands/CommandCompletions.html
#	docs/acf-core/co/aikar/commands/CommandConditions.Condition.html
#	docs/acf-core/co/aikar/commands/CommandConditions.ParameterCondition.html
#	docs/acf-core/co/aikar/commands/CommandConditions.html
#	docs/acf-core/co/aikar/commands/CommandContexts.html
#	docs/acf-core/co/aikar/commands/CommandExecutionContext.html
#	docs/acf-core/co/aikar/commands/CommandHelp.html
#	docs/acf-core/co/aikar/commands/CommandHelpFormatter.html
#	docs/acf-core/co/aikar/commands/CommandIssuer.html
#	docs/acf-core/co/aikar/commands/CommandManager.html
#	docs/acf-core/co/aikar/commands/CommandOperationContext.html
#	docs/acf-core/co/aikar/commands/CommandParameter.html
#	docs/acf-core/co/aikar/commands/CommandReplacements.html
#	docs/acf-core/co/aikar/commands/ConditionContext.html
#	docs/acf-core/co/aikar/commands/ConditionFailedException.html
#	docs/acf-core/co/aikar/commands/ExceptionHandler.html
#	docs/acf-core/co/aikar/commands/ForwardingCommand.html
#	docs/acf-core/co/aikar/commands/HelpEntry.html
#	docs/acf-core/co/aikar/commands/InvalidCommandArgument.html
#	docs/acf-core/co/aikar/commands/InvalidCommandContextException.html
#	docs/acf-core/co/aikar/commands/IssuerLocaleChangedCallback.html
#	docs/acf-core/co/aikar/commands/Locales.html
#	docs/acf-core/co/aikar/commands/MessageFormatter.html
#	docs/acf-core/co/aikar/commands/MessageKeys.html
#	docs/acf-core/co/aikar/commands/MessageType.html
#	docs/acf-core/co/aikar/commands/RegisteredCommand.html
#	docs/acf-core/co/aikar/commands/RootCommand.html
#	docs/acf-core/co/aikar/commands/ShowCommandHelp.html
#	docs/acf-core/co/aikar/commands/UnresolvedDependencyException.html
#	docs/acf-core/co/aikar/commands/UnstableAPI.html
#	docs/acf-core/co/aikar/commands/annotation/CatchAll.html
#	docs/acf-core/co/aikar/commands/annotation/CatchUnknown.html
#	docs/acf-core/co/aikar/commands/annotation/CommandAlias.html
#	docs/acf-core/co/aikar/commands/annotation/CommandCompletion.html
#	docs/acf-core/co/aikar/commands/annotation/CommandPermission.html
#	docs/acf-core/co/aikar/commands/annotation/Conditions.html
#	docs/acf-core/co/aikar/commands/annotation/Default.html
#	docs/acf-core/co/aikar/commands/annotation/Dependency.html
#	docs/acf-core/co/aikar/commands/annotation/Description.html
#	docs/acf-core/co/aikar/commands/annotation/Flags.html
#	docs/acf-core/co/aikar/commands/annotation/HelpCommand.html
#	docs/acf-core/co/aikar/commands/annotation/HelpSearchTags.html
#	docs/acf-core/co/aikar/commands/annotation/Name.html
#	docs/acf-core/co/aikar/commands/annotation/Optional.html
#	docs/acf-core/co/aikar/commands/annotation/PreCommand.html
#	docs/acf-core/co/aikar/commands/annotation/Private.html
#	docs/acf-core/co/aikar/commands/annotation/Single.html
#	docs/acf-core/co/aikar/commands/annotation/Split.html
#	docs/acf-core/co/aikar/commands/annotation/Subcommand.html
#	docs/acf-core/co/aikar/commands/annotation/Syntax.html
#	docs/acf-core/co/aikar/commands/annotation/UnknownHandler.html
#	docs/acf-core/co/aikar/commands/annotation/Values.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/CatchAll.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/CatchUnknown.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/CommandAlias.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/CommandCompletion.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/CommandPermission.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Conditions.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Default.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Dependency.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Description.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Flags.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/HelpCommand.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/HelpSearchTags.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Name.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Optional.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/PreCommand.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Private.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Single.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Split.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Subcommand.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Syntax.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/UnknownHandler.html
#	docs/acf-core/co/aikar/commands/annotation/class-use/Values.html
#	docs/acf-core/co/aikar/commands/annotation/package-summary.html
#	docs/acf-core/co/aikar/commands/annotation/package-tree.html
#	docs/acf-core/co/aikar/commands/annotation/package-use.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/ApacheCommonsExceptionUtil.Nestable.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/ApacheCommonsExceptionUtil.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/ApacheCommonsLangUtil.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/class-use/ApacheCommonsExceptionUtil.Nestable.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/class-use/ApacheCommonsExceptionUtil.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/class-use/ApacheCommonsLangUtil.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/package-summary.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/package-tree.html
#	docs/acf-core/co/aikar/commands/apachecommonslang/package-use.html
#	docs/acf-core/co/aikar/commands/class-use/ACFUtil.html
#	docs/acf-core/co/aikar/commands/class-use/AnnotationProcessor.html
#	docs/acf-core/co/aikar/commands/class-use/BaseCommand.html
#	docs/acf-core/co/aikar/commands/class-use/CommandCompletionContext.html
#	docs/acf-core/co/aikar/commands/class-use/CommandCompletions.AsyncCommandCompletionHandler.html
#	docs/acf-core/co/aikar/commands/class-use/CommandCompletions.CommandCompletionHandler.html
#	docs/acf-core/co/aikar/commands/class-use/CommandCompletions.SyncCompletionRequired.html
#	docs/acf-core/co/aikar/commands/class-use/CommandCompletions.html
#	docs/acf-core/co/aikar/commands/class-use/CommandConditions.Condition.html
#	docs/acf-core/co/aikar/commands/class-use/CommandConditions.ParameterCondition.html
#	docs/acf-core/co/aikar/commands/class-use/CommandConditions.html
#	docs/acf-core/co/aikar/commands/class-use/CommandContexts.html
#	docs/acf-core/co/aikar/commands/class-use/CommandExecutionContext.html
#	docs/acf-core/co/aikar/commands/class-use/CommandHelp.html
#	docs/acf-core/co/aikar/commands/class-use/CommandHelpFormatter.html
#	docs/acf-core/co/aikar/commands/class-use/CommandIssuer.html
#	docs/acf-core/co/aikar/commands/class-use/CommandManager.html
#	docs/acf-core/co/aikar/commands/class-use/CommandOperationContext.html
#	docs/acf-core/co/aikar/commands/class-use/CommandParameter.html
#	docs/acf-core/co/aikar/commands/class-use/CommandReplacements.html
#	docs/acf-core/co/aikar/commands/class-use/ConditionContext.html
#	docs/acf-core/co/aikar/commands/class-use/ConditionFailedException.html
#	docs/acf-core/co/aikar/commands/class-use/ExceptionHandler.html
#	docs/acf-core/co/aikar/commands/class-use/ForwardingCommand.html
#	docs/acf-core/co/aikar/commands/class-use/HelpEntry.html
#	docs/acf-core/co/aikar/commands/class-use/InvalidCommandArgument.html
#	docs/acf-core/co/aikar/commands/class-use/InvalidCommandContextException.html
#	docs/acf-core/co/aikar/commands/class-use/IssuerLocaleChangedCallback.html
#	docs/acf-core/co/aikar/commands/class-use/Locales.html
#	docs/acf-core/co/aikar/commands/class-use/MessageFormatter.html
#	docs/acf-core/co/aikar/commands/class-use/MessageKeys.html
#	docs/acf-core/co/aikar/commands/class-use/MessageType.html
#	docs/acf-core/co/aikar/commands/class-use/RegisteredCommand.html
#	docs/acf-core/co/aikar/commands/class-use/RootCommand.html
#	docs/acf-core/co/aikar/commands/class-use/ShowCommandHelp.html
#	docs/acf-core/co/aikar/commands/class-use/UnresolvedDependencyException.html
#	docs/acf-core/co/aikar/commands/class-use/UnstableAPI.html
#	docs/acf-core/co/aikar/commands/contexts/ContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/IssuerAwareContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/IssuerOnlyContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/OptionalContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/SenderAwareContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/class-use/ContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/class-use/IssuerAwareContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/class-use/IssuerOnlyContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/class-use/OptionalContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/class-use/SenderAwareContextResolver.html
#	docs/acf-core/co/aikar/commands/contexts/package-summary.html
#	docs/acf-core/co/aikar/commands/contexts/package-tree.html
#	docs/acf-core/co/aikar/commands/contexts/package-use.html
#	docs/acf-core/co/aikar/commands/package-summary.html
#	docs/acf-core/co/aikar/commands/package-tree.html
#	docs/acf-core/co/aikar/commands/package-use.html
#	docs/acf-core/co/aikar/commands/processors/ConditionsProcessor.html
#	docs/acf-core/co/aikar/commands/processors/class-use/ConditionsProcessor.html
#	docs/acf-core/co/aikar/commands/processors/package-summary.html
#	docs/acf-core/co/aikar/commands/processors/package-tree.html
#	docs/acf-core/co/aikar/commands/processors/package-use.html
#	docs/acf-core/constant-values.html
#	docs/acf-core/deprecated-list.html
#	docs/acf-core/index-all.html
#	docs/acf-core/index.html
#	docs/acf-core/overview-summary.html
#	docs/acf-core/overview-tree.html
#	docs/acf-core/serialized-form.html
#	docs/acf-jda/allclasses-index.html
#	docs/acf-jda/allpackages-index.html
#	docs/acf-jda/co/aikar/commands/CommandConfig.html
#	docs/acf-jda/co/aikar/commands/CommandConfigProvider.html
#	docs/acf-jda/co/aikar/commands/CommandPermissionResolver.html
#	docs/acf-jda/co/aikar/commands/JDACommandCompletions.html
#	docs/acf-jda/co/aikar/commands/JDACommandConfig.html
#	docs/acf-jda/co/aikar/commands/JDACommandContexts.html
#	docs/acf-jda/co/aikar/commands/JDACommandEvent.html
#	docs/acf-jda/co/aikar/commands/JDACommandExecutionContext.html
#	docs/acf-jda/co/aikar/commands/JDACommandManager.html
#	docs/acf-jda/co/aikar/commands/JDACommandPermissionResolver.html
#	docs/acf-jda/co/aikar/commands/JDAConditionContext.html
#	docs/acf-jda/co/aikar/commands/JDAListener.html
#	docs/acf-jda/co/aikar/commands/JDALocales.html
#	docs/acf-jda/co/aikar/commands/JDAMessageFormatter.html
#	docs/acf-jda/co/aikar/commands/JDAOptions.html
#	docs/acf-jda/co/aikar/commands/JDARootCommand.html
#	docs/acf-jda/co/aikar/commands/annotation/Author.html
#	docs/acf-jda/co/aikar/commands/annotation/CrossGuild.html
#	docs/acf-jda/co/aikar/commands/annotation/SelfUser.html
#	docs/acf-jda/co/aikar/commands/annotation/class-use/Author.html
#	docs/acf-jda/co/aikar/commands/annotation/class-use/CrossGuild.html
#	docs/acf-jda/co/aikar/commands/annotation/class-use/SelfUser.html
#	docs/acf-jda/co/aikar/commands/annotation/package-summary.html
#	docs/acf-jda/co/aikar/commands/annotation/package-tree.html
#	docs/acf-jda/co/aikar/commands/annotation/package-use.html
#	docs/acf-jda/co/aikar/commands/class-use/CommandConfig.html
#	docs/acf-jda/co/aikar/commands/class-use/CommandConfigProvider.html
#	docs/acf-jda/co/aikar/commands/class-use/CommandPermissionResolver.html
#	docs/acf-jda/co/aikar/commands/class-use/JDACommandCompletions.html
#	docs/acf-jda/co/aikar/commands/class-use/JDACommandConfig.html
#	docs/acf-jda/co/aikar/commands/class-use/JDACommandContexts.html
#	docs/acf-jda/co/aikar/commands/class-use/JDACommandEvent.html
#	docs/acf-jda/co/aikar/commands/class-use/JDACommandExecutionContext.html
#	docs/acf-jda/co/aikar/commands/class-use/JDACommandManager.html
#	docs/acf-jda/co/aikar/commands/class-use/JDACommandPermissionResolver.html
#	docs/acf-jda/co/aikar/commands/class-use/JDAConditionContext.html
#	docs/acf-jda/co/aikar/commands/class-use/JDAListener.html
#	docs/acf-jda/co/aikar/commands/class-use/JDALocales.html
#	docs/acf-jda/co/aikar/commands/class-use/JDAMessageFormatter.html
#	docs/acf-jda/co/aikar/commands/class-use/JDAOptions.html
#	docs/acf-jda/co/aikar/commands/class-use/JDARootCommand.html
#	docs/acf-jda/co/aikar/commands/package-summary.html
#	docs/acf-jda/co/aikar/commands/package-tree.html
#	docs/acf-jda/co/aikar/commands/package-use.html
#	docs/acf-jda/index-all.html
#	docs/acf-jda/index.html
#	docs/acf-jda/overview-summary.html
#	docs/acf-jda/overview-tree.html
#	docs/acf-paper/allclasses-index.html
#	docs/acf-paper/allpackages-index.html
#	docs/acf-paper/co/aikar/commands/PaperBrigadierManager.html
#	docs/acf-paper/co/aikar/commands/PaperCommandCompletions.html
#	docs/acf-paper/co/aikar/commands/PaperCommandContexts.html
#	docs/acf-paper/co/aikar/commands/PaperCommandManager.html
#	docs/acf-paper/co/aikar/commands/class-use/PaperBrigadierManager.html
#	docs/acf-paper/co/aikar/commands/class-use/PaperCommandCompletions.html
#	docs/acf-paper/co/aikar/commands/class-use/PaperCommandContexts.html
#	docs/acf-paper/co/aikar/commands/class-use/PaperCommandManager.html
#	docs/acf-paper/co/aikar/commands/package-summary.html
#	docs/acf-paper/co/aikar/commands/package-tree.html
#	docs/acf-paper/co/aikar/commands/package-use.html
#	docs/acf-paper/deprecated-list.html
#	docs/acf-paper/index-all.html
#	docs/acf-paper/index.html
#	docs/acf-paper/overview-tree.html
#	docs/acf-sponge/allclasses-index.html
#	docs/acf-sponge/allpackages-index.html
#	docs/acf-sponge/co/aikar/commands/ACFSpongeListener.html
#	docs/acf-sponge/co/aikar/commands/ACFSpongeUtil.html
#	docs/acf-sponge/co/aikar/commands/MinecraftMessageKeys.html
#	docs/acf-sponge/co/aikar/commands/SpongeCommandCompletionContext.html
#	docs/acf-sponge/co/aikar/commands/SpongeCommandCompletions.html
#	docs/acf-sponge/co/aikar/commands/SpongeCommandContexts.html
#	docs/acf-sponge/co/aikar/commands/SpongeCommandExecutionContext.html
#	docs/acf-sponge/co/aikar/commands/SpongeCommandIssuer.html
#	docs/acf-sponge/co/aikar/commands/SpongeCommandManager.html
#	docs/acf-sponge/co/aikar/commands/SpongeCommandOperationContext.html
#	docs/acf-sponge/co/aikar/commands/SpongeConditionContext.html
#	docs/acf-sponge/co/aikar/commands/SpongeLocales.html
#	docs/acf-sponge/co/aikar/commands/SpongeMessageFormatter.html
#	docs/acf-sponge/co/aikar/commands/SpongeRegisteredCommand.html
#	docs/acf-sponge/co/aikar/commands/SpongeRootCommand.html
#	docs/acf-sponge/co/aikar/commands/class-use/ACFSpongeListener.html
#	docs/acf-sponge/co/aikar/commands/class-use/ACFSpongeUtil.html
#	docs/acf-sponge/co/aikar/commands/class-use/MinecraftMessageKeys.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeCommandCompletionContext.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeCommandCompletions.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeCommandContexts.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeCommandExecutionContext.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeCommandIssuer.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeCommandManager.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeCommandOperationContext.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeConditionContext.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeLocales.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeMessageFormatter.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeRegisteredCommand.html
#	docs/acf-sponge/co/aikar/commands/class-use/SpongeRootCommand.html
#	docs/acf-sponge/co/aikar/commands/contexts/CommandResultSupplier.html
#	docs/acf-sponge/co/aikar/commands/contexts/OnlinePlayer.html
#	docs/acf-sponge/co/aikar/commands/contexts/class-use/CommandResultSupplier.html
#	docs/acf-sponge/co/aikar/commands/contexts/class-use/OnlinePlayer.html
#	docs/acf-sponge/co/aikar/commands/contexts/package-summary.html
#	docs/acf-sponge/co/aikar/commands/contexts/package-tree.html
#	docs/acf-sponge/co/aikar/commands/contexts/package-use.html
#	docs/acf-sponge/co/aikar/commands/package-summary.html
#	docs/acf-sponge/co/aikar/commands/package-tree.html
#	docs/acf-sponge/co/aikar/commands/package-use.html
#	docs/acf-sponge/co/aikar/commands/sponge/contexts/OnlinePlayer.html
#	docs/acf-sponge/co/aikar/commands/sponge/contexts/class-use/OnlinePlayer.html
#	docs/acf-sponge/co/aikar/commands/sponge/contexts/package-summary.html
#	docs/acf-sponge/co/aikar/commands/sponge/contexts/package-tree.html
#	docs/acf-sponge/co/aikar/commands/sponge/contexts/package-use.html
#	docs/acf-sponge/deprecated-list.html
#	docs/acf-sponge/index-all.html
#	docs/acf-sponge/index.html
#	docs/acf-sponge/overview-summary.html
#	docs/acf-sponge/overview-tree.html
#	docs/acf-velocity/allclasses-index.html
#	docs/acf-velocity/allpackages-index.html
#	docs/acf-velocity/co/aikar/commands/ACFVelocityListener.html
#	docs/acf-velocity/co/aikar/commands/ACFVelocityUtil.html
#	docs/acf-velocity/co/aikar/commands/MinecraftMessageKeys.html
#	docs/acf-velocity/co/aikar/commands/VelocityCommandCompletionContext.html
#	docs/acf-velocity/co/aikar/commands/VelocityCommandCompletions.html
#	docs/acf-velocity/co/aikar/commands/VelocityCommandContexts.html
#	docs/acf-velocity/co/aikar/commands/VelocityCommandExecutionContext.html
#	docs/acf-velocity/co/aikar/commands/VelocityCommandIssuer.html
#	docs/acf-velocity/co/aikar/commands/VelocityCommandManager.html
#	docs/acf-velocity/co/aikar/commands/VelocityConditionContext.html
#	docs/acf-velocity/co/aikar/commands/VelocityLocales.html
#	docs/acf-velocity/co/aikar/commands/VelocityMessageFormatter.html
#	docs/acf-velocity/co/aikar/commands/VelocityRootCommand.html
#	docs/acf-velocity/co/aikar/commands/class-use/ACFVelocityListener.html
#	docs/acf-velocity/co/aikar/commands/class-use/ACFVelocityUtil.html
#	docs/acf-velocity/co/aikar/commands/class-use/MinecraftMessageKeys.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityCommandCompletionContext.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityCommandCompletions.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityCommandContexts.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityCommandExecutionContext.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityCommandIssuer.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityCommandManager.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityConditionContext.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityLocales.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityMessageFormatter.html
#	docs/acf-velocity/co/aikar/commands/class-use/VelocityRootCommand.html
#	docs/acf-velocity/co/aikar/commands/contexts/OnlinePlayer.html
#	docs/acf-velocity/co/aikar/commands/contexts/class-use/OnlinePlayer.html
#	docs/acf-velocity/co/aikar/commands/contexts/package-summary.html
#	docs/acf-velocity/co/aikar/commands/contexts/package-tree.html
#	docs/acf-velocity/co/aikar/commands/contexts/package-use.html
#	docs/acf-velocity/co/aikar/commands/package-summary.html
#	docs/acf-velocity/co/aikar/commands/package-tree.html
#	docs/acf-velocity/co/aikar/commands/package-use.html
#	docs/acf-velocity/co/aikar/commands/velocity/contexts/OnlinePlayer.html
#	docs/acf-velocity/co/aikar/commands/velocity/contexts/class-use/OnlinePlayer.html
#	docs/acf-velocity/co/aikar/commands/velocity/contexts/package-summary.html
#	docs/acf-velocity/co/aikar/commands/velocity/contexts/package-tree.html
#	docs/acf-velocity/co/aikar/commands/velocity/contexts/package-use.html
#	docs/acf-velocity/deprecated-list.html
#	docs/acf-velocity/index-all.html
#	docs/acf-velocity/index.html
#	docs/acf-velocity/overview-summary.html
#	docs/acf-velocity/overview-tree.html
#	velocity/pom.xml
#	velocity/src/main/java/co/aikar/commands/ACFVelocityUtil.java
#	velocity/src/main/java/co/aikar/commands/VelocityCommandCompletions.java
#	velocity/src/main/java/co/aikar/commands/VelocityCommandContexts.java
#	velocity/src/main/java/co/aikar/commands/VelocityCommandManager.java
#	velocity/src/main/java/co/aikar/commands/VelocityMessageFormatter.java
#	velocity/src/main/java/co/aikar/commands/VelocityRootCommand.java
2021-12-21 11:42:52 -06:00
2020-07-21 20:28:04 -04:00
2021-12-21 11:09:01 -06:00
2021-12-21 11:09:01 -06:00
2021-12-21 11:09:01 -06:00
2021-12-21 11:09:01 -06:00
2021-12-21 11:09:01 -06:00
2021-12-21 11:09:01 -06:00
2021-12-21 11:09:01 -06:00
2021-12-21 11:09:01 -06:00
2020-09-24 23:03:06 -04:00
2021-09-13 17:09:06 +02:00
2018-03-29 22:32:38 -04:00
2020-09-24 23:03:06 -04:00
2018-03-29 22:42:56 -04:00
2021-12-21 11:19:12 -06:00
2017-09-06 23:31:13 -04:00

Annotation Command Framework (ACF)

Purpose

This is the Framework created for Empire Minecraft.

ACF Started as a Bukkit Command Framework, but has shifted to be platform agnostic and can be used on any Java based application.

ACF is an extremely powerful command framework that takes nearly every concept of boilerplate code commonly found in command handlers, and abstracts them away behind annotations.

ACF redefines how you build your command handlers, allowing things such as Dependency Injection, Validation, Tab Completion, Help Documentation, Syntax Advice, and Stateful Conditions to all be behind Annotations that you place on methods.

Clean up your command handlers and unleash rich command experiences that would be too burdensome to pull off manually.

Beta Testing

While the 0.x.x series of ACF is "Beta", note that it is very stable. It has been used for years on EMC.

It is labeled Beta as the framework is growing fast and gaining new features, and API's are subject to breakage. The new features also may contain bugs, but we will work to fix them fast.

Please be prepared to keep up with changes, but I try to keep them as least disruptful as possible.

v1.0.0 will be the signal that ACF features are more complete and the API will remain stable for a long time.

Documentation / Using ACF

Documentation Wiki - All of ACF's documentation is currently on the GitHub Wiki. Please review every page to learn about each feature.

See Using ACF on how to add ACF to your plugin and getting started.

See Examples for some real world examples

Targeted Platforms / Current Version

We are on version:

  • GROUP: co.aikar
  • VERSION 0.5.1-SNAPSHOT

ARTIFACTID varies by platform target:

  • Bukkit: acf-bukkit (For targetting Bukkit/Spigot)
  • Paper: acf-paper (Recommended over Bukkit, will gradually enhance when ran on Paper, but still runs on Spigot)
  • Sponge: acf-sponge
  • BungeeCord: acf-bungee
  • JDA: acf-jda - IN PROGRESS - NOT READY

Setup Guides (Repo and Requirements): Maven, Gradle You may include more than 1 platform in your jar if your plugin supports multiple platforms.

Any bump in version implies an API break. See CHANGELOG for information on migration guides for API breaks.

Every change that should not cause any API break will be deployed over the current version.

Say Thanks

If this library has helped you, please consider donating as a way of saying thanks

PayPal Donate

Why does it require Java 8+?

Get off your dinosaur and get on this rocket ship!

Dinosaurs have been dead for a long time, so get off it before you start to smell.

Download Java 8

Java Docs

Contributing

See Issues section.

Join #aikar on Spigot IRC - irc.spi.gt to discuss.

Or Code With Aikar Discord.

Other projects by Aikar / Empire Minecraft

  • TaskChain - Powerful context control to dispatch tasks Async, then access the result sync for API usage. Concurrency controls too.
  • IDB - Simple and Intuitive JDBC Wrapper for Java
  • Minecraft Timings - Add Timings to your plugin in a safe way that works on all Bukkit platforms (CraftBukkit - no timings, Spigot - Timings v1, Paper and Paper forks - Timings v2)

License

As with all my other public projects

Commands (c) Daniel Ennis (Aikar) 2016-2018.

Commands is licensed MIT. See LICENSE

Languages
Java 100%