ModifyAsync не работает

Я пытаюсь отредактировать встроенное сообщение после его публикации. Я пытался использовать этот пример из документации, но он просто не работает. https://discord.foxbot.me/docs/api/Discord.MessageProperties.html

var message = await ReplyAsync("abc");
await message.ModifyAsync(x =>
{
    x.Content = "";
    x.Embed = new EmbedBuilder()
        .WithColor(new Color(40, 40, 120))
        .WithAuthor(a => a.Name = "foxbot")
        .WithTitle("Embed!")
        .WithDescription("This is an embed.");
});

Помещение кода в одну из моих рабочих команд даст

не может неявно преобразовать тип Discord.EmbedBuilder в Discord.Optional<Discord.Embed>"

Действительно запутался...


person Douglas TopHATTwaffle Hoogland    schedule 06.12.2017    source источник
comment
Вам не хватает .Build() после WithDescription   -  person Nkosi    schedule 06.12.2017


Ответы (1)


Вам не хватает .Build() после WithDescription. Обычно при использовании шаблона построителя вам обычно нужно создать нужный тип.

var message = await ReplyAsync("abc");
await message.ModifyAsync(x =>
{
    x.Content = "";
    x.Embed = new EmbedBuilder()
        .WithColor(new Color(40, 40, 120))
        .WithAuthor(a => a.Name = "foxbot")
        .WithTitle("Embed!")
        .WithDescription("This is an embed.")
        .Build(); //<-- The is what was omitted.
});

Вызов Build() вернет Embed, который затем можно будет неявно преобразовать в Optional<Embed>".

person Nkosi    schedule 06.12.2017
comment
Работает отлично! Большое спасибо. - person Douglas TopHATTwaffle Hoogland; 06.12.2017