I want the bot to remove role after member stops playing the game.
When member's not playing a game, there is no game = [i for i in after.activities if str(i.type) == "ActivityType.playing"] anymore.
so when trying to remove role it can't find game[0].name I think.
How do i fix this?
@client.event
async def on_member_update(before, after):
game = [i for i in after.activities if str(i.type) == "ActivityType.playing"]
if game:
game_name = game[0].name
role = discord.utils.get(after.guild.roles, name=game_name)
if role == None:
await after.guild.create_role(name=game_name, hoist=True, mentionable=True)
await after.add_roles(role)
elif before.activities and not game:
game_name = game[0].name
role = discord.utils.get(after.guild.roles, name=game_name)
if role in after.roles:
await after.remove_roles(role)
File "C:\Users\BUGA\Documents\VSCODE\Python Projects\activity role\main.py", line 35, in on_member_update game_name = game[0].name IndexError: list index out of range