@outplayedrq

Как можно удалять voice канал, когда в нём нет пользователей?

const channelName = '↾ᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘᵘ↿'

const getVoiceChannels = (guild) => {
    return guild.channels.cache.filter((channel) => {
        return channel.type === 'voice' && channel.name === channelName
    })
}

bot.on('voiceStateUpdate', async (oldState, newState) => {

    const {guild} = oldState
    const joined = !!newState.channelID

    const channelId = joined ? newState.channelID : oldState.channelID
    const channel = guild.channels.cache.get(channelId)

    let channelCreate

    if (channel.name === channelName) {
        if (joined) {

            const channels = getVoiceChannels(guild)

            let hasEmpty = false

            channels.forEach((channel) => {
                if (!hasEmpty && channel.members.size === 0) {
                    hasEmpty = true
                }
            })

            if (!hasEmpty) {
                const {
                    bitrate,
                    parentID,
                    permissionOverwrites,
                    rawPosition
                } = channel

                async function createChannel() {
                    const tempo1 = await guild.channels.create("kanal " + newState.member.user.username + "'s", {
                        type: "voice",
                        bitrate,
                        userLimit: 99,
                        parent: parentID,
                        permissionOverwrites,
                        position: rawPosition
                    })
                    await newState.member.voice.setChannel(tempo1)
                    channelCreate = await guild.channels.cache.get(tempo1.id)
                    return tempo1
                }

                await createChannel()
            }
        }
    }

// if (channelCreate.members.size === 0) {
//        channelCreate.delete()
// }

// Данная конструкция не работает, undefined


})


Есть данный код, при заходе в предначертанный судьбой voice channel, будет создаваться voice channel с твоим ником. Как я могу отслеживать, что там происходит, сколько там пользователей и когда мне удалять канал?

Как я полагаю вот это нужно закинуть в промисс и дальше с этим работать?
channelCreate = await guild.channels.cache.get(tempo1.id)


Я вроде закидывал и ждал это через промисс, но что-то у меня не получилось
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ответы на вопрос 1
Вам нужно создать слушатель событий voiceStateUpdate https://discord.js.org/#/docs/main/stable/class/Cl...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы