【发布时间】:2021-11-24 08:52:24
【问题描述】:
我制作了一个仅适用于 URL 的简单音乐机器人,我想做的是检查命令参数中是否有“停止”(已经完成并正在工作),然后停止音乐播放器。问题是当 player.stop() 播放音乐时它不会停止。 这是我的代码:
const ytdl = require('ytdl-core');
module.exports ={
name:'play',
description:'aaaaaaaaaaaam',
async execute(message, args, Discord){
const { joinVoiceChannel, createAudioPlayer, createAudioResource} = require('@discordjs/voice');
const stream = ytdl(args[0], {filter: 'audioonly', quality:'highestaudio', highWaterMark: 1<<25 });
const player = createAudioPlayer();
const resource = createAudioResource(stream);
const {AudioPlayerStatus} = require('@discordjs/voice');
if(ytdl.validateURL(args[0])){
const connection = joinVoiceChannel({
channelId: message.member.voice.channel.id,
guildId: message.guild.id,
adapterCreator: message.guild.voiceAdapterCreator
})
connection.subscribe(player);
player.play(resource);
} else if(args[0] === undefined){
const embed = new Discord.MessageEmbed()
.setColor('#0000FF')
.setTitle('Da me chevvoi, te posso canta na canzone')
message.channel.send({ embeds: [embed] });
}
if (args[0] === 'stop'){
player.on(AudioPlayerStatus.Playing, () => {
player.stop();
});
}
const {generateDependencyReport} = require('@discordjs/voice');
console.log(args[0]);
console.log(generateDependencyReport());
}
}
【问题讨论】:
-
我假设
args[0]应该是用户提供的用于搜索 YouTube 的 URL。但是为什么“停止”也是一个值呢?那不应该也是它自己的命令吗? -
是的,我想这样,但我不知道怎么做。
标签: javascript discord discord.js