diff --git a/slixmpp/plugins/xep_0045/muc.py b/slixmpp/plugins/xep_0045/muc.py index 7a600059..905e0f49 100644 --- a/slixmpp/plugins/xep_0045/muc.py +++ b/slixmpp/plugins/xep_0045/muc.py @@ -91,6 +91,14 @@ class XEP_0045(BasePlugin): StanzaPath("presence/muc"), self.handle_groupchat_presence, )) + if self.xmpp.is_component: + self.xmpp.register_handler( + Callback( + 'MUCPresenceJoin', + StanzaPath("presence/muc_join"), + self.handle_groupchat_join, + )) + self.xmpp.register_handler( Callback( 'MUCError', @@ -189,6 +197,10 @@ class XEP_0045(BasePlugin): else: self.client_handle_presence(pr) + def handle_groupchat_join(self, pr: Presence): + """Received a join presence (as a component)""" + self.xmpp.event('groupchat_join', pr) + def handle_groupchat_message(self, msg: Message) -> None: """ Handle a message event in a muc. """