首页 > 解决方案 > 检查用户是否在不和谐的 vc 中进行流式传输

问题描述

我希望我的机器人使用 discord 的Go Live!语音频道功能来检测是否有人正在流式传输到频道。

然后只让人们连接到等候室,以避免人们发送垃圾邮件并干扰流。唯一的问题是文档显示您可以检查他们是否在 twitch 或 youtube 等上进行流式传输。如何使用我的机器人来检测是否有人流式传输到不和谐频道?

我试过的唯一代码是:

@client.event
async def on_member_update(before, after):
  print(before)
  print(after)

但我根本没有得到任何输出,甚至没有错误消息。

标签: pythondiscorddiscord.py

解决方案


您可以使用实例的self_stream属性VoiceState来检查用户当前是否正在流式传输到语音通道。

当成员停止或开始流式传输时标记的示例:

@client.event
async def on_voice_state_update(member, prev, cur):
    if prev.channel and cur.channel:  # If a user is connected before and after the update
        if prev.self_stream != cur.self_stream:
            # cur.self_stream will return True whether they're currently streaming
            print("User's self-stream updated!")

像往常一样,您将能够通过以下属性获取他们当前的频道等VoiceState

cur.channel  # etc.

参考:


推荐阅读