首先:是的,我已经在Google,论坛,不和谐的服务器等上进行过研究,但没有一个适合我想做的事情。我是说这句话,所以当我完成3天的研究后,没有人口头上虐待我寻求帮助。
我为风扇服务器制作了一个自定义discord机器人,该机器人由heroku托管,因此在我不在的时候可以保持在线。我想做的是让机器人在有人发出特定命令时从其文件夹中播放mp3文件,但我希望音乐在特定的语音通道中播放。
首先,我尝试将其与图像文件一样对待。例如:
if (message.content == "Play the Funky Tune.")
{
message.reply("Of course, I hope you enjoy!", { files: ["./Music/FunkyTune.mp3"] });
}
但是,这会导致机器人在其中放置音乐文件,尽管您可以单击它并播放它,但在单击另一个频道时,音乐会暂停。我希望它在特定的语音频道中播放歌曲,以便在用户单击另一个频道时继续播放。
对此进行研究时,每个主题总是要求提供YouTube视频链接,它将其转换为音频,但这不是我想要的,因为YouTube视频可能发生任何事情。
任何帮助都将受到感激:)
P.S。 我对使用现成的机器人不感兴趣,我想将此音乐功能集成到我自己的机器人中。
答案 0 :(得分:2)
if (message.content == "Play the Funky Tune.") {
// Checking if the message author is in a voice channel.
if (!message.member.voice.channel) return message.reply("You must be in a voice channel.");
// Checking if the bot is in a voice channel.
if (message.guild.me.voice.channel) return message.reply("I'm already playing.");
// Joining the channel and creating a VoiceConnection.
message.member.voice.channel.join().then(VoiceConnection => {
// Playing the music, and, on finish, disconnecting the bot.
VoiceConnection.play("./Music/FunkyTune.mp3").on("finish", () => VoiceConnection.disconnect());
message.reply("Playing...");
}).catch(e => console.log(e))
};
请注意,您必须运行以下命令才能使其正常工作:
npm install ffmpeg-static
npm install @discordjs/opus