【发布时间】:2025-12-19 14:45:12
【问题描述】:
我想制作一个音乐不和谐机器人,但我遇到了一段时间的麻烦。我不断收到错误消息,我从 CodeLyon 的名为“制作您自己的 Discord Bot | Music Bot(播放、跳过、停止命令)”的视频中得到了这段代码
我尝试时总是遇到同样的错误:
ReferenceError: PREFIX 未定义
const ytdl = require("ytdl-core");
var servers = {};
client.on('message', message => {
let args = message.content.substring(PREFIX.length).split(" ");
switch (args[0]){
case "play":
const prefix = '!';
function play(connection, message){
var server= servers[message.guild.id];
server.dispatcher = connection.play(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 channel to play the bot");
return;
}
if(!serveres[message.guild.id]) servers[message.guild.id] = {
queue: []
}
var server = servers[message.guild.id];
server.queue.push(args[1]);
if(!message.guild.voice) message.member.VoiceChannel.join().then(function(Connection){
play(connection, message)
})
break;
case 'skip':
var server = servers[message.guild.id];
if(server.dispatcher) server.dispatcher.end();
break;
case 'stop':
var server = servers[message.guild.id];
if(message.guild.voice){
for(var i = server.queue.length -1; i >=0;i--){
server.queue.splice(i, 1);
}
server.dispatcher.end();
console.log('stopped the queue')
}
if(message.guild.connection) message.guild.voice.disconnect();
break;
}
});
【问题讨论】:
-
请确保您的代码格式正确并更清楚地表达问题,因为我无法理解错误/问题是什么。
标签: javascript discord discord.js bots