【问题标题】:default position for a new voice channel on discord.jsdiscord.js 上新语音通道的默认位置
【发布时间】:2019-06-30 18:47:29
【问题描述】:

我做了一个不和谐的机器人,如果用户进入一个特定的语音通道,另一个语音通道是临时创建的,用户被移入。但是机器人创建的通道进入了不和谐服务器的顶部,它进入“临时通道”。所以你可以在屏幕上看到我的问题,临时频道会移动所有现有频道,如果服务器上有很多用户......这会产生问题。

https://gyazo.com/05853a3ba35d2850d60207459b0075ea

我尝试使用 createChannel() 或 clone(),它可以工作,但有同样的问题。

client.on('voiceStateUpdate', (oldMember, newMember) => {
    const defaultCategory = '542554305194885120';
    const defaultCreate = '541105891248701450';
    if(newMember.voiceChannelID === defaultCreate){
    newMember.guild.createChannel(`Salon de ${newMember.user.username}`, 'voice')
        .then(tempChannel => {
            tempChannel.setParent(defaultCategory);
            newMember.setVoiceChannel(tempChannel.id);
        })
        .catch(console.error);
    }
});

我想在“临时频道”类别中创建一个频道,而不是先在顶部创建,在不和谐服务器上然后进入该类别

感谢您的帮助。

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    我认为不可能将频道直接创建为类别频道的子频道。 client.guild.createChannel() 没有任何与职位相关的选项。

    【讨论】:

      【解决方案2】:

      更新:2020/12/22:你可以使用这个包:https://www.npmjs.com/package/discord.js-temporary-channel 这适用于 Discord.js

      client.on('voiceStateUpdate', (oldMember, newMember) => {
          // todo create channel
          if (newMember.voiceChannel != null && newMember.voiceChannel.name.startsWith('+ ')) {
              newMember.guild.createChannel(`- ${newMember.displayName}`, {
                  type: 'voice',
                  parent: newMember.voiceChannel.parent
             }).then(cloneChannel => newMember.setVoiceChannel(cloneChannel))
          }
          // ! leave
          if (oldMember.voiceChannel != undefined) {
              if (oldMember.voiceChannel.name.startsWith('- ')) {
                  if (oldMember.voiceChannel.members.size == 0) {
                      oldMember.voiceChannel.delete()
                  }
                  else { // change name
                      let matchMember = oldMember.voiceChannel.members.find(x => `- ${x.displayName}` == oldMember.voiceChannel.name);
                      if (matchMember == null) {
                          oldMember.voiceChannel.setName(`- ${oldMember.voiceChannel.members.random().displayName}`)
                      }
                  }
              }
          }
      });
      

      感谢 reddit vn 的 Pie

      您需要像这样https://imgur.com/a/vQ8xwTY 的创建频道 和https://discord.js.org/#/docs/main/stable/class/VoiceChannel?scrollTo=clone

      【讨论】:

        猜你喜欢
        • 2022-01-16
        • 1970-01-01
        • 2021-07-04
        • 2022-01-16
        • 2021-11-21
        • 1970-01-01
        • 2021-06-08
        • 2021-07-15
        相关资源
        最近更新 更多