Files

31 lines
978 B
C#

using System.Text.Json.Serialization;
using Lagrange.Core.Message;
using Lagrange.Core.Message.Entity;
namespace Lagrange.OneBot.Message.Entity;
[Serializable]
public partial class XmlSegment(string xml, int serviceid)
{
public XmlSegment() : this("", 35) { }
[JsonPropertyName("data")] [CQProperty] public string Xml { get; set; } = xml;
[JsonPropertyName("service_id")] [CQProperty] public int ServiceId { get; set; } = serviceid;
}
[SegmentSubscriber(typeof(XmlEntity), "xml")]
public partial class XmlSegment : SegmentBase
{
public override void Build(MessageBuilder builder, SegmentBase segment)
{
if (segment is XmlSegment xml) builder.Xml(xml.Xml, xml.ServiceId);
}
public override SegmentBase FromEntity(MessageChain chain, IMessageEntity entity)
{
if (entity is not XmlEntity xmlEntity) throw new ArgumentException("Invalid entity type.");
return new XmlSegment(xmlEntity.Xml, xmlEntity.ServiceId);
}
}