DiscordAPIError: Unknown Message when trying to automatically delete messages

DiscordAPIError: Unknown Message when trying to automatically delete messages

我正在尝试创建一个系统,如果消息不是以命令前缀开头并且用户没有特定角色,该系统会自动删除特定频道中的消息。

一切正常,但一旦删除一条消息,就会抛出错误 DiscordAPIError: Unknown Message

以下是出现此错误的代码片段:

client.on("messageCreate", (message) => {
    function deleteTalk(delay) {
        setInterval(() => {
            if (message.channel.id === "786356926216536102") {
                if (
                    !message.content.startsWith(prefix) &&
                    !message.member.roles.cache.has("791024545091420190")
                ) {
                    if (!message) return;
                    const user = message.author;
                    message.delete();
                    user.send("Please don't talk in report channels.");
                    return;
                }
            }
        }, delay);
    }

    deleteTalk(100);

//Other Code...
});

我查看了人们遇到同样错误的问题,但这些实例的解决方案对我没有用。我已经尝试添加代码片段,如果没有要删除的消息,应该可以防止函数再次触发,但我认为我写的是不正确的,因为我仍然收到错误。

您设置了一个 setInterval,以便在第一次执行时删除您的消息,但您在 100 毫秒后再次尝试删除它,但该消息不再存在。 对于您的情况,我看不到 setInterval 的用途

client.on('messageCreate', (message) => {
    if (
        message.channel.id === '786356926216536102' &&
        !message.content.startsWith(prefix) &&
        !message.member.roles.cache.has('791024545091420190')
    ) {
        const user = message.author;
        message.delete();
        user.send("Please don't talk in report channels.");
        return;
    }
});