* oh well. at least it runs * well that's some breakings * all the models (i think) * barebones builder impl * commit * initial take on `WithX` component builder design * actually usable stuff now * few more changes * fixes, changes, syntax sugar * rework message flags + auto add `ComponentsV2` * apparently it's also nullable * fix build * webhook component supports + builder validations + some xmldoc * `ResolvedUnfurledMediaItem` + fix missing accessory on sections * missing xmldoc * fix modal + whatever change * yeet unused dep
34 lines
844 B
C#
34 lines
844 B
C#
using Discord.Rest;
|
|
using Newtonsoft.Json;
|
|
using System.Linq;
|
|
|
|
namespace Discord.API;
|
|
|
|
internal class MediaGalleryComponent : IMessageComponent
|
|
{
|
|
[JsonProperty("type")]
|
|
public ComponentType Type { get; set; }
|
|
|
|
[JsonProperty("id")]
|
|
public Optional<int> Id { get; set; }
|
|
|
|
[JsonProperty("items")]
|
|
public MediaGalleryItem[] Items { get; set; }
|
|
|
|
public MediaGalleryComponent() { }
|
|
|
|
public MediaGalleryComponent(Discord.MediaGalleryComponent component)
|
|
{
|
|
Type = component.Type;
|
|
Id = component.Id ?? Optional<int>.Unspecified;
|
|
Items = component.Items.Select(x => new MediaGalleryItem
|
|
{
|
|
Description = x.Description,
|
|
IsSpoiler = x.IsSpoiler,
|
|
Media = x.Media.ToModel()
|
|
}).ToArray();
|
|
}
|
|
|
|
int? IMessageComponent.Id => Id.ToNullable();
|
|
}
|