about summary refs log tree commit diff
path: root/MatrixAntiDmSpam.Core/InviteManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MatrixAntiDmSpam.Core/InviteManager.cs')
-rw-r--r--MatrixAntiDmSpam.Core/InviteManager.cs11
1 files changed, 6 insertions, 5 deletions
diff --git a/MatrixAntiDmSpam.Core/InviteManager.cs b/MatrixAntiDmSpam.Core/InviteManager.cs

index e8a5dc1..a48cea2 100644 --- a/MatrixAntiDmSpam.Core/InviteManager.cs +++ b/MatrixAntiDmSpam.Core/InviteManager.cs
@@ -23,7 +23,6 @@ public class InviteManager( public List<Func<RoomInviteContext, StateEventResponse, Task>> OnInviteRejected { get; } = []; public List<Func<RoomInviteContext, StateEventResponse, Task>> OnBeforeInviteRejected { get; } = []; - public async Task StartAsync(CancellationToken cancellationToken) { roomInviteHandler.OnInviteReceived.Add(CheckPoliciesAgainstInvite); policyStore.OnPolicyAdded.Add(CheckPolicyAgainstOutstandingInvites); @@ -90,23 +89,25 @@ 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(); - - await roomInviteHandler.RejectInvite(invite, new MessageBuilder() + var logMessage = new MessageBuilder() .WithColoredBody("#FF0000", cb => cb.WithBody("Rejecting invite to ").WithMention(invite.RoomId, roomName) .WithBody($", matching {policy.GetType().GetFriendlyName().ToLowerInvariant()} in {policyRoom.Name}.") .WithNewline()) .WithCollapsibleSection("Policy JSON", cb => cb.WithCodeBlock(policy.ToJson(ignoreNull: true), "json")) - ); + .Build(); + await _logRoom.SendMessageEventAsync(logMessage); } + await roomInviteHandler.RejectInvite(invite); + foreach (var callback in OnInviteRejected) { await callback(invite, policyEvent); }