Python 如何将此事件转换为适当的状态命令,在将其添加到公会时循环更新其状态?不和谐

Python 如何将此事件转换为适当的状态命令,在将其添加到公会时循环更新其状态?不和谐,python,discord.py,Python,Discord.py,我有一个正在使用on_ready的事件,我知道我可能不应该使用on ready事件来更新我想更新的内容,如果它被添加到一个服务器或者一个服务器得到一个加入的用户 所以我的意思是:如果我的机器人被添加到服务器上,我希望它的状态改变,当它被删除时,我希望它的状态改变。如果服务器获得新成员,我还希望它在bots状态下更新membercount。我知道利率限制是一件事,所以我会推迟。我有一个事件,我需要转换为一个正确的命令,但我不知道如何,你能帮我吗?(对于拼写/语法错误,我深表歉意,我写这篇文章的时候

我有一个正在使用on_ready的事件,我知道我可能不应该使用on ready事件来更新我想更新的内容,如果它被添加到一个服务器或者一个服务器得到一个加入的用户

所以我的意思是:如果我的机器人被添加到服务器上,我希望它的状态改变,当它被删除时,我希望它的状态改变。如果服务器获得新成员,我还希望它在bots状态下更新membercount。我知道利率限制是一件事,所以我会推迟。我有一个事件,我需要转换为一个正确的命令,但我不知道如何,你能帮我吗?(对于拼写/语法错误,我深表歉意,我写这篇文章的时候现在是凌晨3点,我真的很想睡觉)

以下是事件(我使用cogs):


我知道这个网站不是专门针对编码问题的,我只是没有其他更好的地方可以问,我知道我需要阅读文档并了解更多,但这就是我在我的机器人中修复/更改的全部内容,然后我可以最终发布它。如果你们中有人能帮我解决这个问题,那将是最好的,提前谢谢。

不要在您的
Bot
Client
中更改
on\u ready
中的状态。基本上,除了print语句之外,不要在\u ready上的
中执行任何操作。有明确的文档记录,可以多次触发该语句

现在,为了回答您的问题,您可以使用一个简单的方法每15秒更新一次您的状态:

from discord.ext.tasks import loop


@loop(count=None, seconds=15)
async def presence_loop():
    await client.wait_until_ready()
    await self.bot.change_presence(
        activity=discord.Activity(
            type=discord.ActivityType.watching,
            name=f"tp!help v.{self.config.version} {len(self.bot.guilds)} Servers and {len(self.bot.users)} Users"))


presence_loop.start()
client.run('token')
在类内:

class ExampleClass(commands.Cog):

    def __init__(self, bot):
        self.bot = bot
        self.presence_loop.start()

    @loop(count=None, seconds=15)
    async def presence_loop(self):
        await self.bot.wait_until_ready()
        await self.bot.change_presence(activity=discord.Activity(type=discord.ActivityType.watching,
                                                                 name=f"tp!help v.{self.config.version} {len(self.bot.guilds)} Servers and {len(self.bot.users)} Users"))

非常感谢,这正是我需要的。你认为你可以编辑它,使其适合齿轮吗?
class ExampleClass(commands.Cog):

    def __init__(self, bot):
        self.bot = bot
        self.presence_loop.start()

    @loop(count=None, seconds=15)
    async def presence_loop(self):
        await self.bot.wait_until_ready()
        await self.bot.change_presence(activity=discord.Activity(type=discord.ActivityType.watching,
                                                                 name=f"tp!help v.{self.config.version} {len(self.bot.guilds)} Servers and {len(self.bot.users)} Users"))