【问题标题】:Discord bot showing incorrect number of servers(showing 0)Discord bot 显示错误的服务器数量(显示 0)
【发布时间】:2021-07-27 16:01:09
【问题描述】:

如果问题是愚蠢的,我是机器人创建的新手,所以很抱歉

机器人在启动 1 个代码时显示不正确的服务器数量(显示 0),但在启动 2 个代码时它正确显示,如何更改 1 个代码以使其正确显示,请帮助

status = cycle( [f' on { len(client.guilds) } servers', '~help'] )
@tasks.loop( seconds = 5 )
async def changeStatus():
    await client.change_presence( activity = discord.Activity( type = discord.ActivityType.playing, name = next(status) ) )
 
@client.event
async def on_ready():
    print( 'bot connected' )
    changeStatus.start()
---------------------------------------------------------------------------------------------------------
@client.event
async def on_ready():
    print( 'bot connected')

    await client.change_presence( activity = discord.Game( f' on { len(client.guilds) } servers | ~help ') )

工作代码,但如果有人在更新方面需要帮助,它不会更新 5 秒,请检查另一个我的问题

async def changeStatus():
    status = cycle( [f' on { len(client.guilds) } servers', '~help'] )
    await client.change_presence( activity = discord.Activity( type = discord.ActivityType.playing, name = next(status) ) )

@client.event
async def on_ready():
    print( 'bot connected' )
    changeStatus.start()

【问题讨论】:

    标签: python discord discord.py bots


    【解决方案1】:

    python 解释器只会运行

    status = cycle( [f' on { len(client.guilds) } servers', '~help'] ) 
    

    一次,因为它被定义为一个全局变量。这意味着len(client.guilds) 将始终是相同的数字。由于解释器会运行 this,因此在调用 on_ready() 之前,this 的值为 0。要解决此问题,请将 status 的声明放入您的 changeStatus() 函数中。

    @tasks.loop( seconds = 5 )
    async def changeStatus():
        status = cycle( [f' on { len(client.guilds) } servers', '~help'] )
        await client.change_presence( activity = discord.Activity( type = discord.ActivityType.playing, name = next(status) ) )
    

    【讨论】:

    • 谢谢,现在显示正确,但不是每 5 秒更改一次
    【解决方案2】:

    你不能这么快改变它。我认为这是针对 TOS 的 API 滥用。尝试做一个更合理的间隔,比如 3 分钟。

    【讨论】:

    • 访问状态的速率限制是每个会话 iirc 每 1 分钟 5 个请求,因此每 12 秒更改一次就足够了
    • 但是当我使用我的第一个代码并替换例如'status1'和'status2'时效果很好,这取决于您何时使用client.guilds?
    猜你喜欢
    • 2018-10-16
    • 2021-01-21
    • 2020-09-16
    • 1970-01-01
    • 2021-06-11
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    相关资源
    最近更新 更多