From 08b552fc3ad6e81d8ebddc238043681da90673b3 Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 13 Mar 2025 11:50:01 +0100 Subject: Add full invite data to invite handler callback --- ArcaneLibs | 2 +- LibMatrix.EventTypes/EventContent.cs | 3 +++ .../Services/InviteListenerHostedService.cs | 9 ++++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ArcaneLibs b/ArcaneLibs index 3d116cf..3a29372 160000 --- a/ArcaneLibs +++ b/ArcaneLibs @@ -1 +1 @@ -Subproject commit 3d116cf672f881a67732f2cb6cc5c7efa1b8deb5 +Subproject commit 3a2937246ba42cdc2c0ffc1c0c5ed9cddc2ef56b diff --git a/LibMatrix.EventTypes/EventContent.cs b/LibMatrix.EventTypes/EventContent.cs index a837252..89686ae 100644 --- a/LibMatrix.EventTypes/EventContent.cs +++ b/LibMatrix.EventTypes/EventContent.cs @@ -6,6 +6,9 @@ using System.Text.Json.Serialization; namespace LibMatrix.EventTypes; public abstract class EventContent { + [JsonExtensionData] + public Dictionary? AdditionalData { get; set; } = []; + public static List GetMatchingEventTypes() where T : EventContent { var type = typeof(T); var eventTypes = new List(); diff --git a/Utilities/LibMatrix.Utilities.Bot/Services/InviteListenerHostedService.cs b/Utilities/LibMatrix.Utilities.Bot/Services/InviteListenerHostedService.cs index cac9ca4..f819cc3 100644 --- a/Utilities/LibMatrix.Utilities.Bot/Services/InviteListenerHostedService.cs +++ b/Utilities/LibMatrix.Utilities.Bot/Services/InviteListenerHostedService.cs @@ -1,6 +1,7 @@ using LibMatrix.Filters; using LibMatrix.Helpers; using LibMatrix.Homeservers; +using LibMatrix.Responses; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; @@ -51,7 +52,8 @@ public class InviteHandlerHostedService : IHostedService { var inviteEventArgs = new InviteEventArgs() { RoomId = invite.Key, - MemberEvent = invite.Value.InviteState.Events.First(x => x.Type == "m.room.member" && x.StateKey == _hs.WhoAmI.UserId), + InviteData = invite.Value, + MemberEvent = invite.Value.InviteState?.Events?.First(x => x.Type == "m.room.member" && x.StateKey == _hs.WhoAmI.UserId), Homeserver = _hs }; await _inviteHandler(inviteEventArgs); @@ -74,11 +76,12 @@ public class InviteHandlerHostedService : IHostedService { public class InviteEventArgs { public string RoomId { get; set; } - public StateEventResponse MemberEvent { get; set; } public AuthenticatedHomeserverGeneric Homeserver { get; set; } + public StateEventResponse MemberEvent { get; set; } + public SyncResponse.RoomsDataStructure.InvitedRoomDataStructure InviteData { get; set; } } public interface IInviteHandler { - public Task HandleInviteAsync(InviteEventArgs args); + public Task HandleInviteAsync(InviteEventArgs invite); } } \ No newline at end of file -- cgit 1.5.1