Class CommandProvider
java.lang.Object
com.github.alex1304.ultimategdbot.api.command.CommandProvider
- Direct Known Subclasses:
AnnotatedCommandProvider
public class CommandProvider
extends java.lang.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 voidadd(Command command)Adds a command to this provider.CommandgetCommandByAlias(java.lang.String alias)Gets a command instance corresponding to the given alias.CommandErrorHandlergetErrorHandler()Gets the error handler assigned to this provider.java.util.Set<Command>getProvidedCommands()Gets all provided commands.java.util.Optional<ExecutableCommand>provideFromEvent(Bot bot, java.lang.String prefix, discord4j.core.event.domain.message.MessageCreateEvent event, discord4j.core.object.entity.MessageChannel channel)Provides a command based on a MessageCreateEvent.voidsetErrorHandler(CommandErrorHandler errorHandler)Allows to supply a custom command handler.java.lang.StringtoString()
-
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 java.util.Optional<ExecutableCommand> provideFromEvent(Bot bot, java.lang.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 anExecutableCommandwhich is returned. If the event does not match with any command, an emptyOptionalis 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
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-