Discord.py tracking retaliation role



  • Bot has to check the role of the responder, but somehow he only trigs his messages and works normally, but when a living man pushes the reaction, he makes such a mistake:

    Ignoring exception in on_raw_reaction_add
    Traceback (most recent call last):
      File "C:\Users\User\PycharmProjects\pybot\venv\lib\site-packages\discord\client.py", line 343, in _run_event
        await coro(*args, **kwargs)
      File "C:\Users\User\PycharmProjects\pybot\main.py", line 38, in on_raw_reaction_add
        add_role = discord.utils.get(member.guild.roles, id=906203003479015484)
    AttributeError: 'NoneType' object has no attribute 'guild'
    

    How can you fix that? Code:

    @bot.event
    async def on_raw_reaction_add(payload):
        message_id = payload.message_id
        channel_id = payload.channel_id
        channel = bot.get_channel(channel_id)
        message = await channel.fetch_message(message_id)
        user_id = payload.user_id
        member = channel.guild.get_member(user_id)
        add_role = discord.utils.get(member.guild.roles, id=906203003479015484)
        for role in member.roles:
            if role.name != 'admin':
                await member.add_roles(add_role)
    


  • member = discord.utils.get(channel.guild.members, id=user_id)
    add_role = discord.utils.get(member.guild.roles, id=906203003479015484)
    for role in member.roles:
        if role.name != 'admin':
            await member.add_roles(add_role)
    


Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2