diff --git a/xmpp/handlers.go b/xmpp/handlers.go index 07a8eec..15fcd10 100644 --- a/xmpp/handlers.go +++ b/xmpp/handlers.go @@ -761,12 +761,24 @@ func handleGetVcardIq(s xmpp.Sender, iq *stanza.IQ, typ byte) { return } - toID, toOk, _ := toToID(iq.To) + toID, toOk, isGroup := toToID(iq.To) if !toOk { log.Error("Invalid IQ to") return } + if isGroup { + toJid, err := stanza.NewJid(iq.To) + if err != nil { + log.Error("Invalid to JID!") + return + } + + if toJid.Resource != "" { + toID = session.GetMUCMemberIdByNickname(toID, toJid.Resource) + } + } + info, err := session.GetVcardInfo(toID) if err != nil { log.Error(err)