mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-10 22:19:31 +01:00
parent
6b51bd6f15
commit
521d5bf50f
@ -476,7 +476,7 @@ To unset this mode:
|
||||
|
||||
### +s - Secret
|
||||
|
||||
If this mode is set, it means that your channel should be marked as 'secret'. Your channel won't show up in `/LIST` or `/WHOIS`.
|
||||
If this mode is set, it means that your channel should be marked as 'secret'. Your channel won't show up in `/LIST` or `/WHOIS`, and non-members won't be able to see its members with `/NAMES` or `/WHO`.
|
||||
|
||||
To set this mode:
|
||||
|
||||
|
@ -1954,17 +1954,20 @@ func namesHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
|
||||
// TODO: in a post-federation world, process `target` (server to forward request to)
|
||||
|
||||
if len(channels) == 0 {
|
||||
for _, channel := range server.channels.Channels() {
|
||||
channel.Names(client, rb)
|
||||
}
|
||||
rb.Add(nil, server.name, RPL_ENDOFNAMES, client.Nick(), "*", client.t("End of NAMES list"))
|
||||
return false
|
||||
}
|
||||
|
||||
for _, chname := range channels {
|
||||
success := false
|
||||
channel := server.channels.Get(chname)
|
||||
if channel != nil {
|
||||
if !channel.flags.HasMode(modes.Secret) || channel.hasClient(client) || client.HasMode(modes.Operator) {
|
||||
channel.Names(client, rb)
|
||||
} else if chname != "" {
|
||||
success = true
|
||||
}
|
||||
}
|
||||
if !success { // channel.Names() sends this numeric itself on success
|
||||
rb.Add(nil, server.name, RPL_ENDOFNAMES, client.Nick(), chname, client.t("End of NAMES list"))
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user