Игровой статус дискорд бота
Есть код бота в дискорде, который каждые 5 секунд меняет цвет определенной роли (нашел чужой код). Пытался добавить в этот код игровой статус бота ( Играет в ... ), но я не понимаю что нужно добавить, чтобы обе функции работали. Плюсом сама радужная роль работает через раз, можно ли как-то оптимизировать?
from discord import utils
import discord
import asyncio
import random
import os
token = os.environ.get('BOT_TOKEN')
serverid = id
rainbowrolename = "role"
delay = 5
client = discord.Client()
colours = [discord.Color.dark_orange(),discord.Color.orange(),discord.Color.dark_gold(),discord.Color.gold(),discord.Color.dark_magenta(),discord.Color.magenta(),discord.Color.red(),discord.Color.dark_red(),discord.Color.blue(),discord.Color.dark_blue(),discord.Color.teal(),discord.Color.dark_teal(),discord.Color.green(),discord.Color.dark_green(),discord.Color.purple(),discord.Color.dark_purple()]
async def rainbowrole(role):
for role in client.get_guild(serverid).roles:
if str(role) == str(rainbowrolename):
print("detected role")
while not client.is_closed():
try:
await role.edit(color=random.choice(colours))
except Exception:
print("can't edit role, make sure the bot role is above the rainbow role and that is have the perms to edit roles")
pass
await asyncio.sleep(delay)
print('role with the name "' + rainbowrolename +'" not found')
print("creating the role...")
try:
await client.get_guild(serverid).create_role(reason="Created rainbow role", name=rainbowrolename)
print("role created!")
await asyncio.sleep(2)
client.loop.create_task(rainbowrole(rainbowrolename))
except Exception as e:
print("couldn't create the role. Make sure the bot have the perms to edit roles")
print(e)
pass
await asyncio.sleep(10)
client.loop.create_task(rainbowrole(rainbowrolename))
# Игровой статус
async def game():
await bot.change_presence(activity = discord.Game('Название игры'))
@client.event
async def on_ready():
client.loop.create_task(rainbowrole(rainbowrolename))
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('Ready.')
print('------------')
bot.run(str(token))
client.run(token)