submodule对gitea不管用,所以直接拉了一份拉格兰
This commit is contained in:
29
Lagrange.Core/Lagrange.OneBot/Message/Entity/JsonSegment.cs
Normal file
29
Lagrange.Core/Lagrange.OneBot/Message/Entity/JsonSegment.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Lagrange.Core.Message;
|
||||
using Lagrange.Core.Message.Entity;
|
||||
|
||||
namespace Lagrange.OneBot.Message.Entity;
|
||||
|
||||
[Serializable]
|
||||
public partial class JsonSegment(string data)
|
||||
{
|
||||
public JsonSegment(): this("") { }
|
||||
|
||||
[JsonPropertyName("data")] [CQProperty] public string Data { get; set; } = data;
|
||||
}
|
||||
|
||||
[SegmentSubscriber(typeof(LightAppEntity), "json")]
|
||||
public partial class JsonSegment : SegmentBase
|
||||
{
|
||||
public override void Build(MessageBuilder builder, SegmentBase segment)
|
||||
{
|
||||
if (segment is JsonSegment json) builder.LightApp(json.Data);
|
||||
}
|
||||
|
||||
public override SegmentBase FromEntity(MessageChain chain, IMessageEntity entity)
|
||||
{
|
||||
if (entity is not LightAppEntity lightAppEntity) throw new ArgumentException("Invalid entity type.");
|
||||
|
||||
return new JsonSegment(lightAppEntity.Payload);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user