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
相关产品推荐
相关产品推荐

