【问题标题】:Discord.py Adding role by commandDiscord.py 通过命令添加角色
【发布时间】:2020-09-26 10:30:33
【问题描述】:

谁能帮帮我!这里有什么问题。谢谢!

@client.command()
@commands.has_permissions( manage_roles = True )

    async def addrole( ctx, member: discord.Member = None, role: discord.Role = None, guild: discord.Guild = None ):
    guild = ctx.guild if not guild else guild
    emb = discord.Embed( title = 'Add role', colour = discord.Color.green())
    await ctx.channel.purge( limit = 1 )

    await client.add_roles( member, role )

    emb.set_author( name = guild, icon_url = guild.icon_url )
    emb.set_footer( text = 'Was added by {}'.format( ctx.author.name ), icon_url = ctx.author.avatar_url )
    emb.set_thumbnail( url = member.avatar_url )
    emb.add_field( name = 'Role added to user', value = '{}'.format( member.mention ) )
    emb.add_field( name = 'Added role is', value = '{}'.format( role ) )

    await ctx.send( embed = emb )

我尝试自己编写代码并尝试观看教程,但没有一个代码不起作用。

【问题讨论】:

标签: python bots discord discord.py


【解决方案1】:

看起来您可能正在使用一些旧文档 (v0.16.x) 来添加角色。我建议查看更新的教程。

在重写 (v1.x) 中,add_roles() 的语法已更改,现在是 discord.Member 对象中的一个方法:

@client.command()
async def addrole(ctx, member: discord.Member, role: discord.Role):
    await member.add_roles(role)
    await ctx.send(f"Successfully gave {role.name} to {member}!")

参考资料:

【讨论】:

    【解决方案2】:

    我编辑了它并得到了这个!

    @client.command()
    @commands.has_permissions( manage_roles = True )
    
    async def addrole( ctx, member: discord.Member = None, role: discord.Role = None, 
        guild: discord.Guild = None ):
        guild = ctx.guild if not guild else guild
        emb = discord.Embed( title = 'Add role', colour = discord.Color.green())
        await ctx.channel.purge( limit = 1 )
    
        await member.add_roles( role )
    
        emb.set_author( name = guild, icon_url = guild.icon_url )
        emb.set_footer( text = 'Was added by {}'.format( ctx.author.name ), icon_url = ctx.author.avatar_url )
        emb.set_thumbnail( url = member.avatar_url )
        emb.add_field( name = 'Role added to user', value = '{}'.format( member.mention ) )
        emb.add_field( name = 'Added role is', value = '{}'.format( role ) )
    
    await ctx.send( embed = emb )
    

    【讨论】:

      猜你喜欢
      • 2021-07-06
      • 2021-06-05
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      相关资源
      最近更新 更多