3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-12-23 11:12:44 +01:00

Fix #1911 +s channels don't appear in /list even though on the channel (#1923)

* Fix #1911 +s channels don't appear in /list even though on the channel

* use channel.HasClient instead of custom iterative checker
This commit is contained in:
William Rehwinkel 2022-02-28 20:31:16 -05:00 committed by GitHub
parent 99294b8968
commit 4010f3fc02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1683,7 +1683,7 @@ func listHandler(server *Server, client *Client, msg ircmsg.Message, rb *Respons
clientIsOp := client.HasRoleCapabs("sajoin")
if len(channels) == 0 {
for _, channel := range server.channels.Channels() {
if !clientIsOp && channel.flags.HasMode(modes.Secret) {
if !clientIsOp && channel.flags.HasMode(modes.Secret) && !channel.hasClient(client) {
continue
}
if matcher.Matches(channel) {
@ -1698,7 +1698,7 @@ func listHandler(server *Server, client *Client, msg ircmsg.Message, rb *Respons
for _, chname := range channels {
channel := server.channels.Get(chname)
if channel == nil || (!clientIsOp && channel.flags.HasMode(modes.Secret)) {
if channel == nil || (!clientIsOp && channel.flags.HasMode(modes.Secret) && !channel.hasClient(client)) {
if len(chname) > 0 {
rb.Add(nil, server.name, ERR_NOSUCHCHANNEL, client.nick, utils.SafeErrorParam(chname), client.t("No such channel"))
}