我尝试过执行清除命令,该命令会删除用户在不和谐频道中想要的消息量。但是,它没有解决问题。
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();
}
我希望漫游器删除指定的消息量。但是,它没有任何回应。我在其他命令(例如检查ping)中使用了if语句的这种方法,因此删除消息很有可能是这种情况。
答案 0 :(得分:0)
channel.deleteMessages(msgs).queue();
,如JDA文档所述:“批量删除消息列表。这与在循环中调用Message.delete()不同。”
JDA文档未提及的一件事是,不和谐将批量删除限制为仅存在少于2周的邮件。因此,要删除较旧的邮件,您必须将它们一一删除。这是几个月前施加的限制。
我所知道的其他可能的问题在文档中有所说明,最常见的是不遵守这些问题: