当前位置: 首页 > 知识库问答 >
问题:

如果通道中没有人超过5分钟,如何让我的机器人离开语音通道

尉迟卓
2023-03-14

所以最近我一直在为不和谐制作音乐机器人,但如果没有人在语音频道中超过5分钟,我想让我的机器人离开频道。目前,我的机器人仅通过停止命令断开连接

    
    if (!queue) return message.reply("There is nothing playing.").catch(console.error);
    if (!canModifyQueue(message.member)) return;

    queue.songs = [];
    queue.connection.dispatcher.end();
    queue.textChannel.send(`${message.author} ⏹ stopped the music!`).catch(console.error);
  }
};

有人能帮我吗?我将不胜感激。

共有1个答案

胡光霁
2023-03-14

您可以使用voiceStateUpdate事件,该事件在有人加入或离开语音频道(除其他外)时发出。

client.on('voiceStateUpdate', (oldState, newState) => {

  // if nobody left the channel in question, return.
  if (oldState.channelID !==  oldState.guild.me.voice.channelID || newState.channel)
    return;

  // otherwise, check how many people are in the channel now
  if (!oldState.channel.members.size - 1) 
    setTimeout(() => { // if 1 (you), wait five minutes
      if (!oldState.channel.members.size - 1) // if there's still 1 member, 
         oldState.channel.leave(); // leave
     }, 300000); // (5 min in ms)
});
 类似资料:
  • 我为机器人制作了加入语音频道的代码, 当任何用户键入“离开”时,我希望机器人离开它所在的服务器。我该怎么做?

  • 我需要帮助,让我的discord机器人通过Python API的事件离开语音通道。我已经创建了一个事件,使我的机器人加入一个语音频道,如果在5秒后只有一个人出现在该频道,这部分工作。然后,如果另一个人加入或离开,我需要我的机器人离开频道。我一直想不出如何让它离开。任何帮助都将不胜感激!下面是我的方法现在的样子,需要“离开语音频道”评论的帮助:

  • 我有一个问题,我正在使用discord.js播放音乐,但当我发送命令$stop时,我的bot没有离开语音通道,请帮助!

  • 所以我尝试制作一个机器人,当有人加入我的discord服务器的语音通道时,它可以通知我的线路组。问题是,我的朋友经常通过反复离开和加入语音频道来玩我的机器人,如果有人加入语音频道,我的机器人会在我的通话组中发送垃圾邮件。所以,如果用户已经离开语音频道5分钟并再次加入语音频道,我需要帮助使我的机器人只通知我的线路组

  • 我正在尝试让我的discord机器人连接到一个语音频道,目前如下所示: 基本上,当他们发送消息时,我希望它加入消息作者的语音频道“-skip”,然后我的机器人加入,在聊天中说-p scotland forever,然后离开。我收到一条错误消息,说“频道”未定义或“连接”未定义,我尝试了几种不同的方法,我想我只是没有导入插件或其他东西,这可能是我的问题,但我知道应该使用什么插件。任何帮助都将不胜感激

  • 这是我命令的代码部分!虽然只有这一部分我不能很好地理解!我正试图让机器人在队列结束后离开! 它说和工作只是让机器人离开语音通道是我无法解决的问题!我尝试了以下方法: 编辑: