Discord-Bot (Java, JDA) Befehl wird nicht ausgeführt?

Ich programmiere einen Discord-Bot mit Java. Um Befehle zu lesen, benutze ich einen Listener (der dem Builder hinzugefügt wurde) und ein Command-Manager-System.

Dies ist der Listener:

public class Listener extends ListenerAdapter {

[...]

@Override
public void onMessageReceived(MessageReceivedEvent event) {
String message = event.getMessage().getContentDisplay();
if (event.isFromType(ChannelType.TEXT)) {
TextChannel channel = event.getTextChannel();
if (message.startsWith(Bot.INSTANCE.prefix)) {
String[] args = message.substring(Bot.INSTANCE.prefix.length()).split(" ");
if (args.length > 0) {
if(!Bot.INSTANCE.getCmdMan().perform(args[0], event.getMember(), channel, event.getMessage())) {
// Kein Befehl entdeckt
}
}
}
}
}
}

Die getCmdMan()-Methode liefert den Command-Manager, der hier steht:

public class CommandManager {

public ConcurrentHashMap<String, ServerCommand> commands;

public CommandManager() {

this.commands = new ConcurrentHashMap<>();

[...]

this.commands.put("startGW", new StartGiveawayCommand());

[...]

}

public boolean perform(String command, Member m, TextChannel channel, Message message) {

ServerCommand cmd;

if ((cmd = this.commands.get(command.toLowerCase())) != null) {

cmd.performCommand(m, channel, message);

}

return false;

}

}

Alle Befehlsklassen erben (implements Klasse()) aus der Command-Klasse. Ich denke aber nicht, dass ich diese hier aufführen muss, da sie nur die Funktion, die in den Befehls-Klassen überschrieben wird, enthält. Die Befehls-Klassen sehen folgendermaßen aus: (ich nehme als Beispiel die StartGiveawayCommand-Klasse)

public class StartGiveawayCommand implements ServerCommand {

@Override

public void performCommand(Member m, TextChannel c, Message message) {

int index = 0;

System.out.println(index);

index++;

if(!m.hasPermission(Permission.ADMINISTRATOR)) {

message.delete().queue();

c.sendMessage(":x: Du hast nicht die Berechtigung, HanLink-Bot zu verwenden!").queue();

return;

}

[...]

}

}

Die System.out.println("");-Funktionen habe ich hinzugefügt nachdem der Befehl nicht ausgeführt wurde. In die Konsole kam auch kein Output.

Die anderen Befehle werden aber ausgeführt (z.B. !purge)

Was habe ich falsch gemacht? bzw. Was muss ich ändern?

programmieren, Java, Bot, jda, Discord, Discord Bot
JDA: Wie kann man einen Command aus einer anderen Klasse in die Main-Klasse einprogrammieren?

Hallo Leute,

ich möchte mit Java und der JDA einen Discord-Bot programmieren.

Nur weiß ich nicht, wie man einen Command aus einer anderen Klasse in die Main-Klasse einprogrammiert.

Code der Main-Klasse:

package de.AkenoSan.MeineTochter;

import de.AkenoSan.MeineTochter.Commands;
import javax.security.auth.login.LoginException;
import net.dv8tion.jda.api.OnlineStatus;
import net.dv8tion.jda.api.entities.Activity;
import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder;

public class Main {
  public static void main(String[] args) throws LoginException, IllegalArgumentException {
    DefaultShardManagerBuilder builder = new DefaultShardManagerBuilder();
    builder.setToken("blablabla halt der Token");
    builder.setActivity(Activity.playing("NICHT FORTNITE"));
    builder.setStatus(OnlineStatus.ONLINE);
    builder.build();
  }
}

Code meiner Klasse, wo die Commands sind:

package de.AkenoSan.MeineTochter;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Commands {
  public void say() {
    new Thread(() -> {
      String line = "";
      BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

      try {
        while ((line = reader.readLine()) != null) {
          if (line.contains("#")) {
            if (line.startsWith("#")) {
              if (line.endsWith("say")) {
              }
            }
          }
        }
      }
      catch(IOException e) {
        e.printStackTrace();
      }
    }).start();
  }
}

Ich habe schon meine Commands-Klasse in die Main importiert, aber was muss ich jetzt machen?

Computer, Java, Bot, jda, Discord, Discord Bot