Reapply "[Feature] Components V2 (#3065)" (#3100) (#3104)

This reverts commit d27bb49b2d.
This commit is contained in:
Mihail Gribkov
2025-04-27 00:31:08 +03:00
committed by GitHub
parent 25230f31cd
commit 8686102d87
102 changed files with 2852 additions and 692 deletions

View File

@@ -0,0 +1,32 @@
using Discord.Rest;
using Newtonsoft.Json;
using System.Linq;
namespace Discord.API;
internal class SectionComponent : IMessageComponent
{
[JsonProperty("type")]
public ComponentType Type { get; set; }
[JsonProperty("id")]
public Optional<int> Id { get; set; }
[JsonProperty("components")]
public IMessageComponent[] Components { get; set; }
[JsonProperty("accessory")]
public IMessageComponent Accessory { get; set; }
public SectionComponent() { }
public SectionComponent(Discord.SectionComponent component)
{
Type = component.Type;
Id = component.Id ?? Optional<int>.Unspecified;
Components = component.Components.Select(x => x.ToModel()).ToArray();
Accessory = component.Accessory.ToModel();
}
int? IMessageComponent.Id => Id.ToNullable();
}