diff options
Diffstat (limited to 'modules/commands/help.cpp')
-rw-r--r-- | modules/commands/help.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/modules/commands/help.cpp b/modules/commands/help.cpp index 28bf963a8..de80a6ec1 100644 --- a/modules/commands/help.cpp +++ b/modules/commands/help.cpp @@ -48,11 +48,16 @@ class CommandHelp : public Command service_reference<Command> c("Command", info.name); if (!c) continue; - if (!Config->HidePrivilegedCommands || info.permission.empty() || source.HasCommand(info.permission)) - { - source.command = c_name; - c->OnServHelp(source); - } + else if (!Config->HidePrivilegedCommands) + ; // Always show with HidePrivilegedCommands disabled + else if (!c->HasFlag(CFLAG_ALLOW_UNREGISTERED) && !source.GetAccount()) + continue; + else if (!info.permission.empty() && !source.HasCommand(info.permission)) + continue; + + source.command = c_name; + c->OnServHelp(source); + } } else @@ -74,9 +79,12 @@ class CommandHelp : public Command service_reference<Command> c("Command", info.name); if (!c) continue; - - if (Config->HidePrivilegedCommands && !info.permission.empty() && !source.HasCommand(info.permission)) + else if (!Config->HidePrivilegedCommands) + ; // Always show with HidePrivilegedCommands disabled + else if (!info.permission.empty() && !source.HasCommand(info.permission)) continue; + + // Allow unregistered users to see help for commands that they explicitly request help for const Anope::string &subcommand = params.size() > max ? params[max] : ""; source.command = full_command; |