You can use the regular discord.js
, by now its v12.5.1
.
This is just a sample, but worked for me.
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
client.api.applications(client.user.id).guilds(YOUR_GUILD_ID_HERE).commands.post({
data: {
name: "hello",
description: "hello world command"
// possible options here e.g. options: [{...}]
}
});
client.ws.on('INTERACTION_CREATE', async interaction => {
const command = interaction.data.name.toLowerCase();
const args = interaction.data.options;
if (command === 'hello'){
// here you could do anything. in this sample
// i reply with an api interaction
client.api.interactions(interaction.id, interaction.token).callback.post({
data: {
type: 4,
data: {
content: "hello world!!!"
}
}
})
}
});
});
client.login(token);
Of course you can have options, see documentation...
IDE won't register the new code...at least my php storm currently does'nt :)
However, its important to give the bot the correct permissions to use this type of command!
So go to Discord.com/developers, select your application, go to OAuth2
and select
application.commands
from the scope section. This should be at the bottom of the middle column. You should select bot
as well and under Bot Permissions
you set some other specific permissions. Then use that new invite link to reinvite the bot.
Without application.commands
permission, the command won't work and you will receive some error like Missing Access
or some similar.
IMPORTANT THINGS
Use .guilds('11231...').comma
to test these commands. When not using this, it takes round about 1h to get active. Using it will activate it immediately.
Give the bot the correct permission. application.commands
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…