forked from External/ergo
fix #644
This commit is contained in:
parent
cddc51d6cf
commit
332f0d8d91
9 changed files with 166 additions and 98 deletions
18
irc/modes.go
18
irc/modes.go
|
|
@ -158,12 +158,7 @@ func (channel *Channel) ApplyChannelModeChanges(client *Client, isSamode bool, c
|
|||
continue
|
||||
}
|
||||
|
||||
// confirm mask looks valid
|
||||
mask, err := Casefold(change.Arg)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
mask := change.Arg
|
||||
switch change.Op {
|
||||
case modes.Add:
|
||||
if channel.lists[change.Mode].Length() >= client.server.Config().Limits.ChanListModes {
|
||||
|
|
@ -174,12 +169,15 @@ func (channel *Channel) ApplyChannelModeChanges(client *Client, isSamode bool, c
|
|||
continue
|
||||
}
|
||||
|
||||
channel.lists[change.Mode].Add(mask)
|
||||
applied = append(applied, change)
|
||||
details := client.Details()
|
||||
if success := channel.lists[change.Mode].Add(mask, details.nickMask, details.accountName); success {
|
||||
applied = append(applied, change)
|
||||
}
|
||||
|
||||
case modes.Remove:
|
||||
channel.lists[change.Mode].Remove(mask)
|
||||
applied = append(applied, change)
|
||||
if success := channel.lists[change.Mode].Remove(mask); success {
|
||||
applied = append(applied, change)
|
||||
}
|
||||
}
|
||||
|
||||
case modes.UserLimit:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue