【问题标题】:Discord.js: TypeError: Cannot read property 'some' of null when message is deletedDiscord.js:TypeError:删除消息时无法读取属性“某些”为空
【发布时间】:2021-10-12 21:14:38
【问题描述】:

我对这部分代码有疑问:

message.content = message.content.toLowerCase();

var badWords = ["some bad words"];

const rpsInsulte = ["some funny answer"]

var words = message.content.toLowerCase().trim().match(/\w+|\s+|[^\s\w]+/g);

var containsBadWord = words.some(word => { return badWords.includes(word); });

if (containsBadWord) {
    if(message.member.roles.some(r=>["role1"].includes(r.name)) || message.member.roles.some(r=>["role2"].includes(r.name)) || message.member.roles.some(r=>["role3"].includes(r.name))) {                   
        message.channel.send("My message").then(msg => {
            msg.delete(10000)
        });

        if (message.author.bot) return;
        } else {
            var response = rpsInsulte[Math.floor(Math.random()*rpsInsulte .length)];

            message.channel.send(response).then().catch(console.error).then(msg => {
                msg.delete(10000)
            });
        }
    }
}    

实际上,当另一个机器人在不和谐中删除某些内容时,我收到此错误:“TypeError: Cannot read property 'some' of null”对于这部分代码:

var containsBadWord = words.some(word => {
    return badWords.includes(word);
});

当消息被另一个机器人删除时,我的机器人不再工作。

我可以为这个问题做些什么?

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    作为免责声明,我从未使用过 Discord.js,但这是我的看法。

    您似乎知道您的问题是什么,当您删除一条消息并尝试阅读它时,您会收到一个错误,因为该消息不再存在,因此错误中的null

    如果您不关心解析已删除的消息,那么我假设您可以检查它是否为空,如果是,则不要检查它,如下所示:

    // Here is where you get the message, it can either be a message or null because it was deleted.
    var words = message.content.toLowerCase().trim().match(/\w+|\s+|[^\s\w]+/g);
    
    // Only use .some on it if it's not null. 
    // Basically if there's a message stored in words, do the following and if not, it just gets passed over.
    // If you'll notice, it looks just like the lines below where you check for if (containsBadWord).
    if (words) {
        var containsBadWord = words.some(word => { return badWords.includes(word); });
    }
    

    如果这仍然不能解决您的问题,或者您是否真的需要检查已删除的消息,请告诉我,我会再查看 Discord.js 文档,看看可以做些什么。

    【讨论】:

      猜你喜欢
      • 2020-09-03
      • 2021-11-02
      • 2020-02-16
      • 2020-09-04
      • 2022-01-27
      • 2020-12-14
      • 2021-06-03
      • 2011-01-04
      • 1970-01-01
      相关资源
      最近更新 更多