Я делаю своего бота, на данный момент остановился на приватных каналах
И я столкнулся с проблемой, когда участник выходит с канала "Создать приват", когда его еще не закинуло в свой приват в консоли выдает ошибку "DiscordAPIError: Target user is not connected to voice." после чего бот крашится.
Как можно решить данную проблему?
Вот код:
const { VoiceState } = require('discord.js');
const client = require('../index');
client.on('voiceStateUpdate', async (oldState, newState) => {
const { member, guild } = newState;
const oldChannel = oldState.channel;
const newChannel = newState.channel;
const joinToCreate = "964233496061157436"
if(oldChannel !== newChannel && newChannel && newChannel.id === joinToCreate) {
const voiceChannel = await guild.channels.create(member.user.tag, {
type: "GUILD_VOICE",
parent: newChannel.parent,
permissionOverwrites: [
{id: member.id, allow: ["CONNECT", "MANAGE_CHANNELS", "MOVE_MEMBERS"]},
{id: guild.id, allow: ["CONNECT"]}
]
});
client.voiceGenerator.set(member.id, voiceChannel.id);
await newChannel.permissionOverwrites.edit(member, {CONNECT: false});
setTimeout(() => newChannel.permissionOverwrites.delete(member), 30 * 1000);
return setTimeout(() => member.voice.setChannel(voiceChannel), 500);
}
const ownedChannel = client.voiceGenerator.get(member.id)
if(ownedChannel && oldChannel.id == ownedChannel && (!newChannel || newChannel.id !== ownedChannel)) {
client.voiceGenerator.set(member.id, null);
oldChannel.delete().catch(() => {})
}
})