{ /** * 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}", "}" ] } }