【问题标题】:Bulk adding users to a voice channel将用户批量添加到语音频道
【发布时间】:2020-06-14 23:53:30
【问题描述】:

我正在尝试创建一个命令来创建一个临时语音通道,您可以使用该通道并在用户离开后将其删除。在我将用户添加到频道之前,一切都运行良好。通常添加一个用户不是问题,但我试图让它同时添加多个人,所以你可以这样做!vc @user1 @user2 @user3。 . .等等 这是我的代码:

let member = message.member
user = member.user
const allowed = message.mentions.members.first()

 message.delete()
 message.guild.createChannel(`????${member.user.username}'s Room`, 'voice', [{

                    id: message.guild.id,
                    deny: ['CONNECT', 'USE_VAD']

                }]).then(channel => {

                    channel.setParent('567718414454358026')

                    channel.overwritePermissions(member, {
                        CONNECT: true,
                        USE_VAD: true,
                        PRIORITY_SPEAKER: true
                    })

                    for (const allowedMember in allowed) {
                        channel.overwritePermissions(allowedMember, {
                          CONNECT: true,
                          USE_VAD: true,
                        })
                      }

                });

let privatevc = new Discord.RichEmbed()
    .setDescription(':white_check_mark: Successfully created a :lock: **private** voice channel!')
    .setColor(config.green)

await message.channel.send({ embed: privatevc }).then(msg => msg.delete(10000));

for (const allowedMember in allowed) 是我坚持的部分,无法让它为提到的每个成员循环工作。

因此,我非常感谢任何可能的帮助。先感谢您。 :)

【问题讨论】:

  • 你试过“for of”而不是“for in”吗?您可以在此答案中找到不同之处:https://stackoverflow.com/a/50015996/7514874
  • 刚试过,现在收到这个错误:TypeError: allowed is not iterable
  • 你为什么使用message.mentions.members.first()?不应该是message.mentions.members 吗?
  • 因为我也遇到了问题。我现在做了message.mentions.members,得到了 TypeError: Supplied parameter is not a User 也不是 Role。

标签: javascript node.js discord.js


【解决方案1】:

你必须循环遍历message.mentions.members

const allowed = message.mentions.members;
allowed.each(allowedMember => {
  channel.overwritePermissions(allowedMember, {
       CONNECT: true,
       USE_VAD: true,
  });
});

您应该改为只给他们一个角色并更改该角色的覆盖。

【讨论】:

  • 现在我得到TypeError: allowed.each is not a function 嗯。
  • 哦,您现在使用的是 v11,请改用 allowed.forEach
  • 我应该说,哈哈,对不起。我还没有时间更新到 12,这意味着我必须重写一半的命令。但它奏效了!非常感谢您的帮助
  • 没问题,更新 v12 非常值得 imo,Manager 类更有条理/
  • 我的朋友(在 bot 开发方面有更多经验,我实际上是 youtube 和阅读文档的自学者哈)也告诉我我应该尽快更新到 12。所以它在我的优先级列表之上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 2022-08-02
  • 2019-02-05
  • 2023-03-25
相关资源
最近更新 更多