Discord机器人无法显示服务器头像问题求助
Discord机器人获取服务器头像返回空白的解决办法
问题情况
我在Discord机器人里设置了两个命令,一个用来获取命令发起者的头像,另一个用来获取服务器(guild)头像。相关代码如下:
[SlashCommand("download", "get the guild pfp")] public async Task guildicon() var userId = Context.User.Id; var guildIcon = Context.Guild.IconUrl; await RespondAsync($"<@{userId}> Download **=>** {guildIcon}");
我用和获取用户头像一样的方式来拿服务器头像,但机器人只返回空白消息,不显示服务器的IconUrl。
解决步骤
- 检查服务器头像状态:如果服务器没有上传自定义头像,
Context.Guild.IconUrl会返回null,导致消息对应位置空白。需要先做非空判断,给用户明确提示。 - 修复代码语法与逻辑:原代码缺少方法体的大括号
{},会引发编译错误,必须补上;同时添加空值处理逻辑:
[SlashCommand("download", "get the guild pfp")] public async Task guildicon() { var userId = Context.User.Id; var guildIcon = Context.Guild.IconUrl; if (string.IsNullOrEmpty(guildIcon)) { await RespondAsync($"<@{userId}> 该服务器未设置自定义头像!"); return; } await RespondAsync($"<@{userId}> Download **=>** {guildIcon}"); }
内容的提问来源于stack exchange,提问作者CariousMouSJ
相关产品推荐
相关产品推荐

