Discord бот играет музыку - PullRequest
       20

Discord бот играет музыку

0 голосов
/ 30 апреля 2020

Я искал информацию об этой теме, но ничего не нашел, поэтому я здесь, чтобы попросить о помощи. Я новичок в программировании и пытаюсь заставить бота играть на музыке c на моем сервере. Когда я пытаюсь запустить бота, используя «узел», он говорит, что не может найти каталог. Вот код (с использованием ytdl-core и opusscript, также discord. js) (я вижу пакет myp. json. Имя бота просто бот. js):

const Discord = require('discord.js');

const bot = new Discord.Client();

const bot_token = 'REMOVED_THE_AUTH_TOKEN';

bot.login(bot_token);

const PREFIX = '';

var servers = {};

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

bot.on('ready', () =>{
    console.log('Bot online!')
})

bot.on('message', message=>{

    let args = message.content.substring(PREFIX.length).split(" ");

    switch (args[0])
    {
        case ' ':
            message.channel.send('Hello')
            break;
        case 'Hello!':
            message.channel.send('Hi!')
            break;
        case '!botinfo':
            message.channel.send('HelloBot, version 1.1.5\nLoves saying \"Hi!\"\nCreator: BGnikitaBG')
            break;
        case '!game':
             message.channel.send('Ping-pong balls!')
            break;
        case 'Ping':
             message.channel.send('Pong!')
            break;
        case 'Pong':
             message.channel.send('Ping!')
            break;
        case '!music':
            message.channel.send('Beep-Booooob-Beep! Beeeeep-Booob')
            break;
        case 'Love!':
            message.channel.send('My heart is yours!')
            break;
        case 'Goodbye!':
            message.channel.send('Bye, bye!')
            break;
        case 'Homework?':
            message.channel.send('I am not updated yet!')
            break;
        case '!play':
            function play(connection, message){
                var server = servers[message.guild.id]

                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();
                    }
                });
            }


            if (!args[1]){
                message.channel.send('You need to provide a link!');
                return;
            }

            if (!message.member.voiceChannel){
                message.channel.send('You must be in a voice channel to play the bot!');
                return;  
            }

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

            var server = servers[message.guild.id];

            server.queue.push(args[1]);

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

    })

//It worked before the "play update".
//package.json:

{
  "name": "bot-testing-machine",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node ./sources/bot.js"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/8Nikicha8/bot-testing-machine.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/8Nikicha8/bot-testing-machine/issues"
  },
  "homepage": "https://github.com/8Nikicha8/bot-testing-machine#readme",
  "dependencies": {
    "discord.js": "^12.2.0",
    "opusscript": "0.0.7",
    "ytdl-core": "^2.1.1"
  }
}

...