Задать вопрос
@theinlao

Статус бота discord.py?

Нужно сделать так, чтобы бот раз в 15сек менял со стримит на играет и тд
  • Вопрос задан
  • 12233 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@EHEVIX
from asyncio import sleep
@bot.event
async def on_ready():
     while True:
          await bot.change_presence(status=discord.Status.online, activity=discord.Game("Текст игры"))
          await sleep(15)
          await bot.change_presence(status=discord.Status.online,activity=discord.Streaming("Текст стрима"))

Отступы могут быть не правильными
Также где bot там ставите как у вас названа переменная отвечающая за клиент бота
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@DierLL
Тоже пытался и делал активности, никак не мог понять. Помог друг, он очень много копался в Discord.py. Показываю:

from asyncio import sleep #не забываем
@bot.event
async def on_ready():
	guilds = len(bot.guilds)
	info = "!"
	print("[{}] Бот готов к работе.".format(info)) #в командную строку идёт инфа о запуске
	while True:
		await bot.change_presence(status = discord.Status.dnd, activity = discord.Activity(name = f'r!help', type = discord.ActivityType.playing)) #Идёт инфа о команде помощи (префикс изменить)
		await asyncio.sleep(15)
		await bot.change_presence(status = discord.Status.dnd, activity = discord.Activity(name = f'за {len(bot.guilds)} серверами', type = discord.ActivityType.watching)) #Инфа о количестве серверов, на котором находится бот.
		await asyncio.sleep(15)
		members = 0
		for guild in bot.guilds:
			for member in guild.members:
				members += 1
		await bot.change_presence(status = discord.Status.idle, activity = discord.Activity(name = f'за {members} участниками', type = discord.ActivityType.watching)) #Общее количество участников, за которыми следит бот (Находятся на серверах)
		await asyncio.sleep(15)

Пытался делать и с помощью советов людей из других ответов - бот не запускался вообще. Надеюсь помог)
Ответ написан
@AdrianMunokami
ты забыл в конце цикла поставить await sleep(15)
from asyncio import sleep
@bot.event
async def on_ready():
     while True:
          await bot.change_presence(status=discord.Status.online, activity=discord.Game("Текст игры"))
          await sleep(15)
          await bot.change_presence(status=discord.Status.online,activity=discord.Streaming("Текст стрима"))
          await sleep(15)

из за это у многих могло просто заново начинаться первая функция await
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы