【问题标题】:TypeError [INVALID_TYPE]: Supplied parameter is not a User nor a Role. | Discord.jsTypeError [INVALID_TYPE]:提供的参数既不是用户也不是角色。 |不和谐.js
【发布时间】:2021-08-13 10:26:36
【问题描述】:

当我第一次编写这些函数时,我没有意识到.overwritePermissions() 会擦除设置权限。注意到错误后回到我的代码,我尝试将joinPrivateChannel() 更新为使用.updateOverwrite(),以免删除创建频道的用户的频道权限。

作为参考,第一个函数createPrivateChannel() 每次都能完美运行,而第二个函数给我错误TypeError [INVALID_TYPE]: Supplied parameter is not a User nor a Role.。我尝试硬编码用户 ID、成员变量、角色 ID 和角色变量(每种都以几种不同的方式),但这些都不起作用。我很乐意提供/澄清任何要求的信息,感谢您抽出宝贵时间。

async function createPrivateChannel(serverId, channelName, message) {
  const guild = await client.guilds.fetch(serverId);
  const everyoneRole = guild.roles.everyone;
  const staffRole = guild.roles.Owner;
  const channel = await guild.channels.create(channelName, 'lobby')
  await channel.setParent(lobby_category);
  await channel.overwritePermissions([
    {type: 'member', id: message.author.id, allow: [Permissions.FLAGS.VIEW_CHANNEL]},
    {type: 'role', id: everyoneRole.id, deny: [Permissions.FLAGS.VIEW_CHANNEL]},
  ]);
  channel.send('+start');
  return;
}

async function joinPrivateChannel(serverId, channel, message){
    const guild = await client.guilds.fetch(serverId);
    await channel.updateOverwrite([
        {type: 'member', id: message.author.id, allow: [Permissions.FLAGS.VIEW_CHANNEL]},
    ]);
};

【问题讨论】:

    标签: javascript permissions discord.js


    【解决方案1】:

    基于 djs 文档的 updateOverwrite 没有任何数组语法。可能你只是误解了参数。

    updateOverwrite 有以下参数:(userOrRole,options,reason)。

    你的情况

    await channel.updateOverwrite(message.author.id,
            {VIEW_CHANNEL: true},
        );
    

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 2020-08-20
      • 1970-01-01
      • 2021-01-22
      • 2019-09-23
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      • 2020-08-10
      相关资源
      最近更新 更多