Class JDACommands
The main entry point of the JDA-Commands framework. This class includes methods to manage the overall framework while running.
Instances of this class can be created by using one of the "start" or "builder" methods.
-
Method Summary
Modifier and TypeMethodDescriptionstatic JDACBuilderCreate a new builder.static JDACBuilderbuilder(ShardManager shardManager, Class<?> clazz, String... packages) Create a new builder.Gets anEmbedbased on the given name.getSelectMenu(Class<?> origin, String menu) Gets aStringSelectMenuorEntitySelectMenubased on the method name and the given class and transforms it into a JDASelectMenu.i18n()Exposes the localization functionality of JDA-Commands to be used elsewhere in the applicationExposes the message resolver functionality of JDA-Commands to be used elsewhere in the application.voidshutdown()Shuts down this JDACommands instance, making it unable to receive any events from Discord.static JDACommandsCreates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes.static JDACommandsstart(ShardManager shardManager, Class<?> clazz, String... packages) Creates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes.voidUpdates all slash commands that are registered withCommandScope.GUILD
-
Method Details
-
start
Creates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes. This uses reflections for some functionality.
If any exception while configuration/start of JDA-Commands is thrown, the JDA instance if shutdown per default. This can be configured by setting
JDACBuilder.shutdownJDA(boolean)tofalse.- Parameters:
jda- the correspondingJDAinstanceclazz- a class of the classpath to scanpackages- package(s) to exclusively scan- Returns:
- a new JDACommands instance
-
start
Creates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes. This uses reflections for some functionality.
If any exception while configuration/start of JDA-Commands is thrown, the JDA instance if shutdown per default. This can be configured by setting
JDACBuilder.shutdownJDA(boolean)tofalse.- Parameters:
shardManager- the correspondingShardManagerinstanceclazz- a class of the classpath to scanpackages- package(s) to exclusively scan- Returns:
- a new JDACommands instance
-
builder
Create a new builder.- Parameters:
jda- the correspondingJDAinstanceclazz- a class of the classpath to scanpackages- package(s) to exclusively scan- Returns:
- a new
JDACBuilder
-
builder
Create a new builder.- Parameters:
shardManager- the correspondingShardManagerinstance- Returns:
- a new
JDACBuilder
-
shutdown
public void shutdown()Shuts down this JDACommands instance, making it unable to receive any events from Discord. This will not unregister any slash commands.
If
JDACBuilderData.shutdownJDA()is set to `true``, the underlyingJDAorShardManagerinstance will be shutdown too. -
updateGuildCommands
public void updateGuildCommands()Updates all slash commands that are registered withCommandScope.GUILD -
i18n
-
messageResolver
Exposes the message resolver functionality of JDA-Commands to be used elsewhere in the application. This can be used to do localization and/or resolve emoji aliases used in messages.- Returns:
- the
MessageResolverinstance
-
getButton
Gets a
Buttonbased on the method name and the given class and transforms it into a JDAButton.The button will be
Runtimeindependent. This may be useful if you want to send a message without using the framework.- Parameters:
button- the name of the button in the format `FullClassNameWithPackage.method``- Returns:
- the JDA
Button
-
getSelectMenu
Gets a
StringSelectMenuorEntitySelectMenubased on the method name and the given class and transforms it into a JDASelectMenu.The select menu will be
Runtimeindependent. This may be useful if you want to send a component without using the framework.- Parameters:
origin- theClassof the methodmenu- the name of the button in the format `FullClassNameWithPackage.method``- Returns:
- the JDA
SelectMenu
-
embed
Gets an
Embedbased on the given name.Use
findEmbed(String)if you cannot ensure that theEmbedexists.- Parameters:
name- the name of theEmbed- Returns:
- the
Embed - Throws:
IllegalArgumentException- if noEmbedwith the given name exists in the configured data sources
-
findEmbed
Gets an
Embedbased on the given name and wraps it in anOptional.Use this instead of
embed(String)if you cannot ensure that theEmbedexists.
-