|
@@ -261,6 +261,13 @@ func (channel *Channel) ProcessAccountToUmodeChange(client *Client, change modes
|
261
|
261
|
return l == r || umodeGreaterThan(l, r)
|
262
|
262
|
}
|
263
|
263
|
|
|
264
|
+ changed := false
|
|
265
|
+ defer func() {
|
|
266
|
+ if changed {
|
|
267
|
+ channel.MarkDirty(IncludeLists)
|
|
268
|
+ }
|
|
269
|
+ }()
|
|
270
|
+
|
264
|
271
|
account := client.Account()
|
265
|
272
|
isOperChange := client.HasRoleCapabs("chanreg")
|
266
|
273
|
|
|
@@ -290,14 +297,14 @@ func (channel *Channel) ProcessAccountToUmodeChange(client *Client, change modes
|
290
|
297
|
case modes.Add:
|
291
|
298
|
if targetModeNow != targetModeAfter {
|
292
|
299
|
channel.accountToUMode[change.Arg] = change.Mode
|
293
|
|
- channel.MarkDirty(IncludeLists)
|
|
300
|
+ changed = true
|
294
|
301
|
return []modes.ModeChange{change}, nil
|
295
|
302
|
}
|
296
|
303
|
return nil, nil
|
297
|
304
|
case modes.Remove:
|
298
|
305
|
if targetModeNow == change.Mode {
|
299
|
306
|
delete(channel.accountToUMode, change.Arg)
|
300
|
|
- channel.MarkDirty(IncludeLists)
|
|
307
|
+ changed = true
|
301
|
308
|
return []modes.ModeChange{change}, nil
|
302
|
309
|
}
|
303
|
310
|
return nil, nil
|