gpt4 book ai didi

javascript - 修复不和谐音乐机器人队列

转载 作者:行者123 更新时间:2023-12-04 09:44:41 25 4
gpt4 key购买 nike

我在此观看的视频是大约 9 个月前制作的,队列不再起作用。
它所做的只是播放一首新歌,而不是将其排队。停止命令也不起作用。
我对 Javascript 真的很陌生,我无法找到任何问题,但我确定它有什么问题
这不会发出任何错误。

我想大多数问题都是由于过时的代码造成的,但我不确定。
如果有人可以提供帮助,那就太棒了。

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

if (!message.content.startsWith(PREFIX)) return;
let args = message.content.substring(PREFIX.length).split(" ");


switch(args[0]) {



case 'play':

if(usedCommandRecently4.has(message.author.id)){
message.reply("Your using this command to fast!");
} else{
function play(connection, message){
var server = servers[message.guild.id];

server.dispatcher = connection.play(ytdl(server.queue[0], {filter: "audioonly"}));

server.queue.shift();

message.channel.send("``Music Bot v1.2`` \n Adding song to queue!");

server.dispatcher.on("end", function(){
if(server.queue[0]){
play(connection, message);
}else {
connection.disconnect();
}
})
}

if(!args[1]){
message.channel.send("``Music Bot v1.2`` \n you need to provide a link!!");
return;
}

if(!message.member.voice.channel){
message.channel.send("``Music Bot v1.2`` \n You must be in a voice channel to play music!");
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.voice.channel.join().then(function(connection){

play(connection, message);

})

usedCommandRecently4.add(message.author.id);
setTimeout(() => {
usedCommandRecently4.delete(message.author.id)
}, 10000);
}

break;

case 'skip':

if(usedCommandRecently3.has(message.author.id)){
message.reply("Your using this command to fast!");
} else{
var server = servers[message.guild.id];
if(server.dispatcher) server.dispatcher.end();
message.channel.send("``Music Bot v1.2`` \n Skipping the current song!")

usedCommandRecently3.add(message.author.id);
setTimeout(() => {
usedCommandRecently3.delete(message.author.id)
}, 3000);
}

break;

case 'stop':
var server = servers[message.guild.id];
if(message.guild.voiceConnection){
for(var i = server.queue.length -1; i >=0; i--){
server.queue.splice(i, 1);
}

server.dispatcher.end();
message.channel.send("``Music Bot v1.2`` \n Ending the queue and Leaving the voice channel! \n This bot is in early development! \n if you have any problems with it dm Justice#6770!")
console.log('stopped the queue')
}
}

if(message.guild.connection) message.guild.voiceConnection.disconnect();

})

最佳答案

我用这个顺序解决了队列问题,这个代码的问题是你在队列中添加了一首歌,第一首歌从头开始,我不知道这个小问题如何解决

案例“播放”:

        function play(connection, message){
var server = servers[message.guild.id];

server.dispatcher = connection.play(ytdl(server.queue[0],{filter: "audio"}));



server.dispatcher.on("finish", function(){
server.queue.shift();
if(server.queue[0]){
play(connection, message);
}else {
connection.disconnect();
}
})

}

关于javascript - 修复不和谐音乐机器人队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62187505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com