Discord Commands Api

  • If you have a bug or suggestion, report to me on discord ptk#8135

📖 Example

Example Main class

public class DiscordBot {
  private static final CommandManager commandManager = new CommandManager();
  public static void main(String[] args) {
    commandManager.registerCommand(new ExampleCommand());
    try {
      JDABuilder builder = JDABuilder.create(
          "token",
          GatewayIntent.GUILD_MEMBERS,
          GatewayIntent.GUILD_MESSAGES
      );

      builder.addEventListeners(new CommandListener(commandManager));
      builder.build();
    } catch (LoginException e) {
      e.printStackTrace();
    }
  }

  public CommandManager getCommandManager() {
    return commandManager;
  }
}

Example Command

@CommandInfo(
    name = "help",
    usage = CommandConfig.PREFIX + "help <page>",
    minArguments = 2,
    aliases = {"help1", "help2"},
    onlyOwners = false,
    onlySupportedServer = false,
    permissions = {Permission.ADMINISTRATOR, Permission.BAN_MEMBERS}
)
public class ExampleCommand extends Command {
  @Override
  public void execute(MessageReceivedEvent event, String... arguments) {
    TextChannel textChannel = event.getTextChannel();
    if (arguments[1].equals("1")) {
      textChannel.sendMessage("1").complete();
    } else {
      textChannel.sendMessage("2").complete();
    }
  }
}

🔧 Code

Registry command in main:

commandManager.registerCommand(new ExampleCommand());

To bot working you must register listener in main

builder = JDABuilder
builder.addEventListeners(new CommandListener());

JDA Maven

<repositories>
  <repository>
    <id>jcenter</id>
    <name>jcenter-bintray</name>
    <url>https://jcenter.bintray.com</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>net.dv8tion</groupId>
    <artifactId>JDA</artifactId>
    <version>4.2.0_227</version>
  </dependency>
</dependencies>