我正在尝试使用Java和JDA进行discordBOT。我已经尝试与他们合作了几个小时,但我没有让它起作用。我的机器人程序需要处理取决于用户的数据。在JDA的事件处理程序中,您不能返回任何数据类型,因为它们扩展了ListenerAdapter。这是我第一次与Eventlisteners合作,我已经在Google上搜索了很多。
答案 0 :(得分:1)
创建一个ListenerAdapter并将其关联到JDA实例。 我将向您展示示例代码,以便您理解:
/**
* Logs the bot into Discord and sets the event listeners.
*/
public static void launchJDA(String botToken) {
try {
jdaInstance = new JDABuilder(AccountType.BOT).setToken(loadToken()).build().awaitReady();
jdaInstance.addEventListener(new EventsManager());
} catch (Exception e) {
e.printStackTrace();
}
}
public class EventsManager extends ListenerAdapter {
@Override
public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
//Do what you want with the event here, for example replying with the message received:
String msg = event.getMessage().getContentDisplay();
event.getChannel().sendMessage(msg).queue();
}
}
答案 1 :(得分:0)
我不确定这是否是您要的,但是您的类需要从ListenerAdapter扩展。
public class yourClass extends ListenerAdapter {
//Your code.
}
在类中,您可以使用所需的方法来执行所需的操作。例如
@Override
public void onMessageReceived(MessageReceivedEvent event) {
//Your code again.
}
如果要在两个类之间传输数据,则可以使用自己的方法,并为其提供事件。
[Method1]
public static void yourMethod(MessageReceivedEvent event) {
//Your code.
}
[Method2]
@Override
public void onMessageReceived(MessageReceivedEvent event) {
yourMethod(event);
}