Send real JID for room occupants
This commit is contained in:
parent
6c65ef9988
commit
93abbe834e
|
@ -302,6 +302,7 @@ func (c *Client) SendMUCStatuses(chatID int64) {
|
|||
})
|
||||
if err == nil {
|
||||
chatIDString := strconv.FormatInt(chatID, 10)
|
||||
gatewayJidSuffix := "@" + gateway.Jid.Full()
|
||||
|
||||
myNickname := "me"
|
||||
if c.me != nil {
|
||||
|
@ -337,7 +338,8 @@ func (c *Client) SendMUCStatuses(chatID int64) {
|
|||
gateway.SPFrom(chatIDString),
|
||||
gateway.SPResource(nickname),
|
||||
gateway.SPImmed(true),
|
||||
gateway.SPAffiliation(affiliation),
|
||||
gateway.SPMUCAffiliation(affiliation),
|
||||
gateway.SPMUCJid(strconv.FormatInt(senderId, 10) + gatewayJidSuffix),
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -348,8 +350,8 @@ func (c *Client) SendMUCStatuses(chatID int64) {
|
|||
gateway.SPFrom(chatIDString),
|
||||
gateway.SPResource(myNickname),
|
||||
gateway.SPImmed(true),
|
||||
gateway.SPAffiliation(myAffiliation),
|
||||
gateway.SPMUCStatusCodes([]uint16{110, 210}),
|
||||
gateway.SPMUCAffiliation(myAffiliation),
|
||||
gateway.SPMUCStatusCodes([]uint16{100, 110, 210}),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -224,6 +224,7 @@ type PresenceXMucUserExtension struct {
|
|||
type PresenceXMucUserItem struct {
|
||||
XMLName xml.Name `xml:"item"`
|
||||
Affiliation string `xml:"affiliation,attr"`
|
||||
Jid string `xml:"jid,attr"`
|
||||
Role string `xml:"role,attr"`
|
||||
}
|
||||
|
||||
|
|
|
@ -240,8 +240,11 @@ var SPResource = args.NewString()
|
|||
// SPImmed skips queueing
|
||||
var SPImmed = args.NewBool(args.Default(true))
|
||||
|
||||
// SPAffiliation is a XEP-0045 MUC affiliation
|
||||
var SPAffiliation = args.NewString()
|
||||
// SPMUCAffiliation is a XEP-0045 MUC affiliation
|
||||
var SPMUCAffiliation = args.NewString()
|
||||
|
||||
// SPMUCJid is a real jid of a MUC member
|
||||
var SPMUCJid = args.NewString()
|
||||
|
||||
// SPMUCStatusCodes is a set of XEP-0045 MUC status codes
|
||||
var SPMUCStatusCodes = args.New()
|
||||
|
@ -301,8 +304,8 @@ func newPresence(bareJid string, to string, args ...args.V) stanza.Presence {
|
|||
})
|
||||
}
|
||||
}
|
||||
if SPAffiliation.IsSet(args) {
|
||||
affiliation := SPAffiliation.Get(args)
|
||||
if SPMUCAffiliation.IsSet(args) {
|
||||
affiliation := SPMUCAffiliation.Get(args)
|
||||
if affiliation != "" {
|
||||
userExt := extensions.PresenceXMucUserExtension{
|
||||
Item: extensions.PresenceXMucUserItem{
|
||||
|
@ -310,6 +313,9 @@ func newPresence(bareJid string, to string, args ...args.V) stanza.Presence {
|
|||
Role: affilationToRole(affiliation),
|
||||
},
|
||||
}
|
||||
if SPMUCJid.IsSet(args) {
|
||||
userExt.Item.Jid = SPMUCJid.Get(args)
|
||||
}
|
||||
if SPMUCStatusCodes.IsSet(args) {
|
||||
statusCodes := SPMUCStatusCodes.Get(args).([]uint16)
|
||||
for _, statusCode := range statusCodes {
|
||||
|
|
Loading…
Reference in a new issue