3 files changed, 30 insertions, 2 deletions
diff --git a/LibMatrix.EventTypes/EventContent.cs b/LibMatrix.EventTypes/EventContent.cs
index d612e44..7a9f0aa 100644
--- a/LibMatrix.EventTypes/EventContent.cs
+++ b/LibMatrix.EventTypes/EventContent.cs
@@ -1,4 +1,5 @@
using System.Diagnostics.CodeAnalysis;
+using System.Net.Http.Json;
using System.Reflection;
using System.Text.Json;
using System.Text.Json.Nodes;
@@ -17,6 +18,7 @@ public abstract class EventContent {
foreach (var attr in type.GetCustomAttributes<MatrixEventAttribute>(true)) {
eventTypes.Add(attr.EventName);
}
+
return eventTypes;
}
}
@@ -55,7 +57,7 @@ public abstract class TimelineEventContent : EventContent {
// used for reactions
[JsonPropertyName("key")]
public string? Key { get; set; }
-
+
[JsonExtensionData]
public Dictionary<string, object>? AdditionalData { get; set; } = [];
diff --git a/LibMatrix.EventTypes/Spec/State/RoomInfo/RoomCreateEventContent.cs b/LibMatrix.EventTypes/Spec/State/RoomInfo/RoomCreateEventContent.cs
index 8519889..3dd033b 100644
--- a/LibMatrix.EventTypes/Spec/State/RoomInfo/RoomCreateEventContent.cs
+++ b/LibMatrix.EventTypes/Spec/State/RoomInfo/RoomCreateEventContent.cs
@@ -1,5 +1,7 @@
using System.Diagnostics.CodeAnalysis;
+using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
+using ArcaneLibs.Extensions;
namespace LibMatrix.EventTypes.Spec.State.RoomInfo;
diff --git a/LibMatrix.EventTypes/Spec/State/RoomInfo/RoomMemberEventContent.cs b/LibMatrix.EventTypes/Spec/State/RoomInfo/RoomMemberEventContent.cs
index b034425..287754a 100644
--- a/LibMatrix.EventTypes/Spec/State/RoomInfo/RoomMemberEventContent.cs
+++ b/LibMatrix.EventTypes/Spec/State/RoomInfo/RoomMemberEventContent.cs
@@ -1,3 +1,5 @@
+using System.Text.Json;
+using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
namespace LibMatrix.EventTypes.Spec.State.RoomInfo;
@@ -26,7 +28,29 @@ public class RoomMemberEventContent : EventContent {
[JsonPropertyName("join_authorised_via_users_server")]
public string? JoinAuthorisedViaUsersServer { get; set; }
-
+
+ [JsonPropertyName("third_party_invite")]
+ public ThirdPartyMemberInvite? ThirdPartyInvite { get; set; }
+
+ public class ThirdPartyMemberInvite {
+ [JsonPropertyName("display_name")]
+ public required string DisplayName { get; set; }
+
+ [JsonPropertyName("signed")]
+ public required SignedThirdPartyInvite Signed { get; set; }
+
+ public class SignedThirdPartyInvite {
+ [JsonPropertyName("mxid")]
+ public required string Mxid { get; set; }
+
+ [JsonPropertyName("signatures")]
+ public required Dictionary<string, Dictionary<string, string>> Signatures { get; set; }
+
+ [JsonPropertyName("token")]
+ public required string Token { get; set; }
+ }
+ }
+
public static class MembershipTypes {
public const string Invite = "invite";
public const string Join = "join";
|