visual-studio-code - 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"
}
}
解决方案
推荐阅读
- c++ - 这行 else if(open_nodes_map[xdx][ydy]>m0->getPriority()) 是什么意思?
- c++ - 在 Set/Map 中使用向量作为键的 C++ 不会产生唯一答案
- mysql - 如何删除联合表与连接表之间的匹配项
- python - 如何仅在一个 Python 版本中升级 Numpy?
- mysql - 如何在微服务架构中管理 MySQL 连接
- python - 触发带有两个命令的按钮时会弹出额外的窗口
- python - 使用 sklearn 计算仅给定单词列表的 tf-idf 权重
- android - 如果我点击导航控制器中的菜单,如何在两个片段目的地之间传递数据?
- ios - 当我尝试存档时,我无法创建 ipa 文件
- go - 使用事务进行 sqlite 查询?