From 6dbbf08be47e93851f62cc5303cfc6fe25023bd3 Mon Sep 17 00:00:00 2001 From: "Alexander \"PapaTutuWawa" Date: Tue, 26 Sep 2023 23:42:49 +0200 Subject: [PATCH] feat(xep): Add an event for when someone leaves the MUC --- packages/moxxmpp/lib/src/xeps/xep_0045/events.dart | 12 ++++++++++++ packages/moxxmpp/lib/src/xeps/xep_0045/xep_0045.dart | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/packages/moxxmpp/lib/src/xeps/xep_0045/events.dart b/packages/moxxmpp/lib/src/xeps/xep_0045/events.dart index 1128df8..8eec00f 100644 --- a/packages/moxxmpp/lib/src/xeps/xep_0045/events.dart +++ b/packages/moxxmpp/lib/src/xeps/xep_0045/events.dart @@ -24,6 +24,7 @@ class MemberJoinedEvent extends XmppEvent { final RoomMember member; } +/// Triggered when an entity changes their presence in the MUC. class MemberChangedEvent extends XmppEvent { MemberChangedEvent(this.roomJid, this.member); @@ -33,3 +34,14 @@ class MemberChangedEvent extends XmppEvent { /// The new member. final RoomMember member; } + +/// Triggered when an entity leaves the MUC. +class MemberLeftEvent extends XmppEvent { + MemberLeftEvent(this.roomJid, this.nick); + + /// The JID of the room. + final JID roomJid; + + /// The nick of the user who left. + final String nick; +} diff --git a/packages/moxxmpp/lib/src/xeps/xep_0045/xep_0045.dart b/packages/moxxmpp/lib/src/xeps/xep_0045/xep_0045.dart index 06fc651..0042871 100644 --- a/packages/moxxmpp/lib/src/xeps/xep_0045/xep_0045.dart +++ b/packages/moxxmpp/lib/src/xeps/xep_0045/xep_0045.dart @@ -326,6 +326,12 @@ class MUCManager extends XmppManagerBase { 'Should not receive unavailable with role="none" while joining', ); room.members.remove(from.resource); + getAttributes().sendEvent( + MemberLeftEvent( + bareFrom, + from.resource, + ), + ); } else { final member = RoomMember( from.resource,