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

如何使discord机器人仅在用户加入语音频道并在5分钟前离开语音频道时通知我

汝开畅
2023-03-14
@client.event
async def on_voice_state_update(member, before, after):
    # This function is called when not only member join to the voice channel,
    # but also member changed their status to mute.
    # So, it is necessary to catch only events that joining channel.
    if before.channel != after.channel:
        if after.channel is not None and after.channel.id == int(VOICE_CHANNEL_ID1):
            _name = member.nick if member.nick else member.name
            message = {
                "message": "\n" + _name + " Join The Livestream Channel"
            }
            requests.post(LINE_NOTIFY_API_URL, headers=HEADERS, data=message)
    if before.channel != after.channel:
        if after.channel is not None and after.channel.id == int(VOICE_CHANNEL_ID2):
            _name = member.nick if member.nick else member.name
            message = {
                "message": "\n" + _name + " Join The Nongskuy Channel"
            }
            requests.post(LINE_NOTIFY_API_URL, headers=HEADERS, data=message)

client.run(DISCORD_BOT_ACCESS_TOKEN)

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

共有1个答案

东门胤
2023-03-14

似乎您本质上想要检查用户的每个语音频道离开/加入之间是否已经过去了5分钟或更多分钟。您可以使用datetime模块来获取用户加入和离开频道的时间。如何在Python中获取当前时间。获取时间后,您可以像这样获取时间分钟:

>>> now = datetime.now()
>>> print(now)
2021-11-23 14:05:31.787939
>>> print(now.minute)
5

所以你现在就可以存储。在另一个变量中输入minute,稍后将其用于比较。

 类似资料:
  • 我为机器人制作了加入语音频道的代码, 当任何用户键入“离开”时,我希望机器人离开它所在的服务器。我该怎么做?

  • 我正在开发一个播放音乐的discord机器人。我已经设法让机器人离开通道,但服务器中的任何人都可以断开它。 我试图添加一个if语句,该语句要求命令作者的语音通道连接等于该帮会中机器人的语音通道连接。 这返回: 我在留档上找不到任何定义机器人连接到哪个公会的语音频道的东西。

  • 这是很新的。我一直在阅读readthedocs API参考资料以了解不和谐。这对我来说没什么意义。到目前为止我有 我们的目标是让机器人加入带有的用户加入的语音频道,但我在让机器人加入频道时遇到了麻烦。

  • 我只是想做一个简单的方法,让我的不和谐机器人加入一个频道。我已经看了多个线程,其中一些已经过时,因为它们是在discord.py迁移到v1.0之前。我已经使用type()和dir()来检查通道是什么类型,并查看它有什么方法。我将其与discord.py的API进行了比较,我发现一个问题是dir()创建了一个名为的字段,但是API显示对象有一个名为方法。感谢所有的帮助!:)

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

  • 我正在做一个简单的不和谐机器人,node.js.我让它运行并响应,但我不能召唤它到语音频道这是我使用的代码 它总是转到“加入语音频道”消息,即使我在语音频道。