首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果处于某个语音通道中,需要帮助断开成员连接

如果处于某个语音通道中,需要帮助断开成员连接
EN

Stack Overflow用户
提问于 2020-06-06 09:48:45
回答 1查看 370关注 0票数 0

因此,在不一致的情况下,我创建了一个AFK语音通道,并将服务器设置为如果一个成员被AFK了15分钟,它会将他们发送到AFK语音通道。但是我想让我的机器人直接把他们从频道上断开。

我已经想到了两种方法,使用间隔来每秒检查语音通道,或者如果VoiceStateUpdate是要移动到语音通道的成员,则添加一个侦听器。我试图限制主文件中的监听器数量,因此在client.once('ready', () => { })中,我使用一个间隔来每秒检查语音通道。

代码语言:javascript
复制
setInterval(function () {
      const VoiceChannel = "718634068543012924"
  if(VoiceChannel.members.length > 0) {
    const now = new Date()
    const time = (`${now.getDay()}, ${now.getDate()}/${now.getMonth()}/${now.getFullYear()} ${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`)
      member.voice.kick("AFK");
      console.log(`AFK Member kicked.`)
  }
  else {
      console.log("No one there bud.")
  }
}, 1000)

问题出在members.length上,它伴随着错误

代码语言:javascript
复制
TypeError: Cannot read property 'length' of undefined
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7)

我已经尝试了.size,但仍然不起作用,我真的不知道还可以尝试什么,或者我做错了什么,我已经检查了discord.js.org文档,但我仍然感到困惑。因此,如果有任何方法可以做到这一点,而不添加另一个侦听器,您可以帮助我,这将是非常感谢。如果不是,我会把它吸收起来,然后添加一个。谢谢。

爱马仕

EN

回答 1

Stack Overflow用户

发布于 2020-06-06 10:23:48

在检查if语句中的条件之前,您将VoiceChannel定义为字符串,从而导致VoiceChannels.members属性未定义。

使用Client类的实例正确定义包含语音通道的varible有望解决这个问题:

代码语言:javascript
复制
setInterval(function () {
    const voiceChannel = <Client>.channels.cache.get("718634068543012924")
    if(voiceChannel.members.length > 0) {
        const now = new Date()
        const time = (`${now.getDay()}, ${now.getDate()}/${now.getMonth()}/${now.getFullYear()} ${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`)
        member.voice.kick("AFK");
        console.log(`AFK Member kicked.`)
    } else {
        console.log("No one there bud.")
    }
}, 1000)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62226389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档