From 0eb2eec3a3c80749708fe3fb74a0907c647338d9 Mon Sep 17 00:00:00 2001 From: Rory& Date: Sat, 24 May 2025 21:13:02 +0200 Subject: Implement hook that runs *before* rejecting an invite --- MatrixAntiDmSpam.Core/InviteManager.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MatrixAntiDmSpam.Core/InviteManager.cs b/MatrixAntiDmSpam.Core/InviteManager.cs index 12fdc5c..e8a5dc1 100644 --- a/MatrixAntiDmSpam.Core/InviteManager.cs +++ b/MatrixAntiDmSpam.Core/InviteManager.cs @@ -21,6 +21,8 @@ public class InviteManager( AuthenticatedHomeserverGeneric homeserver) : IHostedService { private readonly GenericRoom? _logRoom = string.IsNullOrWhiteSpace(config.LogRoom) ? null : homeserver.GetRoom(config.LogRoom); public List> OnInviteRejected { get; } = []; + public List> OnBeforeInviteRejected { get; } = []; + public async Task StartAsync(CancellationToken cancellationToken) { roomInviteHandler.OnInviteReceived.Add(CheckPoliciesAgainstInvite); @@ -88,6 +90,10 @@ public class InviteManager( var policyRoom = config.PolicyLists.First(x => x.RoomId == policyEvent.RoomId); logger.LogWarning("[{}] Rejecting invite to {}, matching {} in {}: {}", homeserver.WhoAmI.UserId, invite.RoomId, policy.GetType().GetFriendlyName(), policyRoom.Name, policy.ToJson(ignoreNull: true)); + + foreach (var callback in OnBeforeInviteRejected) { + await callback(invite, policyEvent); + } if (_logRoom is not null) { var roomName = await invite.TryGetRoomNameAsync(); -- cgit 1.5.1