From e891ebf2658ef4188adc43b9078d5364840f0898 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sun, 4 Jan 2026 20:53:13 -0500 Subject: [PATCH] =?UTF-8?q?Add=20=E2=9D=8C=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/nexusbot.dart | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/bin/nexusbot.dart b/bin/nexusbot.dart index e36a5be..cdd7e8a 100644 --- a/bin/nexusbot.dart +++ b/bin/nexusbot.dart @@ -45,23 +45,28 @@ void main(List argsRaw) async { if (event.senderId.startsWith("@${settings.name}:")) return; switch (event.type) { case EventTypes.Reaction: - if ((event.content["m.relates_to"] as Map)["key"] != - "✅") { - return; - } + final reaction = + (event.content["m.relates_to"] as Map)["key"]; final parentEvent = await client.getOneRoomEvent( event.roomId!, event.relationshipEventId!, ); if (!parentEvent.senderId.startsWith("@${settings.name}:")) return; - final registration = Registration.fromJson(parentEvent.content); - container - .read(RegistrationController.provider.notifier) - .add(registration); + if (reaction == "✅") { + final registration = Registration.fromJson(parentEvent.content); + container + .read(RegistrationController.provider.notifier) + .add(registration); - await event.room.sendTextEvent( - "!admin users create ${registration.username}", - ); + await event.room.sendTextEvent( + "!admin users create ${registration.username}", + ); + } else if (reaction == "❌") { + await Event.fromMatrixEvent( + parentEvent, + event.room, + ).redactEvent(reason: "${event.senderId} reacted with ❌"); + } break; case EventTypes.Message: if (!event.senderId.startsWith("@${settings.adminName}:")) break; @@ -158,6 +163,7 @@ If you have any issues, reply to this email.""", }); await room.sendReaction(event!, "✅"); + await room.sendReaction(event, "❌"); return Response.found(settings.successUri); } catch (error, stackTrace) {