-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
help.coffee
45 lines (40 loc) · 1.28 KB
/
help.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#! ========================================
#! Help
handler = (msg, match, H) ->
tokens = match.input.tokenize()
if /^(?:help|h)/i.test tokens[0]
for fn in H.functions
if fn.regex.test tokens[1]
return msg.channel.send fn.help.long
allHelpList = """
Here’s a list of all my commands. Arguments in `<angle brackets>` \
are required, and those in `[regular brackets]` are optional.
For help for a specific command, use `-h help <command>`.
```asciidoc
=== Commands ===
#{
(fn.help for fn in H.functions)
.filter (x) -> not x.hidden
.map (x) -> x.short
.join '\n'
}
```
"""
msg.channel.send allHelpList
module.exports = {
name: "Help"
regex: /(?:^(?:help|h)(\s+|$))|(?:^\s*$)/i
handler: handler
help:
short: "-h help [...] ::
This list. What did you expect?"
long: """
```asciidoc
=== Help for Help (so meta) ===
*Aliases*: help, h
-h help :: Returns a help menu listing all the commands.
-h help [command] :: Returns a help menu for that specific
command, much like this one.
```
"""
}