Java Discord Bot (JDA) 检查是不是固定

Posted

技术标签:

【中文标题】Java Discord Bot (JDA) 检查是不是固定【英文标题】:Java Discord Bot (JDA) Check if pinnedJava Discord Bot (JDA) 检查是否固定 【发布时间】:2021-09-19 10:10:54 【问题描述】:

我使用 Discord Java API (JDA) 编写了一个清除(清除)命令。

public class Purge 

    public static void onPurgeCommand(SlashCommandEvent event) 

        event.deferReply().queue();
        JDA bot = Bot.bot;
        int amount = Integer.parseInt(event.getOption("amount").getAsString());

        List<Message> messages = event.getChannel().getHistory().retrievePast(amount).complete();
        for (Message message: messages) 
            message.delete().queue();
        
        event.getHook().sendMessage("**Es wurden "+amount+" Nachrichten gelöscht.**").queue();
    


在 Slash 命令的帮助下,我想检查一条消息是否已固定以及何时固定该消息应被跳过。 我是用 Java 写东西的新手,所以我什么都不知道

【问题讨论】:

【参考方案1】:

你可以试试这个:

event.getChannel().getHistory().retrievePast(amount).queue(messageHistory -> 
        
        for (Message message : messageHistory) 
            if (!message.isPinned()) message.delete().queue();
        

    );

【讨论】:

以上是关于Java Discord Bot (JDA) 检查是不是固定的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 Bot 消息 ID 并编辑消息 - Discord JDA Java

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

如何修复此 JDA discord bot 错误?

Discord JDA Bot 在调用扩展类时抛出 NullPointerException

JDA bot 未收听消息

builder.build().getShardManager() 返回 null (JDA Discord Bot) |我如何调用 shardmanager?