不和谐音乐机器人不起作用



当我在 discord 本身中运行以下脚本(cmd 中的"node musicbot.js")和"!play ytlink"时,机器人会加入语音通道并在控制台中记录命令和链接。然而,音乐没有开始播放。我已经安装了ffmpeg,ytdl-core和discord.js。

有人可以帮助我吗?我不知道哪个部分搞砸了。

const Discord = require("discord.js");
const ytdl = require("ytdl-core");
const config = require("./config.json");
const bot = new Discord.Client();
let queue = [];
function play(connection, message) {
let audio = ytdl(queue[0], {filter: "audioonly"});
let dispatcher = connection.playStream(audio);
dispatcher.on("end", function() {
queue.shift();
if (queue[0]) play(connection, message);
else {
connection.disconnect();
message.channel.send("The queue has ended");
}
});
}
bot.on("message", function(message) {
if (message.channel.type === "dm") return;
if (!message.content.startsWith(config.prefix) || message.author.bot) 
return;
let arguments = message.content.split(" ");
let command = arguments[0].toLowerCase();
arguments.shift();
console.log(command);
console.log(arguments);
if (command == "!play") {
if (!arguments[0]) {
message.channel.send("Please provide a YouTube link!");
message.delete();
return;
}
if (!message.member.voiceChannel) {
message.channel.send("Please join a Voice Channel first!");
message.delete();
return;
}
queue.push(arguments[0]);
message.member.voiceChannel.join()
.then(connection => {
play(connection, message);
});
}
});
bot.on("ready", function() {
console.log("Ready");
});
bot.login(config.token); 

好的,我有两个解决方案给你。第一个是我使用过的代码块,我可以说它根据经验工作。

它需要ffmpegopusscriptytdl

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

我强烈推荐的第二个选项是节点模块,它具有许多难以实现的更高级的功能,例如:

  • 音乐帮助 [命令]:显示此插件命令的帮助文本,或特定命令的帮助。
  • 播放
  • |:播放来自YouTube的音频。
  • 跳过[数字]
  • :跳过一首或多首歌曲,跳过[一些数字],
  • 队列
  • :显示当前队列。
  • 暂停:暂停音乐播放。
  • 恢复
  • :恢复音乐播放。
  • 音量:在 1 到 200 之间调整播放音量。
  • 离开
  • :清除歌曲队列并离开频道。
  • 清除队列
  • :清除歌曲队列。
  • 所有者
  • :各种所有者命令/操作。(W.I.P)

它易于安装和入门,这是节点页面,其中包含有关安装等的所有信息。

最新更新