Aller au contenu principal

🖲️ Commandes

Une commande commence par un préfixe (par défaut : +) ou par un / (pour les slash commands).

Nous allons créer une simple commande qui donne des informations à propos d'elle même. Pour commencer, il faudra créer la commande dans ./sources/modules/<module_name>/commands (remplacez <module_name> par le nom de votre module). Dans cet exemple, on va appeler la commande itself donc créons le fichier ./sources/modules/<module_name>/commands/itself.js et ajoutons ce code :

const { SlashCommandBuilder } = require("discord.js");

async function parse(interaction, cmd, args)
{
if (interaction.options)
{
// Slash command (/itselt)
await interaction.reply(
"🖲️ **Command type:**\n- slash command\n"+
`📇 **Command Name:**\n- ${cmd}\n`+
`🔢 **Number of arguments:**\n- ${args.length}\n`+
`✍️ **Requested by:**\n- ${interaction.member.user.username}\n`
);
}
else
{
// Classic command (+itselt)
await interaction.channel.send(
"🖲️ **Command type:**\n- classic command"+
`📇 **Command Name:**\n- ${cmd}\n`+
`🔢 **Number of arguments:**\n- ${args.length}\n`+
`✍️ **Requested by:**\n- ${interaction.member.user.username}\n`
);
}
}

module.exports = {
parse,
name: "itself",
permissions: [],
builder: new SlashCommandBuilder()
.setName("itself")
.setDescription("I give informations about myselft."),
any_guild: false,
dm: false
}

La méthode parse est exécutée par le système quand un message est envoyé et qu'il commence par le préfixe du bot (par défaut +) ou quand une slash command est exécutée.

async function parse(interaction, cmd, args)

Comme vous pouvez le voir, on a 3 arguments :

  • interaction → correpondant Ă  l'Ă©vènement (MessageCreate, or InteractionCommand)
  • cmd → nom de la commande
  • args → correspond Ă  tous les Ă©lĂ©ments qui suivent le nom de la commande dans les commandes classiques (voir exemple ci-dessous).

⎯ exemple d'arguments

+itself arg1 arg2

⎯ Exportation

En bas du fichier, nous avons l'exportation (exports), qui inclu plusieurs éléments importants.

module.exports = {
parse,
name: "itself",
permissions: [],
builder: new SlashCommandBuilder()
.setName("itself")
.setDescription("I give informations about myselft."),
any_guild: false,
dm: false
}
  • parse → mĂ©thode qui gère la commande
  • name → nom de la commande
  • permissions → liste des mĂ©thodes pour vĂ©rifier si interaction.member a les bonnes permissions
  • builder → un SlashCommandBuilder
  • any_guild → si false, la commande ne pourra ĂŞtre exĂ©cutĂ©e que sur le serveur principal
  • dm → si true, vous pourrez utiliser la commande mĂŞme en messages privĂ©s