summaryrefslogtreecommitdiff
path: root/modules/commands/cs_list.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/commands/cs_list.cpp')
-rw-r--r--modules/commands/cs_list.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/modules/commands/cs_list.cpp b/modules/commands/cs_list.cpp
index 779745b96..ffaea6172 100644
--- a/modules/commands/cs_list.cpp
+++ b/modules/commands/cs_list.cpp
@@ -81,11 +81,18 @@ class CommandCSList : public Command
{
const ChannelInfo *ci = it->second;
- if (!is_servadmin && (ci->HasExt("CS_PRIVATE") || ci->HasExt("CS_SUSPENDED")))
- continue;
- else if (suspended && !ci->HasExt("CS_SUSPENDED"))
+ if (!is_servadmin)
+ {
+ if (ci->HasExt("CS_PRIVATE") || ci->HasExt("CS_SUSPENDED"))
+ continue;
+ if (ci->c && ci->c->HasMode("SECRET"))
+ continue;
+ }
+
+ if (suspended && !ci->HasExt("CS_SUSPENDED"))
continue;
- else if (channoexpire && !ci->HasExt("CS_NO_EXPIRE"))
+
+ if (channoexpire && !ci->HasExt("CS_NO_EXPIRE"))
continue;
if (pattern.equals_ci(ci->name) || ci->name.equals_ci(spattern) || Anope::Match(ci->name, pattern, false, true) || Anope::Match(ci->name, spattern, false, true))