@FIain

Почему не работает функция создания приватных комнат?

Здравствуйте, не могу разобраться почему бот не создает приватную комнату. Как это должно работать?
После того как я зайду в комнату под названием "Создать комнату" 5fa49b422e209997068525.png должна автоматически создаться приватная комната и меня должно перекинуть в нее, а после моего выхода из комнаты она должна автоматически удалиться.

- index.js
const discord = require("discord.js"),createPrivateRoom = require("./events/createPrivateRoom.js");

var client = new discord.Client();

client.on("ready",()=>{
    console.log(`Бот запущен.`);
})

client.on("voiceStateUpdate",(oldMember,newMember)=>{
    createPrivateRoom(oldMember,newMember)
})

client.login("Сюда вставляю токен от бота");


- Основной код для создания комнаты createPrivateRoom.js
var servers = {};

module.exports = function(oM, nM) {
  if (nM.voiceChannel) {
    if (nM.voiceChannel.name == "Создать комнату") {
      nM.voiceChannel.guild
        .createChannel("Приват", {
          type: "VOICE",
          parent: "774056518051561482",
          permissionOverwrites: [
            {
              id: nM.guild.id,
              deny: ["ADMINISTRATOR"],
              allow: ["CONNECT", "SPEAK", "VIEW_CHANNEL"]
            }
          ]
        })
        .then(room => {
          nM.setVoiceChannel(room.id);
          nM.voiceChannel.guild.channels
            .find(channel => channel.id == room.id)
            .overwritePermissions(nM, {
              KICK_MEMBERS: true,
              MANAGE_CHANNELS: true
            });
          if (!servers[nM.guild.id]) servers[nM.guild.id] = {};
          if (!servers[nM.guild.id].voiceMember)
            servers[nM.guild.id].voiceMember = {};
          if (!servers[nM.guild.id].voiceMember[nM.id])
            servers[nM.guild.id].voiceMember[nM.id] = {};
          if (!servers[nM.guild.id].voiceMember[nM.id].room)
            servers[nM.guild.id].voiceMember[nM.id].room = room.id;
          servers[nM.guild.id].voiceMember[nM.id].room = room.id;
          if (!servers[nM.guild.id].voiceMember[nM.id].interval)
            servers[nM.guild.id].voiceMember[nM.id].interval = {};
          servers[nM.guild.id].voiceMember[nM.id].interval = setInterval(() => {
            if (nM.voiceChannel) {
              if (
                servers[nM.guild.id].voiceMember[nM.id].room !=
                nM.voiceChannel.id
              ) {
                nM.voiceChannel.guild.channels
                  .find(
                    channel =>
                      channel.id == servers[nM.guild.id].voiceMember[nM.id].room
                  )
                  .delete();
                clearInterval(servers[nM.guild.id].voiceMember[nM.id].interval);
              }
            } else if (!nM.voiceChannel) {
              //oM.voiceChannel.guild.channels.find(channel=>channel.id == servers[nM.guild.id].voiceMember[nM.id].room).delete();
              clearInterval(servers[nM.guild.id].voiceMember[nM.id].interval);
            }
          }, 3000);
        });
    }
  }
  if (!nM.voiceChannel) {
    if (!servers[nM.guild.id]) servers[nM.guild.id] = {};
    if (!servers[nM.guild.id].voiceMember)
      servers[nM.guild.id].voiceMember = {};
    if (!servers[nM.guild.id].voiceMember[nM.id])
      servers[nM.guild.id].voiceMember[nM.id] = {};
    if (!servers[nM.guild.id].voiceMember[nM.id].room)
      servers[nM.guild.id].voiceMember[nM.id].room = 0;
    if (!oM.voiceChannel) return;
    if (servers[nM.guild.id].voiceMember[nM.id].room == oM.voiceChannel.id) {
      oM.voiceChannel.guild.channels
        .find(
          channel => channel.id == servers[nM.guild.id].voiceMember[nM.id].room
        )
        .delete();
    }
  }
};
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы