Node js неопределенная переменная с несколькими файлами - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь сделать мой код максимально чистым / читабельным, но когда я пытаюсь расположить мой код в разных файлах, это дает мне неопределенную переменную error. Я новичок в node js, поэтому любая помощь / Совет будет признателен.

Основной. js файл, в котором все должно выполняться:

client.on("message", message => {

    if (!message.content.startsWith(`${clientSettings.prefix}`)) return;

    var link = message.content.substring(1).split(" ");

    switch (link[0]) {
        case `play`:
            musicBot.Main(link[1], message);
            break;
        case `skip`:
            musicBot.Skip(message);
            break;
    }

})

Основной файл класса музыкального бота:

module.exports = class MusicBot {
    Main(link, message) {

        if (!link) return message.channel.send("Ubacite link!");

        if (!message.member.voiceChannel) return message.channel.send("Morate da budete u voice!");

        if (!musicQueue[message.guild.id]) musicQueue[message.guild.id] = {
            queue: []
        }

        server = musicQueue[message.guild.id];

        server.queue.push(link);

        if (!message.guild.voiceConnection) message.member.voiceChannel.join().then(function (connection) {
            musicPlay(connection, message, server);
        })

    }
    Skip(message) {

        musicSkip(server, message);
    }
}

Воспроизведение. js команда:

const ytdl = require("ytdl-core");

module.exports = function play(connection, message, server) {

    server.dispatcher = connection.playStream(ytdl(server.queue[0]), { filter: "audioonly" });

    server.queue.shift();

    server.dispatcher.on("end", function () {
        if (server.queue[0]) {
            play(connection, message);
        }
        else {
            connection.disconnect();
        }
    });
}

И пропустить. js команда:

module.exports = function skip(server, message) {

    if (!message.member.voiceChannel) return message.channel.send("Morate da budete u voice!");

    if (server.dispatcher) server.dispatcher.end();

}

Ошибка, которую я получаю:

Ошибка типа: не удается прочитать свойство 'queue' undefined при воспроизведении (/home/ubuntu/Desktop/DiscordClean/MusicBot/commands/play.js:5:59) в StreamDispatcher. (/home/ubuntu/Desktop/DiscordClean/MusicBot/commands/play.js:11:13)

Команда Play работает до тех пор, пока я не пытаюсь пропустить песню, а затем дает мне ошибка

Я пытался передать значение от MusicMain.js до Play.js, но оно не работает.

...