Clients without event-playback should receive client-only tags in
replayed PRIVMSG / NOTICE.
This commit is contained in:
Shivaram Lingamneni 2020-11-29 19:06:12 -05:00
parent 0fcaf778e0
commit e18eb1db99
1 changed files with 4 additions and 3 deletions

View File

@ -1050,7 +1050,8 @@ func (client *Client) replayPrivmsgHistory(rb *ResponseBuffer, items []history.I
}
batchID = rb.StartNestedHistoryBatch(target)
allowTags := rb.session.capabilities.Has(caps.EventPlayback)
hasEventPlayback := rb.session.capabilities.Has(caps.EventPlayback)
hasTags := rb.session.capabilities.Has(caps.MessageTags)
for _, item := range items {
var command string
switch item.Type {
@ -1059,7 +1060,7 @@ func (client *Client) replayPrivmsgHistory(rb *ResponseBuffer, items []history.I
case history.Notice:
command = "NOTICE"
case history.Tagmsg:
if allowTags {
if hasEventPlayback && hasTags {
command = "TAGMSG"
} else {
continue
@ -1068,7 +1069,7 @@ func (client *Client) replayPrivmsgHistory(rb *ResponseBuffer, items []history.I
continue
}
var tags map[string]string
if allowTags {
if hasTags {
tags = item.Tags
}
// XXX: Params[0] is the message target. if the source of this message is an in-memory