第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

不和諧 如何為每個(gè)公會(huì)添加自定義角色

不和諧 如何為每個(gè)公會(huì)添加自定義角色

楊魅力 2023-02-15 16:40:43
我正在處理名為 on_member_join 的事件,我想給新成員一個(gè)角色,每個(gè)公會(huì)的角色都不一樣,所以我需要公會(huì) ID。我有一個(gè) json 文件,其中有我的公會(huì) ID 和“自動(dòng)角色”的角色 ID。我里面有錯(cuò)誤role = roles[str(member.guild.id)]錯(cuò)誤是: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' 對(duì)象沒有屬性 '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)
查看完整描述

2 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

您的on_member_join方法是用一個(gè)discord.Member名為 的對(duì)象調(diào)用的member。

member對(duì)象有一個(gè)guild屬性,請(qǐng)參閱https://discordpy.readthedocs.io/en/latest/api.html?highlight=member#discord.Member.guild

guild對(duì)象來自類discord.Guild
該對(duì)象有一個(gè)名為Integer 的guild屬性,請(qǐng)參閱https://discordpy.readthedocs.io/en/latest/api.html?highlight=member#discord.Guild.idid

所以要回答這個(gè)問題:如何獲得你的公會(huì)ID

gid = member.guild.id

您獲取discord.Role對(duì)象的邏輯是錯(cuò)誤的。此外,您不需要公會(huì) ID 即可獲得角色。你需要公會(huì)對(duì)象。

roles = member.guild.roles

https://discordpy.readthedocs.io/en/latest/api.html?highlight=member#discord.Guild.roles
這些都是公會(huì)的角色。

role = member.guild.get_role(123456)

https://discordpy.readthedocs.io/en/latest/api.html?highlight=member#discord.Guild.get_role
這會(huì)為您提供具有給定角色 ID 的角色。

嘗試閱讀并應(yīng)用文檔。盲目編程、遵循教程或查看其他人的工作不會(huì)讓你走得太遠(yuǎn)。很高興讓項(xiàng)目運(yùn)行,但最后文檔將包含您需要的所有知識(shí)。


查看完整回答
反對(duì) 回復(fù) 2023-02-15
?
桃花長相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

#Auto role

@commands.Cog.listener()

async def on_member_join( self, member ):

    emb = discord.Embed( title = '**Here is new member**', colour = discord.Color.green() )

    with open('messagech.json', 'r') as f:

        messagechs = json.load(f)


    messagech = messagechs[str(member.guild.id)]


    channel = self.bot.get_channel( int(messagech) )


    with open('roles.json', 'r') as f:

        roles = json.load(f)


    role = roles[str(member.guild.id)]


    role = int(role)


    role = discord.utils.get(member.guild.roles, id = role )


    await member.add_roles( role  )


    with open('roles.json', 'w') as f:

        json.dump(roles, f, indent=4)


    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)


查看完整回答
反對(duì) 回復(fù) 2023-02-15
  • 2 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)