|
@@ -139,15 +139,15 @@ func zncPlaybackPlayHandler(client *Client, command string, params []string, rb
|
139
|
139
|
// 3.3 When the client sends a subsequent redundant JOIN line for those
|
140
|
140
|
// channels; redundant JOIN is a complete no-op so we won't replay twice
|
141
|
141
|
|
|
142
|
+ playPrivmsgs := false
|
142
|
143
|
if params[1] == "*" {
|
143
|
|
- zncPlayPrivmsgs(client, rb, "*", start, end)
|
144
|
|
- } else if params[1] == "*self" {
|
145
|
|
- zncPlayPrivmsgs(client, rb, "*", start, end)
|
146
|
|
- targets = make(StringSet) // XXX non-nil but empty channel set means "no channels"
|
|
144
|
+ playPrivmsgs = true // XXX nil `targets` means "every channel"
|
147
|
145
|
} else {
|
148
|
146
|
targets = make(StringSet)
|
149
|
147
|
for _, targetName := range strings.Split(targetString, ",") {
|
150
|
|
- if strings.HasPrefix(targetName, "#") {
|
|
148
|
+ if targetName == "*self" {
|
|
149
|
+ playPrivmsgs = true
|
|
150
|
+ } else if strings.HasPrefix(targetName, "#") {
|
151
|
151
|
if cfTarget, err := CasefoldChannel(targetName); err == nil {
|
152
|
152
|
targets.Add(cfTarget)
|
153
|
153
|
}
|
|
@@ -159,6 +159,10 @@ func zncPlaybackPlayHandler(client *Client, command string, params []string, rb
|
159
|
159
|
}
|
160
|
160
|
}
|
161
|
161
|
|
|
162
|
+ if playPrivmsgs {
|
|
163
|
+ zncPlayPrivmsgs(client, rb, "*", start, end)
|
|
164
|
+ }
|
|
165
|
+
|
162
|
166
|
rb.session.zncPlaybackTimes = &zncPlaybackTimes{
|
163
|
167
|
start: start,
|
164
|
168
|
end: end,
|