Bot: fixed bug where subcommands with no visible commands would show

This commit is contained in:
diamondburned (Forefront) 2020-01-25 22:26:08 -08:00
parent 6255d1d1d5
commit 77729ead48
1 changed files with 20 additions and 15 deletions

View File

@ -154,46 +154,51 @@ func (sub *Subcommand) Help(prefix, indent string, hideAdmin bool) string {
return "" return ""
} }
if len(sub.Commands) == 0 { // The header part:
return "" var header string
}
var subHelp string
if sub.Command != "" { if sub.Command != "" {
subHelp += indent + sub.Command header += indent + sub.Command
} }
if sub.Description != "" { if sub.Description != "" {
if subHelp != "" { if header != "" {
subHelp += ": " header += ": "
} else { } else {
subHelp += indent header += indent
} }
subHelp += sub.Description header += sub.Description
} }
subHelp += "\n" header += "\n"
// The commands part:
var commands = ""
for _, cmd := range sub.Commands { for _, cmd := range sub.Commands {
if cmd.Flag.Is(AdminOnly) && hideAdmin { if cmd.Flag.Is(AdminOnly) && hideAdmin {
continue continue
} }
subHelp += indent + indent + commands += indent + indent +
prefix + sub.Command + " " + cmd.Command prefix + sub.Command + " " + cmd.Command
switch { switch {
case len(cmd.Usage()) > 0: case len(cmd.Usage()) > 0:
subHelp += " " + strings.Join(cmd.Usage(), " ") commands += " " + strings.Join(cmd.Usage(), " ")
case cmd.Description != "": case cmd.Description != "":
subHelp += ": " + cmd.Description commands += ": " + cmd.Description
} }
subHelp += "\n" commands += "\n"
} }
return subHelp if commands == "" {
return ""
}
return header + commands
} }
func (sub *Subcommand) reflectCommands() error { func (sub *Subcommand) reflectCommands() error {