Discord.js静音命令和创建静音角色不起作用并给出错误

mimi07:

我正在尝试创建一个静音命令。如果Muted未创建角色,则我希望该漫游器自动创建一个角色并覆盖每个频道权限,以便具有该角色的用户无法发送消息。

我的代码:

bot.on('message', (message) => {
  const args = message.content.substring(PREFIX.length).split(' ');

  switch (args[0]) {
    case 'mute':
      const person = message.guild.member(
        message.mentions.users.first() && message.guild.members.fetch(args[1])
      );
      if (!person) return message.reply("Couldn't find that member!");
      if (person.hasPermission('MANAGE_MESSAGES'))
        return message.reply("You don't have permissions to mute members!");

      const muterole = message.guild.roles.fetch(
        (role) => role.name === 'Muted'
      );

      if (!muterole) {
        muterole = message.guild.roles.create(
          (name = 'Muted'),
          (color = 0x000000),
          Permissions('VIEW_CHANNEL')
        );
        message.channel.updateOverwrite(muterole, { SEND_MESSAGES: false });
      }

      const time = args[2];

      if (!time)
        return message.reply('How many time do you want him to be quiet?');

      person.roles.add(muterole);
      message.channel.send(`@${person.id} has been muted for ${ms(ms(time))}`);

      setTimeout(function () {
        person.roles.remove(muterole);
      }, ms(time));
  }
});

我的错误:

(node:2780) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body
user_id: Value "<@!402128830472650752>" is not snowflake.
母狮100:

在这行上:

const person = message.guild.member(
  message.mentions.users.first() && message.guild.members.fetch(args[1])
);

使用message.guild.members.cache.get代替message.guild.members.fetch

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章