gpt4 book ai didi

java - Discord Bot 不会删除消息(带有 JDA API 的 Eclipse IDE Java)

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:49 26 4
gpt4 key购买 nike

我尝试创建一个清除命令,它会删除用户在不和谐 channel 中想要的消息量。然而,这并没有成功。

public void onGuildReceived(GuildMessageReceivedEvent event) {
Message objMsg = event.getMessage();
String[] args = objMsg.getContentRaw().split("");
if(args[0].equalsIgnoreCase(Ref.prefix + "purge")) {
if(args.length <= 2) {
//TODO
}else {
event.getMessage().delete().queue();
TextChannel target = event.getMessage().getMentionedChannels().get(0);
purgeMessages(target, Integer.parseInt(args[2]));
}
}
}
private void purgeMessages(TextChannel channel, int numberofMessages) {
MessageHistory history = new MessageHistory(channel);
List<Message> msgs;

msgs = history.retrievePast(numberofMessages).complete();
channel.deleteMessages(msgs).queue();

}

我希望机器人删除指定数量的消息。然而,它没有任何回应。我已将这种 if 语句方法用于其他命令,例如检查您的 ping,因此它很可能与删除消息有关。

最佳答案

channel.deleteMessages(msgs).queue();,如 JDA 文档中所述,“批量删除消息列表。这与在循环中调用 Message.delete() 不同。”JDA 文档没有提到这一点的一件事是,discord 只限制批量删除不到 2 周的消息。因此,要删除较旧的邮件,您必须将它们一一删除。这是几个月前施加的限制。

我所知道的其他可能的问题已在文档中说明,最常见的是不遵守这些问题:

  • “必须至少有 2 条消息,且一次不得超过 100 条消息。如果只有 1 条消息,请改用 Message.delete() 方法。”
  • “您必须拥有此 channel 的 MESSAGE_MANAGE 权限才能使用此功能。”

关于java - Discord Bot 不会删除消息(带有 JDA API 的 Eclipse IDE Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56535789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com