【问题标题】:Get bot's status discord.py获取机器人的状态 discord.py
【发布时间】:2019-06-15 16:43:11
【问题描述】:

我想在机器人更改为执行操作时获取它的状态(现在它只是在联机时打印。)。

不幸的是我的方法不起作用:

@bot.event
async def on_member_update(usr_before, usr_after):
    if bot.user.status == discord.Status.online:
        print("becomes online!")

我认为问题在于状态不是User 属性,而是Member 属性。如何将我的机器人“转换”为Member

【问题讨论】:

    标签: python bots discord discord.py status


    【解决方案1】:

    我有这样的。

    @client.event
    async def on_ready():
    print("Bot Online!")
    print("Name: {}".format(client.user.name))
    print("ID: {}".format(client.user.id))
    await client.change_presence(game=discord.Game(name="d!help for help"))
    

    试试这个:

    member = None
    for server in bot.servers:
        member = server.get_member(bot.user.id)
        break
    
    if member.status == discord.Status.online:
    

    或者这个:

    if [s for s in bot.servers][0].get_member(bot.user.id).status == discord.Status.online:
    

    【讨论】:

    • 其实,我已经有一个改变存在的命令了。同时,我想做的是,当我的机器人具有特定状态时,有一个事件会做某事(这里是控制台上的某事)。
    • bot.servers(0).get_member(bot.user.id) 应该为您提供机器人的成员对象。只需获取机器人服务器列表中的第一台服务器并使用函数获取成员对象。我个人不知道获取机器人成员对象的更好方法。如果您愿意,请尝试一下。
    • 我收到了这个错误:Traceback (most recent call last): File "C:\Users\Théotime\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 307, in _run_event yield from getattr(self, event)(*args, **kwargs) File "D:\Bots\Discord\@Testing bot#2592\launch bot.py", line 28, in on_member_update if bot.servers(0).get_member(bot.user.id).status == discord.Status.online: TypeError: 'dict_values' object is not callable
    • bot.servers.next().get_member(bot.user.id)你也可以试试这个
    • 解释器说dict对象next没有属性
    【解决方案2】:

    好吧,实际上,有一个 discord.Server 属性 (discord.Server.me) 可以做到这一点 x)

    https://discordpy.readthedocs.io/en/latest/api.html#discord.Server.me

    还没有测试过

    【讨论】:

      猜你喜欢
      • 2019-05-26
      • 2022-08-05
      • 2020-12-02
      • 2020-10-26
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      相关资源
      最近更新 更多