java - 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();
}
解决方案
你可以试试这个
public void sendPrivateMessage(User user, String content) {
if (user.isBot()) return;
user.openPrivateChannel()
.flatMap(channel -> channel.sendMessage(content))
.queue();
}
推荐阅读
- ios - iOS / swift:两行具有相同的出队笔尖和标识符
- gstreamer - gstreamer-1.0 的 ximagesrc 垂直同步
- c# - Ninject:在没有绑定任何东西时忽略注入
- java - 我想启动一个方法或某个进程并保持 100 毫秒,然后在 android 中重新开始
- mongodb - 每次测试前 Mocha MongoDB 清理收集
- javascript - 使用 jQuery 自动完成 devbridge 更改 onSelect 事件的查询
- asp.net-mvc - 无法将相同的实体(具有不同的相关属性实体)插入另一个实体
- javascript - LinkedList - 创建函数,该函数接受一个值,创建一个节点,并将其添加到列表末尾
- ssl - 如何从现有证书中创建子证书?
- android - 在 XML 文件的预览呈现期间抛出异常 16,并且一个字符串抛出错误“在此处翻译但不在默认语言环境中”