我正在处理名为 on_member_join 的事件,我想给新成员一个角色,每个公会的角色都不一样,所以我需要公会 ID。我有一个 json 文件,其中有我的公会 ID 和“自动角色”的角色 ID。我里面有错误role = roles[str(member.guild.id)]
错误是:await member.add_roles( role ) 文件“C:\Users\arman\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\member.py”,第 641 行,在 add_roles 等待req(guild_id, user_id, role.id, reason=reason) AttributeError: 'str' 对象没有属性 'id'
我的 JSON 文件例如:
{ "724249401962397767": "724868027241463859" }
#Auto role
@commands.Cog.listener()
async def on_member_join( self, member ):
emb = discord.Embed( title = '**Here is new member**', colour = discord.Color.green() )
channel = self.bot.get_channel( config.CHANNEL_ID )
with open('roles.json', 'r') as f:
roles = json.load(f)
role = roles[str(member.guild.id)]
await member.add_roles( role )
emb.set_author( name = self.bot.user )
emb.add_field( name = "**Say Hello to**", value = '**{}**'.format( member.mention ), inline=False )
emb.set_thumbnail( url = self.bot.user.avatar_url )
emb.add_field( name = "**Roles is**", value = '**{}**'.format( member.roles ).replace( '[' , '' ).replace( ']' , '' ).replace( '<' , '' ).replace( '>' , '' ).replace( "'" , '' ).replace( 'Role' , '' ).replace( 'id=' , '' ).replace( 'name=' , '' ).replace( '1' , '' ).replace( '2' , '' ).replace( '3' , '' ).replace( '4' , '' ).replace( '5' , '' ).replace( '6' , '' ).replace( '7' , '' ).replace( '8' , '' ).replace( '9' , '' ).replace( '0' , '' ).replace('"', '').replace("ud", ''), inline=False )
await channel.send( embed = emb)
忽然笑
桃花长相依
相关分类