Задать вопрос
@SasukeUchiha

Как решить ошибку DiscordAPIError: Target user is not connected to voice?

Я делаю своего бота, на данный момент остановился на приватных каналах
И я столкнулся с проблемой, когда участник выходит с канала "Создать приват", когда его еще не закинуло в свой приват в консоли выдает ошибку "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(() => {})
  }
})
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы