【问题标题】:How to use Embedding with C#? Discord BOT如何在 C# 中使用嵌入?不和谐机器人
【发布时间】:2017-10-08 03:01:57
【问题描述】:

我希望嵌入以下内容:

使用 Discord API。我看过了,我能找到的唯一资源是 Python、Java、Ruby 等。

但使用时:

var embed = new Message.Embed(
{
    Author =
    {
        Name = "Name",
        Url = "www.url.com"
    }
});

它会返回消息:

还有:

不确定我需要做什么才能使用嵌入库。只是在寻找有关其工作原理的一些指导

编辑:

使用它时我没有收到任何错误,但在运行嵌入时似乎没有构建。它没有错误。它只是从不构建嵌入变量

var embed = new Message.Embed
            {
                Author =
                {
                Name = "Lawler",
                Url = "www.twitch.tv/Lawler"
                },
                Title = "www.twitch.tv/Lawler",
                Thumbnail =
                {
                ProxyUrl = "https://yt3.ggpht.com/-m-P7t2g-ecQ/AAAAAAAAAAI/AAAAAAAAAAA/YtS2YsD8-AM/s900-c-k-no-mo-rj-c0xffffff/photo.jpg",
                Url = "www.twitch.tv/Lawler"
                },
                Description = "**Now Playing**\n" +
                              "Rocket League\n" +
                              "**Stream Title**\n" +
                              "Lawler RLCS Caster"

            };

*注意:我使用的是 Discord v 0.9.6

【问题讨论】:

  • 你可以分享示例项目吗?
  • @BorisIvanov 这是我为 Java 找到的示例的链接。 LINK

标签: c# embed discord discord.net


【解决方案1】:

您可以像以下代码一样创建嵌入消息(使用最新版本的 Discord.Net):

var builder = new EmbedBuilder()
{
    //Optional color
    Color = Color.Green,
    Description = "This is the description of the embed message"
};

在嵌入消息中构建一个字段:

builder.AddField(x =>
{
    x.Name = Author.Name;
    x.Value = Author.Url;
    x.IsInline = false;
});

并回复同一个频道上下文:

//Use await if you're using an async Task to be completed.
await ReplyAsync("", false, builder.Build())

上面的代码应该构建一个嵌入消息,Discord.Net 文档中有更多选项。链接:https://docs.stillu.cc/guides/introduction/intro.html

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    快速浏览一下您的代码,我认为您在错误的位置使用了右括号。

    尝试以下方法:

    var embed = new Message.Embed()
    {
        Author =
        {
            Name = "Name",
            Url = "www.url.com"
        }
    };
    

    同样,在不进行任何研究的情况下,您可能还需要执行以下操作:

    var embed = new Message.Embed()
    {
        Author = new Author()
        {
            Name = "Name",
            Url = "www.url.com"
        }
    };
    

    【讨论】:

    • 谢谢!请参阅我的编辑。我现在可以正常工作,但是var embed = new message.embed 之后的任何内容都无法运行。它似乎没有构建嵌入
    【解决方案3】:
        var embed = new EmbedBuilder()
    

    而不是

    var embed = new Message.Embed()
    

    发送消息:

       await Context.Channel.SendMessageAsync("", false, embed);
    

    编辑: 0.9.6 不支持嵌入,所以上面的代码没用

    【讨论】:

      【解决方案4】:

      如果您使用的是 Discord.Net 1.0.1,则可以像这样格式化嵌入:

      var eb = new EmbedBuilder() { Title = "Cool Title", Description = "Description" };
      

      阅读此处的文档以获取更多信息here

      如果你想让你的文本看起来更好一点,你可以阅读 Discord Markdown 文档here。这适用于 0.9.6。

      发送嵌入使用:

      await Context.Channel.SendMessageAsync("", false, eb);
      

      【讨论】:

      • 我知道这与上面所说的类似,但我觉得添加一些说明可能会有所帮助:)
      猜你喜欢
      • 2021-01-21
      • 2019-04-11
      • 1970-01-01
      • 2021-03-28
      • 2020-12-25
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多