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)
Я вроде закидывал и ждал это через промисс, но что-то у меня не получилось