Я хочу установить причину и статус по умолчанию

#python #python-3.x #discord #discord.py #discord.py-rewrite

#python #python-3.x #Discord #discord.py

Вопрос:

Я хочу установить статус по умолчанию, когда я перезапускаю своего бота, мой статус активности сбрасывается, я должен снова использовать свою команду ‘-game’, чтобы установить статус. Моя команда изменения статуса:

 @client.command()
@commands.is_owner()
async def game(ctx,*, game):
    await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="{}".format(game)))
    await ctx.send("Status set to: **{}**".format(game))
  

Ответ №1:

Вы можете сделать это внутри on_ready события. Вот пример:

 @client.event
async def on_ready():
    await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name='Default Activity'))
  

Затем вы можете изменить его своей game командой, когда захотите.

Ответ №2:

Я настоятельно не рекомендую использовать change_presence в on_ready в вашем боте.

Discord имеет высокую вероятность полностью отключить вас во время событий READY или GUILD_CREATE (код закрытия 1006), и вы ничего не можете сделать, чтобы предотвратить это.

Вместо этого установите kwargs activity и status в конструкторе этих классов. Документация