首页 > 解决方案 > 提供的参数既不是用户也不是角色。DiscordJS v12

问题描述

我正在尝试创建一个突变角色,我不能限制消息和反应。

(节点:7044)UnhandledPromiseRejectionWarning:TypeError [INVALID_TYPE]:提供的参数不是用户也不是角色。

const muteRole = message.guild.roles.create({
                    data: {
                        name: 'test - Muted',
                        color: '#F3FF00',
                    },
                });
                message.guild.channels.cache.forEach(async (channel)=> {
                    await channel.overwritePermissions([
                        {
                            SEND_MESSAGES: false,
                            ADD_REACTIONS: false,
                        },
                    ]);
                });

标签: node.jsdiscorddiscord.js

解决方案


我相信你实际上在寻找Channel.updateOverwrite(). 无论哪种方式,您都会收到此错误,因为这两个函数都需要角色或用户 ID(否则,他们将如何知道要更改谁的权限

// create the role
message.guild.roles.create({
  data: {
    name: 'test - Muted',
    color: '#F3FF00',
  },
}).then((role) => {
  message.guild.channels.each((channel) => { // iterate through all channels
    channel.updatePermissions(role,  { // identify the role to update
      {
        SEND_MESSAGES: false, // set the overwrites
        ADD_REACTIONS: false,
      },
   );
  });
});

推荐阅读