当前位置: 首页 > 知识库问答 >
问题:

不和谐机器人不会删除消息(Eclipse IDEJavaJDA API)

苏建安
2023-03-14

我尝试了一个清除命令,它删除用户想要的不和谐频道中的消息量。然而,没有成功。

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,所以它很可能是删除消息的东西。

共有1个答案

袁永贞
2023-03-14

频道。删除消息(MSG)。队列() ,如JDA文档所述,“批量删除消息列表。这与在循环中调用Message.delete()不同。”JDA文档没有提到的一点是,discord将批量删除限制为只对不到2周的消息进行。因此,要删除旧邮件,您必须逐个删除它们。这是几个月前实施的限制。

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

  • 必须至少有两封邮件,且一次不能超过100封。如果只有一封邮件,请改用message.delete()方法
  • “您必须拥有此频道中的权限消息\u MANAGE才能使用此功能。”

 类似资料:
  • 我使用Python3.6idle编写了一个bot,我想添加一个命令,但我不知道如何添加它。你们中的一些人能帮我举一些例子或建议吗?我会很高兴的,谢谢。

  • 请不要说“已经回答”,因为我尝试了一切,包括这里的所有相关帖子,显然,我正在阅读api文档。 完全错误为: 忽略on_ready Traceback(最近一次调用)中的异常:文件“/usr/local/lib/python3.8/dist packages/discord/client.py”,第312行,在on_ready wait channel中的事件wait coro(*args,**kw

  • 我正在尝试让我的JDA discord bot删除文本频道中的所有消息,目前我使用的代码效率极低,偶尔有效,有时无效。代码: 我知道一个事实,我正在调用函数,我知道一个事实,正在传递的文本通道是正确的。请帮我同样的忙。

  • 我使用repl。它让我的不和机器人。我使用Python并遵循本教程: https://www.youtube.com/watch?v=SPTfmiYiuok 这是我的代码:

  • 我正在尝试制作一个Python Discord机器人,它首先可以删除通道中的消息。我希望它是以《终结者3》为主题的,这样它会由用户说天网开始,然后机器人要求激活Y或N?当用户输入Y时,它会删除频道中的所有消息,如果用户输入N,它会说审判日不可避免。任何帮助都将不胜感激。

  • 我正在尝试制作一个机器人,每4小时发送一次自动消息,但由于某些原因,它无法工作。我查看了所有的google和stack overflow,但没有一个答案能帮助我。不和谐是否改变了机器人发送消息的方式? 如果我试图运行这个代码,它会给我这个错误 任何帮助将不胜感激并感谢您的时间