如何使用同一个装饰器制作2个on_成员工作事件?

2024-04-30 01:06:05 发布

您现在位置:Python中文网/ 问答频道 /正文

@client.event
async def on_member_join(member):
    global welcome_channel_dict
    global autoroles
    channel_id = welcome_channel_dict[str(member.guild.id)]
    embed=discord.Embed(colour=discord.Colour.green())    
    embed=discord.Embed(title="<:memberjoined:778987095837769759> Member Joined", color=0x2ECC71, description=f'{member.mention} joined **{member.guild}**! Enjoy your stay!  :tada:')
    embed.set_thumbnail(url=member.avatar_url)    
    await client.get_channel(channel_id).send(embed=embed)
    
    role = discord.utils.get(member.guild.roles, id=autoroles[str(member.guild.id)]) 

    await member.add_roles(role)

我想要达到的目标:现在autorole只在人们启用欢迎消息时才起作用。我希望它能单独工作


Tags: clientidurlchannelembedawaitglobaldict
1条回答
网友
1楼 · 发布于 2024-04-30 01:06:05

您的客户端应为Bot

from discord.ext.commands import Bot
client = Bot(command_prefix="!")

以后的代码

async def on_member_join(member):
    #do_some_stuff

client.add_listener(on_member_join)

async def on_member_join(member):
    #do_some_more_stuff

client.add_listener(on_member_join)

相关问题 更多 >