Ton premier module en code

Mode code

Un module en code est un fichier JavaScript. Tu y enregistres des fonctions qu’Opale appelle quand quelque chose arrive : une commande, un clic, un événement du serveur…

1. Créer le module

Dans Studio › Modules, Nouveau module, puis En code. L’éditeur s’ouvre avec un exemple : une commande /bonjour déjà déclarée.

2. Une première commande

JavaScript
module.command('bonjour', async (ctx) => {
  await ctx.reply(`Salut ${ctx.member.name} !`);
});
  • module.command(nom, fonction) enregistre ce qui se passe quand quelqu’un tape /bonjour.
  • La fonction reçoit ctx, le contexte : qui a tapé la commande (ctx.member), sur quel serveur (ctx.server), et toutes les actions possibles (ctx.reply, ctx.send…).
  • ctx.reply répond au membre, visible par lui seul.

3. Déclarer la commande

Une commande doit être déclarée pour que Discord la connaisse. Si le code utilise une commande non déclarée, l’éditeur la souligne et le bouton Déclarer apparaît au-dessus du code : un clic suffit. Tu peux ensuite lui donner une description et des options dans l’onglet Commandes et listes.

4. Ajouter un bouton et une mémoire

JavaScript
module.command('compteur', async (ctx) => {
  const total = (await ctx.storage.get('clics')) ?? 0;
  await ctx.reply({
    text: 'Le bouton a été cliqué ' + total + ' fois.',
    buttons: [{ id: 'cliquer', label: 'Cliquer', style: 'primary' }],
  });
});

module.button('cliquer', async (ctx) => {
  const total = await ctx.storage.increment('clics');
  await ctx.edit({
    text: 'Le bouton a été cliqué ' + total + ' fois.',
    buttons: [{ id: 'cliquer', label: 'Cliquer', style: 'primary' }],
  });
});
  • ctx.storage garde des valeurs propres au serveur, même après un redémarrage d’Opale.
  • module.button(id, fonction) répond au clic sur le bouton dont l’identifiant est cliquer.
  • ctx.edit modifie le message du bouton cliqué.

5. Tester et publier

Tester (Ctrl + Entrée) exécute ton code pour de vrai dans le bac à sable, sur un faux serveur. Le panneau Vérification sous l’éditeur liste les erreurs (constructions interdites, commandes non déclarées…) et chaque ligne ramène au bon endroit. Publier crée la version.

RaccourciAction
Ctrl + SEnregistrer
Ctrl + EntréeTester
Ctrl + Maj + FPlein écran
Ctrl + BAfficher ou masquer la boîte à outils
Ctrl + EspaceSuggestions

Et ensuite ?

Ton premier module en code · Documentation Opale