How to make give role on_message in discord.py?

馋奶兔 提交于 2021-01-29 07:21:05

问题


I want the bot to give role to users if they mentions three people in a specific channel , I want to do this with 2 channels and role for both channels are different, code:

@client.event
async def on_message(message):
    if message.channel.id ==  724969989777522778:
        try:
            if len(message.mentions) >= 3:
                await message.add_reaction(emoji="<a:tick:748476262640779276>")
                role = discord.utils.get(message.guild.roles, name="CUSTOM 3pm")
                user = message.author
                await user.add_roles(role)
                #await.message.add_reaction(emoji="<a:zw40:738102925339000873>")
            else:
                return
        except:
            return
    if message.channel.id == 724970270347100203:
        try:
            if len(message.mentions) >= 3:
                await message.add_reaction(emoji="<a:tick:748476262640779276>")
                role = discord.utils.get(message.guild.roles, name="CUSTOM 4pm")
                user = message.author
                await user.add_roles(role)
                #await.message.add_reaction(emoji="<a:zw40:738102925339000873>")
        except:
            return

    await client.process_commands(message)

This doesn't give any error also It doesn't work. I can't find any error.


回答1:


Your error i think is with the emoji itself make sure it is in the guild i edited it a bit.

@bot.event
async def on_message(message):
    if message.channel.id == 724969989777522778 or message.channel.id == 724970270347100203:

        if len(message.mentions) >= 3:
            role_name = "CUSTOM 3pm" if message.channel.id == 724969989777522778 else "CUSTOM 4pm"
            await message.add_reaction(emoji='✅')
            role = discord.utils.get(message.guild.roles, name=role_name)
            user = message.author
            try:
                await user.add_roles(role)
            except:
                print('Already have the role')

    await bot.process_commands(message)


来源:https://stackoverflow.com/questions/63683248/how-to-make-give-role-on-message-in-discord-py

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!