aboutsummaryrefslogtreecommitdiff
path: root/.vscode/typescript.code-snippets
blob: c4ab25c2a345b3f3bd23b3c9fe08e6fa0c5d043f (plain)
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}",
			"}"
		]
	}
}