mirror of
https://github.com/aikar/commands.git
synced 2026-05-31 06:11:55 +00:00
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
This commit is contained in:
@@ -10,15 +10,14 @@ import java.util.stream.Collectors;
|
||||
import com.velocitypowered.api.command.CommandSource;
|
||||
import com.velocitypowered.api.proxy.Player;
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
import net.kyori.adventure.text.Component;
|
||||
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
|
||||
public class ACFVelocityUtil {
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static TextComponent color(String message) {
|
||||
return Component.text(message.replace("&", LegacyComponentSerializer.SECTION_CHAR+""));
|
||||
return LegacyComponentSerializer.legacySection().deserialize(message);
|
||||
}
|
||||
|
||||
public static Player findPlayerSmart(ProxyServer server, CommandIssuer issuer, String search) {
|
||||
|
||||
@@ -25,7 +25,6 @@ package co.aikar.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -36,27 +35,27 @@ import com.velocitypowered.api.proxy.ProxyServer;
|
||||
|
||||
import co.aikar.commands.apachecommonslang.ApacheCommonsLangUtil;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.format.TextColor;
|
||||
import net.kyori.adventure.text.format.TextDecoration;
|
||||
import net.kyori.adventure.text.format.TextFormat;
|
||||
|
||||
public class VelocityCommandCompletions extends CommandCompletions<VelocityCommandCompletionContext> {
|
||||
|
||||
public VelocityCommandCompletions(ProxyServer server, CommandManager manager) {
|
||||
super(manager);
|
||||
registerAsyncCompletion("chatcolors", c -> {
|
||||
Stream<String> colors = NamedTextColor.NAMES.keys().stream().map((String::toUpperCase));
|
||||
Stream<TextFormat> colors = NamedTextColor.NAMES.values().stream().map(namedTextColor -> namedTextColor);
|
||||
if (!c.hasConfig("colorsonly")) {
|
||||
colors = Stream.concat(colors, Arrays.stream(TextDecoration.values())
|
||||
.map((dec -> dec.name().toUpperCase())));
|
||||
colors = Stream.concat(colors, Stream.of(TextDecoration.values()));
|
||||
}
|
||||
String filter = c.getConfig("filter");
|
||||
if (filter != null) {
|
||||
Set<String> filters = Arrays.stream(ACFPatterns.COLON.split(filter)).map(ACFUtil::simplifyString)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
colors = colors.filter(color -> filters.contains(ACFUtil.simplifyString(color)));
|
||||
colors = colors.filter(color -> filters.contains(ACFUtil.simplifyString(color.toString())));
|
||||
}
|
||||
return colors.map(color -> ACFUtil.simplifyString(color)).collect(Collectors.toList());
|
||||
|
||||
return colors.map(color -> ACFUtil.simplifyString(color.toString())).collect(Collectors.toList());
|
||||
});
|
||||
registerCompletion("players", c -> {
|
||||
CommandSource sender = c.getSender();
|
||||
|
||||
@@ -54,6 +54,29 @@ public class VelocityCommandContexts extends CommandContexts<VelocityCommandExec
|
||||
}
|
||||
return proxiedPlayer;
|
||||
});
|
||||
|
||||
registerContext(TextFormat.class, c -> {
|
||||
String first = c.popFirstArg();
|
||||
Stream<TextFormat> colors = NamedTextColor.NAMES.values().stream().map(namedTextColor -> namedTextColor);
|
||||
if (!c.hasFlag("colorsonly")) {
|
||||
colors = Stream.concat(colors, Stream.of(TextDecoration.values()));
|
||||
}
|
||||
String filter = c.getFlagValue("filter", (String) null);
|
||||
if (filter != null) {
|
||||
filter = ACFUtil.simplifyString(filter);
|
||||
String finalFilter = filter;
|
||||
colors = colors.filter(color -> finalFilter.equals(ACFUtil.simplifyString(color.toString())));
|
||||
}
|
||||
|
||||
TextColor match = NamedTextColor.NAMES.value(ACFUtil.simplifyString(first));
|
||||
if (match == null) {
|
||||
String valid = colors.map(color -> "<c2>" + ACFUtil.simplifyString(color.toString()) + "</c2>")
|
||||
.collect(Collectors.joining("<c1>,</c1> "));
|
||||
|
||||
throw new InvalidCommandArgument(MessageKeys.PLEASE_SPECIFY_ONE_OF, "{valid}", valid);
|
||||
}
|
||||
return match;
|
||||
});
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -43,9 +43,10 @@ import com.velocitypowered.api.proxy.Player;
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
|
||||
import co.aikar.commands.apachecommonslang.ApacheCommonsExceptionUtil;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
|
||||
public class VelocityCommandManager extends
|
||||
CommandManager<CommandSource, VelocityCommandIssuer, TextColor, VelocityMessageFormatter, VelocityCommandExecutionContext, VelocityConditionContext> {
|
||||
CommandManager<CommandSource, VelocityCommandIssuer, NamedTextColor, VelocityMessageFormatter, VelocityCommandExecutionContext, VelocityConditionContext> {
|
||||
|
||||
protected final ProxyServer proxy;
|
||||
protected final PluginContainer plugin;
|
||||
@@ -57,14 +58,10 @@ public class VelocityCommandManager extends
|
||||
public VelocityCommandManager(ProxyServer proxy, Object plugin) {
|
||||
this.proxy = proxy;
|
||||
this.plugin = proxy.getPluginManager().getPlugin(plugin.getClass().getAnnotation(Plugin.class).id()).get();
|
||||
this.formatters.put(MessageType.ERROR, defaultFormatter = new VelocityMessageFormatter(TextColor.fromHexString("#FF5555"),
|
||||
TextColor.fromHexString("#FFFF55"), TextColor.fromHexString("#FF5555")));
|
||||
this.formatters.put(MessageType.SYNTAX, new VelocityMessageFormatter(TextColor.fromHexString("#FFFF55"),
|
||||
TextColor.fromHexString("#55FF55"), TextColor.fromHexString("#FFFFFF")));
|
||||
this.formatters.put(MessageType.INFO, new VelocityMessageFormatter(TextColor.fromHexString("#5555FF"),
|
||||
TextColor.fromHexString("#00AA00"), TextColor.fromHexString("#55FF55")));
|
||||
this.formatters.put(MessageType.HELP, new VelocityMessageFormatter(TextColor.fromHexString("#55FFFF"),
|
||||
TextColor.fromHexString("#55FF55"), TextColor.fromHexString("#FFFF55")));
|
||||
this.formatters.put(MessageType.ERROR, defaultFormatter = new VelocityMessageFormatter(NamedTextColor.RED, NamedTextColor.YELLOW, NamedTextColor.RED));
|
||||
this.formatters.put(MessageType.SYNTAX, new VelocityMessageFormatter(NamedTextColor.YELLOW, NamedTextColor.GREEN, NamedTextColor.WHITE));
|
||||
this.formatters.put(MessageType.INFO, new VelocityMessageFormatter(NamedTextColor.BLUE, NamedTextColor.DARK_GREEN, NamedTextColor.GREEN));
|
||||
this.formatters.put(MessageType.HELP, new VelocityMessageFormatter(NamedTextColor.AQUA, NamedTextColor.GREEN, NamedTextColor.YELLOW));
|
||||
|
||||
getLocales();
|
||||
|
||||
|
||||
@@ -1,45 +1,16 @@
|
||||
package co.aikar.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.TextColor;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
public class VelocityMessageFormatter extends MessageFormatter<NamedTextColor> {
|
||||
|
||||
public class VelocityMessageFormatter extends MessageFormatter<TextColor> {
|
||||
|
||||
private static char COLOR_CHAR = '§';
|
||||
|
||||
public VelocityMessageFormatter(TextColor... colors) {
|
||||
public VelocityMessageFormatter(NamedTextColor... colors) {
|
||||
super(colors);
|
||||
}
|
||||
|
||||
@Override
|
||||
String format(TextColor color, String message) {
|
||||
return hex(message, "#", "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Colors a String with Hex colors (1.16+ only)
|
||||
* Usage: pre + hex code + post
|
||||
*
|
||||
* @author Elementeral
|
||||
* @param string The string to color
|
||||
* @return The colored string
|
||||
*/
|
||||
public static String hex(String string, String pre, String post) {
|
||||
final Pattern hexPattern = Pattern.compile(pre+"([A-Fa-f0-9]{6})"+post);
|
||||
Matcher matcher = hexPattern.matcher(string);
|
||||
StringBuffer buffer = new StringBuffer(string.length() + 4 * 8);
|
||||
while (matcher.find()) {
|
||||
String group = matcher.group(1);
|
||||
matcher.appendReplacement(buffer, COLOR_CHAR + "x"
|
||||
+ COLOR_CHAR + group.charAt(0) + COLOR_CHAR + group.charAt(1)
|
||||
+ COLOR_CHAR + group.charAt(2) + COLOR_CHAR + group.charAt(3)
|
||||
+ COLOR_CHAR + group.charAt(4) + COLOR_CHAR + group.charAt(5)
|
||||
);
|
||||
}
|
||||
return matcher.appendTail(buffer).toString();
|
||||
String format(NamedTextColor color, String message) {
|
||||
return LegacyComponentSerializer.legacySection().serialize(LegacyComponentSerializer.legacySection().deserialize(message).color(color));
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,7 @@ package co.aikar.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.SetMultimap;
|
||||
@@ -32,7 +33,7 @@ import com.velocitypowered.api.command.Command;
|
||||
import com.velocitypowered.api.command.CommandSource;
|
||||
import com.velocitypowered.api.command.SimpleCommand;
|
||||
|
||||
public class VelocityRootCommand implements Command, RootCommand, SimpleCommand {
|
||||
public class VelocityRootCommand implements SimpleCommand, RootCommand {
|
||||
|
||||
private final VelocityCommandManager manager;
|
||||
private final String name;
|
||||
@@ -75,14 +76,6 @@ public class VelocityRootCommand implements Command, RootCommand, SimpleCommand
|
||||
return children;
|
||||
}
|
||||
|
||||
public void execute(CommandSource source, String[] args) {
|
||||
execute(manager.getCommandIssuer(source), getCommandName(), args);
|
||||
}
|
||||
|
||||
public List<String> suggest(CommandSource source, String[] args) {
|
||||
return getTabCompletions(manager.getCommandIssuer(source), getCommandName(), args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseCommand getDefCommand() {
|
||||
return defCommand;
|
||||
@@ -90,6 +83,18 @@ public class VelocityRootCommand implements Command, RootCommand, SimpleCommand
|
||||
|
||||
@Override
|
||||
public void execute(Invocation invocation) {
|
||||
execute(invocation.source(), invocation.arguments());
|
||||
execute(manager.getCommandIssuer(invocation.source()), getCommandName(), invocation.arguments());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<String> suggest(Invocation invocation) {
|
||||
return getTabCompletions(manager.getCommandIssuer(invocation.source()), getCommandName(), invocation.arguments());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<String>> suggestAsync(Invocation invocation) {
|
||||
return CompletableFuture.completedFuture(getTabCompletions(manager.getCommandIssuer(invocation.source()), getCommandName(), invocation.arguments()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user