首页 > 解决方案 > Discord JDA Bot 无限发送消息

问题描述

我正在尝试使用 Discord JDA API 发送消息,但是每当我发送消息时,它都会无限发送。

JDA 版本:4.2.1_255

我试过的:

研究问题使用 GuildMessageReceivedEvent 而不是 MessageReceivedEvent

伪代码:

Guild server = e.getGuild();
    Role role = server.getRolesByName("Java", false).get(0);
    System.out.println(role);
    for(Member members : server.getMembers()) {
        if(members.getRoles().contains(role)) {
            sendPrivateMessage(members.getUser(), "Hello <@!" + members.getId() + ">"); // Sends infinitely
        }
    }

发送私人消息():

public void sendPrivateMessage(User user, String content) {
    user.openPrivateChannel()
            .flatMap(channel -> channel.sendMessage(content))
            .queue();
}

标签: javadiscord-jda

解决方案


你可以试试这个

public void sendPrivateMessage(User user, String content) {
    if (user.isBot()) return;

    user.openPrivateChannel()
        .flatMap(channel -> channel.sendMessage(content))
        .queue();
}

推荐阅读