You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法用列表验证Twitch机器人Message.author是否为Moderator,求助

问题分析与解决步骤

代码中的核心错误

  1. 错误引用类属性而非当前消息的作者:你直接调用twitchio.Message.author是在引用Message类的属性,并非触发命令的实际用户对象,应该使用上下文ctx里的ctx.author来获取当前执行命令的用户。
  2. 错误的比较逻辑:Modo是字符串列表,而author是Twitch用户对象,不能直接将对象与列表做相等判断,需要提取用户的用户名(name属性),再判断是否在列表中。

修正后的代码

@commands.command()
async def off(self, ctx: commands.Context):
    Modo = ["Lilkoroo"]
    print(Modo)
    # 提取当前用户的用户名,判断是否在管理员列表中
    if ctx.author.name in Modo:
        print("a")
        # 此处可添加管理员专属的执行逻辑

额外优化建议

  • 若管理员列表需要复用,建议将Modo定义为类属性或全局变量,避免每次调用命令都重新创建列表。
  • Twitch官方提供了更严谨的权限验证方式,可直接通过用户对象的is_mod属性判断是否为频道管理员,无需手动维护列表:
@commands.command()
async def off(self, ctx: commands.Context):
    # 直接验证当前用户是否为频道 moderator
    if ctx.author.is_mod:
        print("该用户是管理员")
        # 执行后续逻辑

内容的提问来源于stack exchange,提问作者Lilkoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 03:24:21