【问题标题】:DiscordJS error while deleting array of messages删除消息数组时出现 DiscordJS 错误
【发布时间】:2020-02-10 01:00:20
【问题描述】:

我的代码:

const Discord = require("discord.js");

module.exports.run = async (bot, message, args) => {
    const amount = args[0]
    if (!amount) return message.reply('Must specify an amount to delete!');
    message.channel.fetchMessages({
        limit: amount,
    }).then((messages) => {
        message.delete(messages).catch(error => console.log(error.stack));
    });
    message.delete().catch(O_o => { });
}

module.exports.help = {
    name: "clear"
}

问题:我正在我的帐户上运行机器人并试图让它在命令执行时删除消息。 错误:DiscordAPIError:未知消息 在 item.request.gen.end (C:\Users\brian\node_modules\discord.js\src\client\rest\RequestHandlers\Sequential.js:79:15) 那时 (C:\Users\brian\node_modules\snekfetch\src\index.js:215:21) 在 process._tickCallback (internal/process/next_tick.js:68:7)

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    问题在于 message.delete 需要一个超时数字,而不是消息数组

    Read documentation

    你可能想做类似的事情

    .then((messages) => {
            Promise.all(messages.map(msg => msg.delete()))
            .then(() => message.delete()) //delete original message after others are cleared
            .catch(error => console.log(error.stack));
        });
    
    

    【讨论】:

    • 谢谢,但现在我收到类似这样的错误:DiscordAPIError: Cannot execute action on a DM channel
    • 我认为检索到的消息也有来自其他用户的消息?也许机器人无法删除它?我只是在这里猜测
    • 是的,有没有办法只删除自己发送的消息而忽略其他用户?
    • 查看消息。作者?
    猜你喜欢
    • 2021-06-17
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    相关资源
    最近更新 更多