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
}
}
sendPrivateMessage():
public void sendPrivateMessage(User user, String content) {
user.openPrivateChannel()
.flatMap(channel -> channel.sendMessage(content))
.queue();
}
# 1 楼答案
如果此代码在MessageReceivedEvent中执行,您可以尝试添加
这样,如果你还没有回复,它就不会自动回复。 (如果你想让它响应其他机器人程序,你也可以使用JDA来获取selfUser,并检查这个事件是否是自己执行的) 如果不是这样,也许你可以告诉我们更多关于何时执行的信息
# 2 楼答案
你可以试试这个