{ /** * 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. */ // prettier-ignore "Setup Slash Command": { "prefix": "slash", "body": [ "slash: true,", "slashOptions: [", "\t$0", "]" ] }, // prettier-ignore "Slash Command User Argument": { "prefix": "user", "body": [ "{", "\tname: 'user',", "\tdescription: 'The user you would like to$1',", "\ttype: 'USER',", "\trequired: $2", "},$0" ] }, // prettier-ignore "Slash Command String Argument": { "prefix": "string", "body": [ "{", "\tname: '$1',", "\tdescription: '$2',", "\ttype: 'STRING',", "\trequired: $3", "},$0" ] }, // prettier-ignore "Slash Command Choice Argument": { "prefix": "choice", "body": [ "{", "\tname: '$1',", "\tdescription: '$2',", "\ttype: 'STRING',", "\tchoices: [", "\t\t{", "\t\t\tname: '$3',", "\t\t\tvalue: '$4'", "\t\t},", "\t],", "\trequired: $5", "},$0" ] }, // prettier-ignore "Slash Boolean Argument": { "prefix": "boolean", "body": [ "{", "\tname: '$1',", "\tdescription: '$2',", "\ttype: 'BOOLEAN',", "\trequired: $3", "},$0" ] }, // prettier-ignore "Command":{ "prefix": "command", "description": "A bot command template", "body": [ "import {", "\tBushCommand,", "\tclientSendAndPermCheck,", "\temojis,", "\ttype ArgType,", "\ttype CommandMessage,", "\ttype OptArgType,", "\ttype SlashMessage", "} from '#lib';", "", "import { ApplicationCommandOptionType } from 'discord.js';", "export default class ${1:CommandName} extends BushCommand {", "\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: (m) => clientSendAndPermCheck(m),", "\t\t\tuserPermissions: []", "\t\t});", "\t}", "", "\tpublic override async exec(", "\t\tmessage: CommandMessage | SlashMessage,", "\t\targs: { ${6:arg}: ArgType<'${10:argType}'>; ${7:arg}: OptArgType<'${16:argType}'> }", "\t) {", "\t\t$0", "\t}", "}", ] } }