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:
new ds.Command({
name: 'help',
description: 'Need Help?', // required in a slash command
slash: true, // making this command into a slash command
guild: '839993561280938035', // optional
async execute({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;
new ds.Command({
name: 'help',
description: 'Need Help?',
setSlash: true,
guild: '839993561280938035',
async execute({send, author}) {
send('Showing Help Embed:');
send(new MessageEmbed({
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
const Discord = require('discord.short');
const ds = new Discord.Client('example');
const { MessageEmbed } = Discord;
ds.login({
"botToken": "token",
"mongo": {
"username": "ephf",
"password": "password",
"cluster": "example.example"
"database": "example"
},
"heroku": {
"name": "example"
}
});
new ds.Command({
name: 'help',
description: 'Need Help?',
slash: true,
guild: '839993561280938035',
async execute({send, author}) {
send('Showing Help Embed:');
send(new MessageEmbed({
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
$ node example.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:
new ds.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'
}
],
async execute({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"