You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord机器人报错:'Member'对象无'server'属性,求解决

Discord机器人Role命令AttributeError错误原因及修复

错误核心原因

你遇到的AttributeError: 'Member' object has no attribute 'server',是因为Discord.py v1.0版本后,官方将"server"相关的API命名统一改为了"guild",Member对象不再拥有server属性,需要替换为guild属性。

代码中的其他问题及修复方案

除了上述核心错误,你的代码还有几处问题需要修正:

  • discord.utils.get用法错误:当前写法是把字符串rolerequest直接和角色列表比对,应该通过角色名称获取对应的角色对象
  • 未定义role变量:执行add_roles时用到的role变量没有赋值
  • 类名大小写错误:discord.embed应为discord.Embed(类名首字母必须大写)
  • 拼写错误:Succes→Success,couldnt→couldn't

修正后的代码示例:

@commands.has_permissions(administrator=True)
@bot.command()
async def role(ctx, member: discord.Member, rolerequest):
    # 替换为guild,并正确获取角色对象
    role = discord.utils.get(member.guild.roles, name=rolerequest)
    if role is not None:
        await bot.add_roles(member, role)
        embed = discord.Embed(
            title='Success!',
            description=f'Successfully added the role {rolerequest} to {member}'
        )
        await ctx.send(embed=embed)
    else:
        embed = discord.Embed(
            title='Error',
            description=f'Role {rolerequest} couldn\'t be found'
        )
        await ctx.send(embed=embed)

内容的提问来源于stack exchange,提问作者UseStarCodeCoin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:12:14