Discord.js 机器人无法离开语音频道

Posted

技术标签:

【中文标题】Discord.js 机器人无法离开语音频道【英文标题】:Discord.js bot unable to leave voice channel 【发布时间】:2020-07-17 22:14:50 【问题描述】:

我正在尝试制作一个播放音频文件的不和谐机器人。现在,它加入语音频道并播放音频文件,但之后拒绝离开。我的代码如下。谁能提出一些修复建议,以便我的机器人离开语音频道?

  var voiceChannel = client.channels.cache.get("693280991812517952");
  voiceChannel.join().then(connection =>
    const dispatcher = connection.play('./00.mp3');
    dispatcher.on('end', () => voiceChannel.leave());
  ).catch(err => console.log(err));

【问题讨论】:

【参考方案1】:

您需要使用finish 事件而不是end 事件。

所以你的解决方案是: dispatcher.on('finish', () => voiceChannel.leave());

【讨论】:

谢谢,解决了!一般来说,您知道我在哪里可以找到这些活动吗? discord.js api 不包含 StreamDispatcher 的完成事件。 是的,discord.js 没有记录从标准 Node.js 库继承的东西。它继承自 Node.js 的 WriteableStream:nodejs.org/api/stream.html#stream_event_finish

以上是关于Discord.js 机器人无法离开语音频道的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 在文本频道中加入/离开语音频道通知

加入机器人 discord.js 的语音频道后如何忽略相同的命令

Discord Bot 使用 Discord.js 在 X 秒后离开 VC

从 twitch bot 调用 Discord.js 音乐问题找到语音频道

使用 Discord.js 使用 Discord Bot 将语音频道中的所有人静音

从服务器中删除所有频道(语音和文本) - discord.js