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 cbe2ee8a0..b85bc6d68 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 @@ -197,7 +197,7 @@ public class MultiUserChat { case unavailable: occupantsMap.remove(from); MUCUser mucUser = MUCUser.from(packet); - if (mucUser != null && mucUser.getStatus() != null) { + if (mucUser != null && mucUser.hasStatus()) { // Fire events according to the received presence code checkPresenceCode( mucUser.getStatus(), diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCUser.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCUser.java index 88cbd0ce0..4e68f4b84 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCUser.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/MUCUser.java @@ -118,6 +118,19 @@ public class MUCUser implements ExtensionElement { return statusCodes; } + /** + * Returns true if this MUCUser instance has also {@link Status} information. + *

+ * If true is returned, then {@link #getStatus()} will return a non-empty set. + *

+ * + * @return true if this MUCUser has status information. + * @since 4.1 + */ + public boolean hasStatus() { + return !statusCodes.isEmpty(); + } + /** * Returns the notification that the room has been destroyed. After a room has been destroyed, * the room occupants will receive a Presence packet of type 'unavailable' with the reason for