forked from External/ergo
Support STATUSMSG
This commit is contained in:
parent
d9db688963
commit
517893065b
4 changed files with 84 additions and 23 deletions
44
irc/modes.go
44
irc/modes.go
|
|
@ -156,12 +156,6 @@ var (
|
|||
)
|
||||
|
||||
const (
|
||||
ChannelFounder ChannelMode = 'q' // arg
|
||||
ChannelAdmin ChannelMode = 'a' // arg
|
||||
ChannelOperator ChannelMode = 'o' // arg
|
||||
Halfop ChannelMode = 'h' // arg
|
||||
Voice ChannelMode = 'v' // arg
|
||||
|
||||
BanMask ChannelMode = 'b' // arg
|
||||
ExceptMask ChannelMode = 'e' // arg
|
||||
InviteMask ChannelMode = 'I' // arg
|
||||
|
|
@ -175,6 +169,12 @@ const (
|
|||
)
|
||||
|
||||
var (
|
||||
ChannelFounder ChannelMode = 'q' // arg
|
||||
ChannelAdmin ChannelMode = 'a' // arg
|
||||
ChannelOperator ChannelMode = 'o' // arg
|
||||
Halfop ChannelMode = 'h' // arg
|
||||
Voice ChannelMode = 'v' // arg
|
||||
|
||||
SupportedChannelModes = ChannelModes{
|
||||
BanMask, ExceptMask, InviteMask, InviteOnly, Key, NoOutside,
|
||||
OpOnlyTopic, Secret, UserLimit,
|
||||
|
|
@ -201,6 +201,38 @@ var (
|
|||
}
|
||||
)
|
||||
|
||||
// SplitChannelMembershipPrefixes takes a target and returns the prefixes on it, then the name.
|
||||
func SplitChannelMembershipPrefixes(target string) (prefixes string, name string) {
|
||||
name = target
|
||||
for {
|
||||
if len(name) == 0 || strings.Contains("~&@%+", string(name[0])) {
|
||||
prefixes += string(name[0])
|
||||
name = name[1:]
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return prefixes, name
|
||||
}
|
||||
|
||||
// GetLowestChannelModePrefix returns the lowest channel prefix mode out of the given prefixes.
|
||||
func GetLowestChannelModePrefix(prefixes string) *ChannelMode {
|
||||
var lowest *ChannelMode
|
||||
|
||||
if strings.Contains(prefixes, "+") {
|
||||
lowest = &Voice
|
||||
} else {
|
||||
for i, mode := range ChannelPrivModes {
|
||||
if strings.Contains(prefixes, ChannelModePrefixes[mode]) {
|
||||
lowest = &ChannelPrivModes[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return lowest
|
||||
}
|
||||
|
||||
//
|
||||
// commands
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue