【问题标题】:DiscordAPIError: Unknown MessageDiscordAPIError:未知消息
【发布时间】:2018-11-05 07:17:41
【问题描述】:

我使用 discord.js 和 commando 创建了一个冻结命令,它为用户提供了一个角色,并阻止他们交谈和聊天。似乎每次我运行它时,它都会抛出一个错误:

(node:7352) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message

我还没有找到它是什么,但也许我只是一个小块。

代码:

async run(message, { user }) {
  message.delete()

  const member = message.guild.member(user);

  if (!message.member.hasPermission("MUTE_MEMBERS")) return message.say("Sorry, but you do not have the Mute Members Permission! If you beleive this is a error, contact an owner.");

  if (!user) return message.say(`Cannot find user!`)

  if (member.hasPermission("MUTE_MEMBERS")) return message.say("The user you are trying to freeze is either the same, or higher role than you.");

  let muterole = message.guild.roles.find(`name`, "Frozen");

  if (member.roles.has(muterole)) return message.say(`${user.username} is already frozen!`);

  if (!muterole) {
    try {
      muterole = await message.guild.createRole({
        name: "Frozen",
        color: "#000000",
        permissions: []
      })
      message.guild.channels.forEach(async(channel, id) => {
        await channel.overwritePermissions(muterole, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false,
          SPEAK: false
        });
      });
    } catch (e) {
      console.log(e.stack);
    }

    await (member.addRole(muterole.id))
    message.say(`**${user.username} has been frozen! To unfreeze them, use the unfreeze command!**`)
    message.delete(5000)
  }
}

任何帮助将不胜感激!谢谢。

【问题讨论】:

  • 您先删除邮件,然后从那里抓取所有内容?好像不太对。。

标签: javascript node.js discord discord.js


【解决方案1】:

我认为这是因为您在第一行中删除了带有message.delete() 的消息,但最后您又使用message.delete(5000) 删除了该消息。 其余代码运行良好,因为即使您删除了该消息,它仍然保存在您的 message 变量中,但是当您再次尝试删除该消息时,API 无法找到它。尝试删除message.delete() 之一

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 2021-09-20
    • 2021-07-07
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    相关资源
    最近更新 更多