Как удалить голосовой канал, когда все отключаются?

#javascript #node.js #discord.js #channel #voice

Вопрос:

Я создал соединение для создания системы, которая создает канал, когда пользователь присоединяется, и удаляет его, когда он уходит. Однако он удаляется только в том случае, если последним покидающим человеком является пользователь, создавший комнату. Есть какие-нибудь идеи?

 const { Collection } = require("discord.js");
const voiceCollection = new Collection();

module.exports = async (Discord, client, oldState, newState) => {
  const user = await client.users.fetch(newState.id);
  const member = newState.guild.member(user);

  // JOIN
  if (!voiceName || voiceName === "") {
    if (!oldState.channel amp;amp; newState.channelID === "898245212541976667") {
      const channel = await newState.guild.channels.create(user.tag, {
        type: "voice",
        parent: newState.channel.parent,
      });
      member.voice.setChannel(channel);
      voiceCollection.set(user.id, channel.id);
      await channel.overwritePermissions([
        {
          id: user.id,
          allow: ["MANAGE_CHANNELS", "CONNECT"],
        },
        {
          id: member.guild.id,
          deny: ["CONNECT"],
        },
      ]);
    } else if (!newState.channel) {
      if (oldState.channelID === voiceCollection.get(newState.id)) {
        if (oldState.channel.members.size < 1) {
          return oldState.channel.delete();
        }
      }
    }
 

Комментарии:

1. Как вы это выполняете?

2. Просто идея, возможно, позже напишу для нее какой-нибудь код, но вы можете проверять количество пользователей в ВК каждые несколько секунд, и если их нет, то удалите его.

3. @MrMythical что ты имеешь в виду?