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

Discord机器人角色提及异常求助:Magenta角色显示为已删除角色

解决Discord Shop命令中角色显示<@Deleted-Role>的问题

问题根源

你的代码存在三处格式语法错误,和Discord整数长度限制无关(Python支持任意大整数,且你的角色ID是合法的64位Snowflake):

  • roleId变量末尾多了一个>符号,导致拼接后角色提及格式变为<@&855179067388461076>>,完全不符合Discord的角色提及规则
  • Olive角色的提及格式错误:缺少开头的<,且末尾多了>,变成@&1075540533457461379>
  • 部分字段的inline设置混乱,但不影响角色显示,建议统一规范

修复后的代码

@bot.command()
async def Shop(ctx):
    roleId = "855179067388461076"  # 移除多余的>
    ShopEM = discord.Embed(title=f"🢃 BASIC COLORS SHOP 🢃", color=0xff5555)
    ShopEM.add_field(name=f"1) Magenta", value=f'<@&{roleId}>', inline=True)  # 正确拼接格式
    ShopEM.add_field(name=f"2) Khaki", value=f"<@&1075540590604853278>", inline=False)
    ShopEM.add_field(name=f"3) Purple", value=f"<@&1075540578072273006>", inline=False)
    ShopEM.add_field(name=f"4) Gray", value=f"<@&1075540541195960400>", inline=True)
    ShopEM.add_field(name=f"5) Olive", value=f"<@&1075540533457461379>", inline=False)  # 修正格式
    ShopEM.add_field(name=f"6) Teal", value=f"<@&1075540547021840404>", inline=False)
    ShopEM.add_field(name=f"PRICE", value="")
    await ctx.send(embed=ShopEM)

额外验证步骤

  • 确认855179067388461076这个角色ID确实存在于当前服务器中,没有被删除
  • 复制角色ID时确保没有多打/漏打数字,可通过服务器设置→角色→右键复制ID获取准确值

内容的提问来源于stack exchange,提问作者Zell-League Psiclone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:22:16