Здравствуйте, не могу разобраться почему бот не создает приватную комнату. Как это должно работать?
После того как я зайду в комнату под названием "Создать комнату"
должна автоматически создаться приватная комната и меня должно перекинуть в нее, а после моего выхода из комнаты она должна автоматически удалиться.
- 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();
}
}
};