|
@@ -33,8 +33,7 @@ func ApplyUserModeChanges(client *Client, changes modes.ModeChanges, force bool,
|
33
|
33
|
applied := make(modes.ModeChanges, 0)
|
34
|
34
|
|
35
|
35
|
for _, change := range changes {
|
36
|
|
- switch change.Mode {
|
37
|
|
- case modes.Bot, modes.Invisible, modes.WallOps, modes.UserRoleplaying, modes.Operator, modes.LocalOperator, modes.RegisteredOnly, modes.UserNoCTCP:
|
|
36
|
+ if change.Mode != modes.ServerNotice {
|
38
|
37
|
switch change.Op {
|
39
|
38
|
case modes.Add:
|
40
|
39
|
if (change.Mode == modes.Operator || change.Mode == modes.LocalOperator) && !(force && oper != nil) {
|
|
@@ -73,8 +72,8 @@ func ApplyUserModeChanges(client *Client, changes modes.ModeChanges, force bool,
|
73
|
72
|
}
|
74
|
73
|
}
|
75
|
74
|
}
|
76
|
|
-
|
77
|
|
- case modes.ServerNotice:
|
|
75
|
+ } else {
|
|
76
|
+ // server notices are weird
|
78
|
77
|
if !client.HasMode(modes.Operator) {
|
79
|
78
|
continue
|
80
|
79
|
}
|
|
@@ -98,8 +97,6 @@ func ApplyUserModeChanges(client *Client, changes modes.ModeChanges, force bool,
|
98
|
97
|
applied = append(applied, change)
|
99
|
98
|
}
|
100
|
99
|
}
|
101
|
|
-
|
102
|
|
- // can't do anything to TLS mode
|
103
|
100
|
}
|
104
|
101
|
|
105
|
102
|
if len(applied) != 0 {
|
|
@@ -271,15 +268,6 @@ func (channel *Channel) ApplyChannelModeChanges(client *Client, isSamode bool, c
|
271
|
268
|
applied = append(applied, change)
|
272
|
269
|
}
|
273
|
270
|
|
274
|
|
- case modes.InviteOnly, modes.Moderated, modes.NoOutside, modes.OpOnlyTopic, modes.RegisteredOnly, modes.Secret, modes.ChanRoleplaying, modes.NoCTCP, modes.RegisteredOnlySpeak:
|
275
|
|
- if change.Op == modes.List {
|
276
|
|
- continue
|
277
|
|
- }
|
278
|
|
-
|
279
|
|
- if channel.flags.SetMode(change.Mode, change.Op == modes.Add) {
|
280
|
|
- applied = append(applied, change)
|
281
|
|
- }
|
282
|
|
-
|
283
|
271
|
case modes.ChannelFounder, modes.ChannelAdmin, modes.ChannelOperator, modes.Halfop, modes.Voice:
|
284
|
272
|
if change.Op == modes.List {
|
285
|
273
|
continue
|
|
@@ -295,6 +283,16 @@ func (channel *Channel) ApplyChannelModeChanges(client *Client, isSamode bool, c
|
295
|
283
|
if success {
|
296
|
284
|
applied = append(applied, change)
|
297
|
285
|
}
|
|
286
|
+
|
|
287
|
+ default:
|
|
288
|
+ // all channel modes with no args, e.g., InviteOnly, Secret
|
|
289
|
+ if change.Op == modes.List {
|
|
290
|
+ continue
|
|
291
|
+ }
|
|
292
|
+
|
|
293
|
+ if channel.flags.SetMode(change.Mode, change.Op == modes.Add) {
|
|
294
|
+ applied = append(applied, change)
|
|
295
|
+ }
|
298
|
296
|
}
|
299
|
297
|
}
|
300
|
298
|
|