我正在使用 JDA 创建一个简单的 Discord Bot 来检测用户何时加入服务器,然后发送一个嵌入欢迎他们。但出于某种原因,它没有检测到整个 join 事件,即使我使用了覆盖并在主类中添加了侦听器。这是我的代码: 主类:
public class TerraBot {
public static JDA jda;
public static String prefix = "t";
public static void main(String[] args) throws FileNotFoundException, LoginException {
// TODO Auto-generated method stub
Scanner tk = new Scanner(new File("token.txt"));
String token = tk.nextLine();
jda = JDABuilder.createDefault(token).build();
jda.getPresence().setStatus(OnlineStatus.IDLE);
jda.getPresence().setActivity(Activity.watching("thelp"));
jda.addEventListener(new EmbedCommands());
jda.addEventListener(new Commands());
jda.addEventListener(new WelcomeCommands());
}
}
WelcomeCommands 类:
public class WelcomeCommands extends ListenerAdapter{
@Override
public void onGuildMemberJoin(GuildMemberJoinEvent event) {
System.out.println("Got join");
Embeds.welcomeEmbed(event.getGuild().getTextChannelById("834443815205077032"), event.getUser(), event.getGuild());
}
}
它没有在控制台中打印任何内容,而且我还确保它在开发者门户中检查了意图,甚至给了它管理员。