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

Discord.Net发送空消息而非Embed嵌入消息问题求助

解决Discord Whois命令返回空消息的问题

以下是针对你代码问题的排查和修复方案:

  • 处理空角色列表场景
    若目标用户没有任何自定义角色(仅默认@everyone),roleList会是空字符串,导致Embed描述为空,Discord可能因此显示异常消息。给描述添加默认值:

    var roleList = string.Join(",\n", guildUser.Roles.Where(x => !x.IsEveryone).Select(x => x.Mention)) ?? "无自定义角色";
    
  • 验证命令参数有效性
    确保正确获取到用户参数,避免因参数缺失或类型错误导致后续逻辑失败:

    var optionValue = command.Data.Options.FirstOrDefault()?.Value;
    if (optionValue is not SocketGuildUser guildUser)
    {
        await command.RespondAsync("请指定有效的服务器用户!", ephemeral: true);
        return;
    }
    
  • 检查机器人权限
    确认机器人在当前服务器拥有以下权限:

    • 发送消息
    • 嵌入链接
    • 查看成员
      缺少权限会导致无法获取角色信息或发送Embed。
  • 添加异常捕获排查错误
    加入异常捕获逻辑,快速定位隐藏问题:

    public static async Task Whois(SocketSlashCommand command)
    {
        try
        {
            var optionValue = command.Data.Options.FirstOrDefault()?.Value;
            if (optionValue is not SocketGuildUser guildUser)
            {
                await command.RespondAsync("请指定有效的服务器用户!", ephemeral: true);
                return;
            }
            
            var roleList = string.Join(",\n", guildUser.Roles.Where(x => !x.IsEveryone).Select(x => x.Mention)) ?? "无自定义角色";
            var embedBuilder = new EmbedBuilder()
                .WithAuthor(guildUser.ToString(), guildUser.GetAvatarUrl() ?? guildUser.GetDefaultAvatarUrl())
                .WithTitle("角色列表")
                .WithDescription(roleList)
                .WithColor(Color.Green)
                .WithCurrentTimestamp();
    
            await command.RespondAsync(embed: embedBuilder.Build());
        }
        catch (Exception ex)
        {
            await command.RespondAsync($"发生错误:{ex.Message}", ephemeral: true);
            Console.WriteLine(ex.ToString()); // 日志记录详细异常
        }
    }
    

内容的提问来源于stack exchange,提问作者ماهان نوروزی

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:52:16