| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2023-07-26 19:48:41 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2023-07-26 19:48:41 UTC |
| parent | 593a4d0720d076fc721297f8210e76cdec64d5b9 |
| xmpp/ChatMessage.hx | +6 | -4 |
diff --git a/xmpp/ChatMessage.hx b/xmpp/ChatMessage.hx index a7efe38..e23ea24 100644 --- a/xmpp/ChatMessage.hx +++ b/xmpp/ChatMessage.hx @@ -34,19 +34,21 @@ class ChatMessage { public function new() { } - public static function fromStanza(stanza:Stanza, localJid:String):Null<ChatMessage> { + public static function fromStanza(stanza:Stanza, localJidStr:String):Null<ChatMessage> { var msg = new ChatMessage(); msg.text = stanza.getChildText("body"); msg.to = stanza.attr.get("to"); msg.from = stanza.attr.get("from"); - final domain = JID.parse(localJid).domain; + final localJid = JID.parse(localJidStr); + final localJidBare = localJid.asBare(); + final domain = localJid.domain; for (stanzaId in stanza.allTags("stanza-id", "urn:xmpp:sid:0")) { - if (stanzaId.attr.get("by") == domain) { + if (stanzaId.attr.get("by") == domain || stanzaId.attr.get("by") == localJidBare.asString()) { msg.serverId = stanzaId.attr.get("id"); break; } } - msg.direction = (msg.to == localJid) ? MessageReceived : MessageSent; + msg.direction = (JID.parse(msg.to).asBare().asString() == localJidBare.asString()) ? MessageReceived : MessageSent; if (msg.text == null) return null;