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 JDACBuilder
Create a new builder.static JDACBuilder
builder
(ShardManager shardManager, Class<?> clazz, String... packages) Create a new builder.Gets anEmbed
based on the given name.getSelectMenu
(Class<?> origin, String menu) Gets aStringSelectMenu
orEntitySelectMenu
based 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 applicationvoid
shutdown()
Shuts down this JDACommands instance, making it unable to receive any events from Discord.static JDACommands
Creates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes.static JDACommands
start
(ShardManager shardManager, Class<?> clazz, String... packages) Creates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes.void
Updates 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 correspondingJDA
instanceclazz
- 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 correspondingShardManager
instanceclazz
- 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 correspondingJDA
instanceclazz
- a class of the classpath to scanpackages
- package(s) to exclusively scan- Returns:
- a new
JDACBuilder
-
builder
Create a new builder.- Parameters:
shardManager
- the correspondingShardManager
instance- 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 underlyingJDA
orShardManager
instance will be shutdown too. -
updateGuildCommands
public void updateGuildCommands()Updates all slash commands that are registered withCommandScope.GUILD
-
i18n
-
getButton
Gets a
Button
based on the method name and the given class and transforms it into a JDAButton
.The button will be
Runtime
independent. 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
StringSelectMenu
orEntitySelectMenu
based on the method name and the given class and transforms it into a JDASelectMenu
.The select menu will be
Runtime
independent. This may be useful if you want to send a component without using the framework.- Parameters:
origin
- theClass
of the methodmenu
- the name of the button in the format `FullClassNameWithPackage.method``- Returns:
- the JDA
SelectMenu
-
embed
Gets an
Embed
based on the given name.Use
findEmbed(String)
if you cannot ensure that theEmbed
exists.- Parameters:
name
- the name of theEmbed
- Returns:
- the
Embed
- Throws:
IllegalArgumentException
- if noEmbed
with the given name exists in the configured data sources
-
findEmbed
Gets an
Embed
based on the given name and wraps it in anOptional
.Use this instead of
embed(String)
if you cannot ensure that theEmbed
exists.
-