Discord.Short allows an easier method of creating slash commands!
When writing a slash command, its very similar to a normal command.
Lets start by creating a slash command, this is what one would normally look like:
newds.Command({ name:'help', description:'Need Help?',// required in a slash command slash:true,// making this command into a slash command guild:'839993561280938035',// optionalasyncexecute({arguments}) {// args }});
where you see arguments, you can add any of these arguments:
interaction - the actual interaction coming from the command
channel - the channel the command was used in
guild - the server the command was used in
author - the user who used the command
args[] - the arguments after the command
send() - sending a message in the channel where the command was executed
so lets add a reply, ill be requiring MessageEmbed from discord.js
const { MessageEmbed } = Discord;newds.Command({ name:'help', description:'Need Help?', setSlash:true, guild:'839993561280938035',asyncexecute({send, author}) {send('Showing Help Embed:');send(newMessageEmbed({ title:`Hi, ${author.username}`, description:'This is an example bot for discord.short, an npm package\n> [[Package Link]](https://www.npmjs.com/package/discord.short)', footer: { text:'Downloading Discord.Short will make it easier to make discord bots, like this one!' }, color:'BLUE' })); }});// you can't use MessageEmbeds in slash command replies
Overall, the file will look something like this:
example.js
constDiscord=require('discord.short');constds=newDiscord.Client('example');const { MessageEmbed } = Discord;ds.login({"botToken":"token","mongo": {"username":"ephf","password":"password","cluster":"example.example""database": "example" },"heroku": {"name":"example" }});newds.Command({ name:'help', description:'Need Help?', slash:true, guild:'839993561280938035',asyncexecute({send, author}) {send('Showing Help Embed:');send(newMessageEmbed({ title:`Hi, ${author.username}`, description:'This is an example bot for discord.short, an npm package\n> [[Package Link]](https://www.npmjs.com/package/discord.short)', footer: { text:'Downloading Discord.Short will make it easier to make discord bots, like this one!' }, color:'BLUE' })); }});
again, we can run the bot using node
$nodeexample.js
now, you can see the command on the / list:
and when we run it, we get this:
Just like when you create normal commands, you can use arguments. But this is a bit different and required two more parameters:
newds.Command({ name:'add1', description:'Add 1 to any number!', slash:true, guild:'839993561280938035', arguments: [ { name:'number', description:'the number you are adding 1 to', required:true, type:'number' } ],asyncexecute({send, args}) {send(`Answer: ${args[0] +1}`); }});
Then, when we run this in discord, we will get this:
You can set a command to a slash command and a normal command by changing the slash parameter to be "both"