Answer the question
In order to leave comments, you need to log in
Why is this not a function?
When entering a channel called "Main", the same channel should be copied. Gives error scalingChannels is not a function
index.js
const scalingChannels = require('./scaling-channels')
client.on('ready', async () => {
console.log('The client is ready!')
scalingChannels(client)
const baseFile = 'command-base.js'
const commandBase = require(`./commands/${baseFile}`)
const readCommands = (dir) => {
const files = fs.readdirSync(path.join(__dirname, dir))
for (const file of files) {
const stat = fs.lstatSync(path.join(__dirname, dir, file))
if (stat.isDirectory()) {
readCommands(path.join(dir, file))
} else if (file !== baseFile) {
const option = require(path.join(__dirname, dir, file))
commandBase(client, option)
}
}
}
readCommands('commands')
})
const channelName = 'Основной'
const getVoiceChannels = (guild) => {
return guild.channels.cache.filter((channel) => {
return channel.type === 'voice' && channel.name === channelName
})
}
module.exports = (client) => {
client.on('voiceStateUpdate', (oldState, newState) => {
const { guild } = oldState
const joined = !!newState.channelID
const channelId = joined ? newState.channelID : oldState.channelID
let channel = guild.channels.cache.get(channelId)
console.log(
`${newState.channelID} vs ${oldState.channelID} (${channel.name})`
)
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 {
type,
userLimit,
bitrate,
parentID,
permissionOverwrites,
rawPosition,
} = channel
guild.channels.create(channelName, {
type,
bitrate,
userLimit,
parent: parentID,
permissionOverwrites,
position: rawPosition,
})
}
} else if (
channel.members.size === 0 &&
getVoiceChannels(guild).size > 1
) {
channel.delete()
}
} else if (oldState.channelID) {
channel = guild.channels.cache.get(oldState.channelID)
if (
channel.name === channelName &&
channel.members.size === 0 &&
getVoiceChannels(guild).size > 1
) {
channel.delete()
}
}
})
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question