mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-25 13:29:27 +01:00
commit
66e2710ba2
@ -2011,13 +2011,16 @@ func dispatchMessageToTarget(client *Client, tags map[string]string, histType hi
|
|||||||
allowedTor := !user.isTor || !message.IsRestrictedCTCPMessage()
|
allowedTor := !user.isTor || !message.IsRestrictedCTCPMessage()
|
||||||
if allowedPlusR && allowedTor {
|
if allowedPlusR && allowedTor {
|
||||||
for _, session := range user.Sessions() {
|
for _, session := range user.Sessions() {
|
||||||
if histType == history.Tagmsg {
|
hasTagsCap := session.capabilities.Has(caps.MessageTags)
|
||||||
// don't send TAGMSG at all if they don't have the tags cap
|
// don't send TAGMSG at all if they don't have the tags cap
|
||||||
if session.capabilities.Has(caps.MessageTags) {
|
if histType == history.Tagmsg && hasTagsCap {
|
||||||
session.sendFromClientInternal(false, message.Time, message.Msgid, nickMaskString, accountName, tags, command, tnick)
|
session.sendFromClientInternal(false, message.Time, message.Msgid, nickMaskString, accountName, tags, command, tnick)
|
||||||
|
} else if histType != history.Tagmsg {
|
||||||
|
tagsToSend := tags
|
||||||
|
if !hasTagsCap {
|
||||||
|
tagsToSend = nil
|
||||||
}
|
}
|
||||||
} else {
|
session.sendSplitMsgFromClientInternal(false, nickMaskString, accountName, tagsToSend, command, tnick, message)
|
||||||
session.sendSplitMsgFromClientInternal(false, nickMaskString, accountName, tags, command, tnick, message)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2034,10 +2037,15 @@ func dispatchMessageToTarget(client *Client, tags map[string]string, histType hi
|
|||||||
if session == rb.session {
|
if session == rb.session {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if histType == history.Tagmsg && rb.session.capabilities.Has(caps.MessageTags) {
|
hasTagsCap := session.capabilities.Has(caps.MessageTags)
|
||||||
|
if histType == history.Tagmsg && hasTagsCap {
|
||||||
session.sendFromClientInternal(false, message.Time, message.Msgid, nickMaskString, accountName, tags, command, tnick)
|
session.sendFromClientInternal(false, message.Time, message.Msgid, nickMaskString, accountName, tags, command, tnick)
|
||||||
} else if histType != history.Tagmsg {
|
} else if histType != history.Tagmsg {
|
||||||
session.sendSplitMsgFromClientInternal(false, nickMaskString, accountName, tags, command, tnick, message)
|
tagsToSend := tags
|
||||||
|
if !hasTagsCap {
|
||||||
|
tagsToSend = nil
|
||||||
|
}
|
||||||
|
session.sendSplitMsgFromClientInternal(false, nickMaskString, accountName, tagsToSend, command, tnick, message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if histType != history.Notice && user.Away() {
|
if histType != history.Notice && user.Away() {
|
||||||
|
Loading…
Reference in New Issue
Block a user