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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
{
/**
* Place your snippets for typescript here. Each snippet is defined under a snippet name and has a prefix, body and
* description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
* $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
* same ids are connected.
*/
"Command": {
"prefix": "command",
"description": "A bot command template",
"body": [
"import {",
"\tBotCommand,",
"\tclientSendAndPermCheck,",
"\temojis,",
"\ttype ArgType,",
"\ttype CommandMessage,",
"\ttype OptArgType,",
"\ttype SlashMessage",
"} from '#lib';",
"",
"import { ApplicationCommandOptionType } from 'discord.js';",
"export default class ${1:CommandName} extends BotCommand {",
"\tpublic constructor() {",
"\t\tsuper('${2:commandId}', {",
"\t\t\taliases: ['${3:alias}'],",
"\t\t\tcategory: '${4:category}',",
"\t\t\tdescription: '${5:description}.',",
"\t\t\tusage: ['${3:alias} <${6:arg}> [${7:arg}]'],",
"\t\t\texamples: ['${3:alias} ${8:argExample} ${9:argExample}'],",
"\t\t\targs: [",
"\t\t\t\t{",
"\t\t\t\t\tid: '${6:arg}',",
"\t\t\t\t\tdescription: '${10:Argument description}.',",
"\t\t\t\t\ttype: '${11:argType}',",
"\t\t\t\t\tprompt: '${12:What is arg}?',",
"\t\t\t\t\tretry: '{error} ${13:Invalid arg}.',",
"\t\t\t\t\toptional: ${14|true,false|},",
"\t\t\t\t\tslashType: ApplicationCommandOptionType.${15|Subcommand,SubcommandGroup,String,Integer,Boolean,User,Channel,Role,Mentionable,Number,Attachment|}",
"\t\t\t\t},",
"\t\t\t\t{",
"\t\t\t\t\tid: '${7:arg}',",
"\t\t\t\t\tdescription: '${16:Argument description}.',",
"\t\t\t\t\ttype: '${17:argType}',",
"\t\t\t\t\tprompt: '${18:What is arg}?',",
"\t\t\t\t\tretry: '{error} ${19:Invalid arg}.',",
"\t\t\t\t\toptional: ${20|true,false|},",
"\t\t\t\t\tslashType: ApplicationCommandOptionType.${21|Subcommand,SubcommandGroup,String,Integer,Boolean,User,Channel,Role,Mentionable,Number,Attachment|}",
"\t\t\t\t}",
"\t\t\t],",
"\t\t\tslash: ${22|true,false|},",
"\t\t\tchannel: '${23|guild,dm|}',",
"\t\t\tclientPermissions: [],",
"\t\t\tuserPermissions: []",
"\t\t});",
"\t}",
"",
"\tpublic override async exec(",
"\t\tmessage: CommandMessage | SlashMessage,",
"\t\targs: { ${6:arg}: ArgType<'${11:argType}'>; ${7:arg}: OptArgType<'${17:argType}'> }",
"\t) {",
"\t\t$0",
"\t}",
"}"
]
}
}
|