Как перевести бота в статус "Не в сети" с помощью команды?

Я хочу сделать так, чтобы при такой команде !офлайн у него ставился статус "Не в сети", но чтобы бот продолжал работать. Тоже самое с !онлайн, !неактивен.


Ответы (1 шт):

Автор решения: ПИТОНИСТ версия-3-8

Попробуйте написать команду

await bot.change_presence(status = discord.Status.invisible)   

invisible (это и есть статус) можно заменить на idle (режим "простоя")

Также в функцию можно добавить аргумент activity, например:

await bot.change_presence(status = discord.Status.idle, activity=discord.Game(name='Minecraft'))

После её запуска в статусе бота будет написано

Неактивен

Играет в Minecraft

Вот ваша команда:

@bot.command()
async def оффлайн(ctx):
    await bot.change_presence(status = discord.Status.invisible)   

@bot.command()
async def онлайн(ctx):
    await bot.change_presence(status = discord.Status.online)   
@bot.command()
async def играет(ctx, arg):
    await bot.change_presence(status = discord.Status.invisible, activity=discord.Game(name=arg)))   

Чтобы сделать "Играет", нужно ввести играет и название игры. Например: играет Minecraft

→ Ссылка