Class CommandProvider
java.lang.Object
com.github.alex1304.ultimategdbot.api.command.CommandProvider
- Direct Known Subclasses:
AnnotatedCommandProvider
public class CommandProvider extends Object
Provides a set of commands. Each command handler provides their own way to
handle errors via a
CommandErrorHandler
.-
Constructor Summary
Constructors Constructor Description CommandProvider()
-
Method Summary
Modifier and Type Method Description void
add(Command command)
Adds a command to this provider.Command
getCommandByAlias(String alias)
Gets a command instance corresponding to the given alias.CommandErrorHandler
getErrorHandler()
Gets the error handler assigned to this provider.Set<Command>
getProvidedCommands()
Gets all provided commands.Optional<ExecutableCommand>
provideFromEvent(Bot bot, String prefix, discord4j.core.event.domain.message.MessageCreateEvent event, discord4j.core.object.entity.MessageChannel channel)
Provides a command based on a MessageCreateEvent.void
setErrorHandler(CommandErrorHandler errorHandler)
Allows to supply a custom command handler.String
toString()
-
Constructor Details
-
CommandProvider
public CommandProvider()
-
-
Method Details
-
setErrorHandler
Allows to supply a custom command handler. If this method is not called, it will use a default handler.- Parameters:
errorHandler
- the error handler to set
-
add
Adds a command to this provider.- Parameters:
command
- the command to add
-
provideFromEvent
public Optional<ExecutableCommand> provideFromEvent(Bot bot, String prefix, discord4j.core.event.domain.message.MessageCreateEvent event, discord4j.core.object.entity.MessageChannel channel)Provides a command based on a MessageCreateEvent. The event must come with a message body containing a prefix and the alias of one of the commands provided by this provider. If it matches with a provided command, arguments and flags are parsed, and everything is wrapped in anExecutableCommand
which is returned. If the event does not match with any command, an emptyOptional
is returned.- Parameters:
bot
- the bot instanceprefix
- the guild-specific bot prefixevent
- the MessageCreateEvent to processchannel
- the channel where the event happened- Returns:
- an ExecutableCommand if the event results in a command to be triggered, an empty Optional otherwise.
-
getErrorHandler
Gets the error handler assigned to this provider.- Returns:
- the error handler
-
getCommandByAlias
Gets a command instance corresponding to the given alias.- Parameters:
alias
- the alias of the command- Returns:
- the corresponding command instance, or null if not found
-
getProvidedCommands
Gets all provided commands.- Returns:
- an unmodifiable Set containing all commands provided by this provider
-
toString
-