首页 > 解决方案 > C# - DSharp 获得 Bots(最高)角色的颜色

问题描述

我正在努力做到这一点,因此当您调用交互嵌入时,左侧显示的线条与机器人最高角色颜色相同。(真的是次要的细节,但出于某种原因我真的很想要它)

到目前为止,我只找到了 Javascript 版本(discord.js)的答案,但没有找到 DSharp 的答案。https://dsharpplus.github.io/api上的文档也没有帮助。我尝试了以下方法:

ctx.Guild.GetMemberAsync(MY BOT ID).Color;

我在具有静态 ID 的测试服务器上这样做只是为了看看它是否可以工作,至少在一台服务器上,但它没有。

接下来我尝试使用

ctx.Client.Guild.GetRole(MY BOT ROLE ID).Color;

这确实有效,但只能在一台服务器上和一个角色。我希望它可以在具有任何角色的任何服务器上工作,以便获得颜色

我很茫然。帮助请。

一般相关代码:

public async Task join(CommandContext ctx)
{

   DiscordColor botTopRoleColor =  //help;
    


    var Thumbnail = new DiscordEmbedBuilder.EmbedThumbnail { Url = ctx.Client.CurrentUser.AvatarUrl };
    var joinEmbed = new DiscordEmbedBuilder
    {
        Title = "Head",
        Description = "Body",
        Thumbnail = Thumbnail,
        Color = botTopRoleColor //(This should be the highest role color which i am trying to set in botTopRoleColor
    }; ...

标签: c#discorddsharp+

解决方案


ctx.Guild.CurrentMember.Color. 如果这不起作用,您可能使用的是未启用适当意图的旧版本。


推荐阅读