过滤通道中所有消息的内容

编程入门 行业动态 更新时间:2024-10-08 04:27:03

过滤通<a href=https://www.elefans.com/category/jswz/34/1704666.html style=道中所有消息的内容"/>

过滤通道中所有消息的内容

我正在编写一个机器人,该机器人记录用户对特定消息(事件)的反应。每个事件都会生成一条消息,其中包含他们在日志通道上对其做出反应的事件的ID。现在,如果尝试删除反应,我将尝试让该机器人删除事件的所有生成消息。我的代码:

client.on("messageReactionRemove", (reaction, user) => {  

    if(user.bot) return;
    let message = reaction.message;

    ORid = message.id;
    ORid = ORid.toString();

    if(message.channel.id == '709887163084439555') {
        if(message.content.charAt(0) == '|'){

            var logChannel = client.channels.get('710092733254991893')
            logChannel.fetchMessages().then(messages => {
                var msgToRemove = messages.filter(m => message.content.includes(ORid))
                logChannel.bulkDelete(msgToRemove)
            }).catch(err => {
                console.log('Error while doing Bulk Delete');
                console.log(err);
            });                     
        } else return;  
    } else return;
});

第一个id是事件通道,另一个是生成日志的位置。但是,它不过滤日志通道上的所有消息,而是检查事件是否包含其ID,如果包含,则清除所有日志。我该怎么做才能解决此问题?

回答如下:

似乎您在过滤邮件的行中有一个错误:

    var msgToRemove = messages.filter(m => message.content.includes(ORid))

您正在检查message.content.includes(ORid),它将始终为false。这是因为您使用的是之前定义的message变量,而不是过滤器中的m。编写该行的正确方法是:

    var msgToRemove = messages.filter(m => m.content.includes(ORid))

更多推荐

过滤通道中所有消息的内容

本文发布于:2024-05-07 14:40:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756730.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:道中   消息   内容

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!