discord.js上新语音通道的默认位置

时间:2019-02-06 18:11:35

标签: javascript discord.js

我制作了一个discord bot,如果用户输入特定的语音通道,则会临时创建另一个语音通道,然后将用户移入。但是该bot所创建的通道转到了discord服务器的顶部,并且进入“临时频道”。因此,您可以在屏幕上看到我的问题,临时频道会移动所有现有频道,并且服务器上是否有很多用户……这会造成问题。

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);
    }
});

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

谢谢您的帮助。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这是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