Class JDACommands
java.lang.Object
com.github.kaktushose.jda.commands.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 @NotNull JDACommandsBuilder
Create a new builder.static @NotNull JDACommandsBuilder
builder
(@NotNull net.dv8tion.jda.api.sharding.ShardManager shardManager, @NotNull Class<?> clazz, @NotNull String... packages) Create a new builder.@NotNull net.dv8tion.jda.api.interactions.components.buttons.Button
Gets aButton
based on the method name and the given class and transforms it into a JDAButton
.@NotNull net.dv8tion.jda.api.interactions.components.selections.SelectMenu
getSelectMenu
(@NotNull Class<?> origin, @NotNull String menu) Gets aStringSelectMenu
orEntitySelectMenu
based on the method name and the given class and transforms it into a JDASelectMenu
.void
shutdown()
Shuts down this JDACommands instance, making it unable to receive any events from Discord.static @NotNull JDACommands
Creates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes.static @NotNull JDACommands
start
(@NotNull net.dv8tion.jda.api.sharding.ShardManager shardManager, @NotNull Class<?> clazz, @NotNull 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
@NotNull public static @NotNull JDACommands start(@NotNull @NotNull net.dv8tion.jda.api.JDA jda, @NotNull @NotNull Class<?> clazz, @NotNull @NotNull String... packages) Creates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes. This uses reflections for some functionality.- Parameters:
jda
- the correspondingJDA
instanceclazz
- a class of the classpath to scanpackages
- package(s) to exclusively scan- Returns:
- a new JDACommands instance
-
start
@NotNull public static @NotNull JDACommands start(@NotNull @NotNull net.dv8tion.jda.api.sharding.ShardManager shardManager, @NotNull @NotNull Class<?> clazz, @NotNull @NotNull String... packages) Creates a new JDACommands instance and starts the frameworks, including scanning the classpath for annotated classes. This uses reflections for some functionality.- Parameters:
shardManager
- the correspondingShardManager
instanceclazz
- a class of the classpath to scanpackages
- package(s) to exclusively scan- Returns:
- a new JDACommands instance
-
builder
@NotNull public static @NotNull JDACommandsBuilder builder(@NotNull @NotNull net.dv8tion.jda.api.JDA jda, @NotNull @NotNull Class<?> clazz, @NotNull @NotNull String... packages) Create a new builder.- Parameters:
jda
- the correspondingJDA
instanceclazz
- a class of the classpath to scanpackages
- package(s) to exclusively scan- Returns:
- a new
JDACommandsBuilder
-
builder
@NotNull public static @NotNull JDACommandsBuilder builder(@NotNull @NotNull net.dv8tion.jda.api.sharding.ShardManager shardManager, @NotNull @NotNull Class<?> clazz, @NotNull @NotNull String... packages) Create a new builder.- Parameters:
shardManager
- the correspondingShardManager
instance- Returns:
- a new
JDACommandsBuilder
-
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. -
updateGuildCommands
public void updateGuildCommands()Updates all slash commands that are registered withCommandScope.GUILD
-
getButton
@NotNull public @NotNull net.dv8tion.jda.api.interactions.components.buttons.Button getButton(@NotNull @NotNull Class<?> origin, @NotNull @NotNull String button) 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
@NotNull public @NotNull net.dv8tion.jda.api.interactions.components.selections.SelectMenu getSelectMenu(@NotNull @NotNull Class<?> origin, @NotNull @NotNull String menu) 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
-