歌曲结束时,Discord 音乐机器人不会离开服务器

Posted

技术标签:

【中文标题】歌曲结束时,Discord 音乐机器人不会离开服务器【英文标题】:Discord music bot doesn't leave the server when the song ends 【发布时间】:2020-11-22 00:08:11 【问题描述】:

我正在开发一个名为 Amadeus 的不和谐机器人。 Amadeus 在收到给定命令时会播放音乐……嗯……他会的。现在,当我还在为他工作时,他只播放一首歌。虽然他连接到语音频道并完美地播放他的歌曲 - 一旦他的歌曲结束,他就不会离开语音频道。出于某种原因,我猜它永远不会检测到歌曲结束?任何帮助表示赞赏

const connection = message.member.voice.channel.name;
const channel = message.member.voice.channel;
message.channel.send("Now playing Scythe OST in the " + connection + " channel.");
channel.join().then(connection => 
    const dispatcher = connection.play('./Scythe Digital Edition - Soundtrack/01 Europa 1920.mp3');
    dispatcher.on("end", end => 
      channel.leave()
    );
  )
  .catch(console.error);

【问题讨论】:

你试过dispatcher.on("finish", () => 吗? 【参考方案1】:

正如@Tenclea 所建议的,如果您查看Discord.js Documentation > Topics,您会发现使用了dispatcher.on("finish", () => )

const channel = message.member.voice.channel;
message.channel.send(`Now playing Scythe OST in the $channel.name channel.`);
channel.join().then(connection => 
    const dispatcher = connection.play("./Scythe Digital Edition - Soundtrack/01 Europa 1920.mp3");
    dispatcher.on("finish", () => channel.leave());
).catch(e => console.log(e))

dispatcher.on("end", () => ) 将适用于 Discord JS 版本 11。

【讨论】:

男人!今天我已经厌倦了使用旧的 Discord 11 代码编写示例和教程;-;

以上是关于歌曲结束时,Discord 音乐机器人不会离开服务器的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 音乐机器人加入然后离开

Discord 音乐机器人 - 队列 (discord.py)

Discord 机器人不离开语音频道

Discord.js v13,@discordjs/voice 播放音乐命令

如何使用 discord.py 在音乐机器人上获得最佳音频质量?

C# .NET Core Discord 音乐机器人