首页 > 解决方案 > Discord 机器人播放音乐

问题描述

我搜索了一些关于这个主题的信息,但我没有找到任何东西,所以我在这里寻求一些帮助。我是编程新手,我正在尝试让机器人在我的服务器上播放一些音乐。当我尝试使用“node.”启动机器人时,它说它找不到目录。这是代码(使用 ytdl-core 和 opusscript,还有 discord.js)(我可以看到 myp package.json。机器人的名称只是 bot.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"
  }
}

标签: visual-studio-codediscorddiscord.js

解决方案


推荐阅读