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

Discord用户信息机器人仅含@everyone角色时崩溃问题求助

问题修复:Discord机器人在用户仅含@everyone角色时崩溃

问题原因

报错信息显示embeds.0.fields.5.value: This field is required,说明Embed中「Roles」字段的value为空字符串。当用户只有@everyone角色时,原代码第一个循环会跳过该角色,导致rlist为空,b = ','.join(rlist)得到空字符串,触发Discord API的400错误。同时原代码第二个循环会给所有用户都添加"rol yok!"(因为每个用户都默认拥有@everyone角色),导致角色数量统计错误。

修复代码

调整角色处理逻辑,避免空值并修正统计逻辑:

from unicodedata import name
import discord
from datetime import datetime
from discord.ext import commands

intents = discord.Intents.all()
bot = commands.Bot(command_prefix='.',intents=intents)

@bot.event
async def on_ready():
    print("Bot calisiyor!")

@bot.command(name="user")
async def user(ctx, user: discord.Member=None):
    if user is None:
        user = ctx.author

    # 收集除@everyone外的角色
    roles = [role.mention for role in user.roles if role.name != "@everyone"]
    # 无额外角色时显示默认文本,避免空值
    role_text = ','.join(roles) if roles else "无额外角色"
    # 统计有效角色数量(排除@everyone)
    role_count = len(roles)

    embed = discord.Embed(colour=user.color, timestamp=ctx.message.created_at)

    embed.set_author(name=f"用户信息 - {user}")
    embed.set_thumbnail(url=user.avatar.url)
    embed.set_footer(text=f'请求来自 - {ctx.author}', icon_url=ctx.author.avatar.url)

    embed.add_field(name='ID:', value=user.id, inline=False)
    embed.add_field(name='昵称:', value=user.display_name, inline=False)
    embed.add_field(name='账号创建时间:', value=datetime.strftime(user.created_at, "%#d/%m/%Y"), inline=False)
    embed.add_field(name='加入服务器时间:', value=datetime.strftime(user.joined_at, "%#d/%m/%Y"), inline=False)
    embed.add_field(name='是否是机器人:', value=user.bot, inline=False)
    embed.add_field(name=f'角色({role_count}个):', value=role_text, inline=False)
    embed.add_field(name='最高角色:', value=user.top_role.mention, inline=False)

    await ctx.send(embed=embed)

关键修改点

  • 用列表推导式简化角色收集,直接过滤@everyone
  • 增加空值判断,无额外角色时显示默认文本,避免Embed字段value为空
  • 修正角色数量统计为有效角色的数量(排除@everyone)
  • 移除原代码中冗余的第二个循环(错误添加默认文本的逻辑)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:45:47