Guide discord.js
Commandes Slash

Suppression de Commandes

Cette page est un suivi de déploiement de commande. Pour supprimer des commandes, vous devez d'abord les enregistrer.

Vous avez peut-être décidé que vous n'aviez plus besoin d'une commande et que vous ne vouliez pas confondre vos utilisateurs lorsqu'ils rencontrent une commande supprimée.

Suppression de commandes spécifiques

Pour supprimer une commande spécifique, vous aurez besoin de son ID. Allez à Paramètres du serveur -> Intégrations -> Bots and Apps et choisissez votre bot. Ensuite, cliquez avec le bouton droit sur une commande et cliquez sur Copy ID.

Vous devez avoir le Mode Développeur activé pour que cela s'affiche !

Éditez votre deploy-commands.js comme montré ci-dessous, ou placez-le dans son propre fichier pour le distinguer clairement du workflow de déploiement :

deleteCommands.js
const { REST, Routes } = require('discord.js');
const { clientId, guildId, token } = require('./config.json');

const rest = new REST().setToken(token);

// ...

|// pour les commandes basées sur la guílde
|rest
|	.delete(Routes.applicationGuildCommand(clientId, guildId, 'commandId'))
|	.then(() => console.log('Suppression réussie de la commande de guílde'))
|	.catch(console.error);
|
|// pour les commandes globales
|rest
|	.delete(Routes.applicationCommand(clientId, 'commandId'))
|	.then(() => console.log('Suppression réussie de la commande d\'application'))
|	.catch(console.error);

'commandId' est l'ID de la commande que vous voulez supprimer. Exécutez votre script de déploiement et il supprimera la commande.

Suppression de toutes les commandes

Pour supprimer toutes les commandes dans la portée respective (une guílde, toutes les commandes globales), vous pouvez passer un tableau vide lors de la définition des commandes.

deleteAllCommands
const { REST, Routes } = require('discord.js');
const { clientId, guildId, token } = require('./config.json');

const rest = new REST().setToken(token);

// ...

|// pour les commandes basées sur la guílde
|rest
|	.put(Routes.applicationGuildCommands(clientId, guildId), { body: [] })
|	.then(() => console.log('Suppression réussie de toutes les commandes de guílde.'))
|	.catch(console.error);
|
|// pour les commandes globales
|rest
|	.put(Routes.applicationCommands(clientId), { body: [] })
|	.then(() => console.log('Suppression réussie de toutes les commandes d\'application.'))
|	.catch(console.error);

L'API de Discord ne fournit pas actuellement un moyen facile de supprimer les commandes basées sur la guílde qui se produisent sur plusieurs guíldes de partout à la fois. Chacune aura besoin d'un appel du point de terminaison ci-dessus, en spécifiant la guílde et l'ID de commande respectifs.

Notez que la même commande aura un ID différent, si déployée sur une guílde différente !