From 820adf88653e6fe3d6b1e59489379966dfbf5dee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BC=D1=8F=D0=BD=20=D0=9C=D0=B8=D0=BD=D0=BA?= =?UTF-8?q?=D0=BE=D0=B2?= Date: Tue, 12 Oct 2021 13:06:05 -0700 Subject: [PATCH] [muc] Also process destory message if it contains Fixes SMACK-915 --- .../smackx/muc/MultiUserChat.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java index b80f3582d..1565b2544 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java @@ -259,23 +259,24 @@ public class MultiUserChat { listener.left(from); } } + } - Destroy destroy = mucUser.getDestroy(); - // The room has been destroyed. - if (destroy != null) { - EntityBareJid alternateMucJid = destroy.getJid(); - final MultiUserChat alternateMuc; - if (alternateMucJid == null) { - alternateMuc = null; - } else { - alternateMuc = multiUserChatManager.getMultiUserChat(alternateMucJid); - } + Destroy destroy = mucUser.getDestroy(); + // The room has been destroyed. + if (destroy != null) { + EntityBareJid alternateMucJid = destroy.getJid(); + final MultiUserChat alternateMuc; + if (alternateMucJid == null) { + alternateMuc = null; + } else { + alternateMuc = multiUserChatManager.getMultiUserChat(alternateMucJid); + } - for (UserStatusListener listener : userStatusListeners) { - listener.roomDestroyed(alternateMuc, destroy.getReason()); - } + for (UserStatusListener listener : userStatusListeners) { + listener.roomDestroyed(alternateMuc, destroy.getReason()); } } + if (isUserStatusModification) { for (UserStatusListener listener : userStatusListeners) { listener.removed(mucUser, presence);