forked from External/ergo
Call ApplyUserModeChanges for default user modes.
This ensures that counts like the number of invisible users are updated correctly.
This commit is contained in:
parent
93f1e5b5b8
commit
d5cec62df3
4 changed files with 24 additions and 31 deletions
31
irc/modes.go
31
irc/modes.go
|
|
@ -23,7 +23,7 @@ var (
|
|||
|
||||
// DefaultUserModes are set on all users when they login.
|
||||
// this can be overridden in the `accounts` config, with the `default-user-modes` key
|
||||
DefaultUserModes = modes.Modes{}
|
||||
DefaultUserModes = modes.ModeChanges{}
|
||||
)
|
||||
|
||||
// ApplyUserModeChanges applies the given changes, and returns the applied changes.
|
||||
|
|
@ -106,35 +106,32 @@ func ApplyUserModeChanges(client *Client, changes modes.ModeChanges, force bool,
|
|||
return applied
|
||||
}
|
||||
|
||||
// parseDefaultModes uses the provided mode change parser to parse the rawModes.
|
||||
func parseDefaultModes(rawModes string, parser func(params ...string) (modes.ModeChanges, map[rune]bool)) modes.Modes {
|
||||
modeChangeStrings := strings.Fields(rawModes)
|
||||
modeChanges, _ := parser(modeChangeStrings...)
|
||||
defaultModes := make(modes.Modes, 0)
|
||||
for _, modeChange := range modeChanges {
|
||||
if modeChange.Op == modes.Add {
|
||||
defaultModes = append(defaultModes, modeChange.Mode)
|
||||
}
|
||||
}
|
||||
return defaultModes
|
||||
}
|
||||
|
||||
// ParseDefaultChannelModes parses the `default-modes` line of the config
|
||||
func ParseDefaultChannelModes(rawModes *string) modes.Modes {
|
||||
if rawModes == nil {
|
||||
// not present in config, fall back to compile-time default
|
||||
return DefaultChannelModes
|
||||
}
|
||||
return parseDefaultModes(*rawModes, modes.ParseChannelModeChanges)
|
||||
modeChangeStrings := strings.Fields(*rawModes)
|
||||
modeChanges, _ := modes.ParseChannelModeChanges(modeChangeStrings...)
|
||||
defaultChannelModes := make(modes.Modes, 0)
|
||||
for _, modeChange := range modeChanges {
|
||||
if modeChange.Op == modes.Add {
|
||||
defaultChannelModes = append(defaultChannelModes, modeChange.Mode)
|
||||
}
|
||||
}
|
||||
return defaultChannelModes
|
||||
}
|
||||
|
||||
// ParseDefaultUserModes parses the `default-user-modes` line of the config
|
||||
func ParseDefaultUserModes(rawModes *string) modes.Modes {
|
||||
func ParseDefaultUserModes(rawModes *string) modes.ModeChanges {
|
||||
if rawModes == nil {
|
||||
// not present in config, fall back to compile-time default
|
||||
return DefaultUserModes
|
||||
}
|
||||
return parseDefaultModes(*rawModes, modes.ParseUserModeChanges)
|
||||
modeChangeStrings := strings.Fields(*rawModes)
|
||||
modeChanges, _ := modes.ParseUserModeChanges(modeChangeStrings...)
|
||||
return modeChanges
|
||||
}
|
||||
|
||||
// ApplyChannelModeChanges applies a given set of mode changes.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue