API Reference

GlyriaCommand

Le constructeur de commandes slash.

Vue d'ensemble

GlyriaCommand est le constructeur utilisé pour définir des commandes slash Discord. Chaque fichier dans src/commands/ doit exporter une instance de GlyriaCommand par défaut.

export default new GlyriaCommand()
  .setName("ping")
  .setDescription("Pong !")
  .execute(async (ctx) => {
    await ctx.reply({ content: "Pong !" })
  })
GlyriaCommand est disponible globalement — aucun import n'est nécessaire.

GlyriaCommand

Méthodes

MéthodeRetourneDescription
.setName(name)thisDéfinit le nom de la commande
.setDescription(desc)thisDéfinit la description de la commande
.setPermissions(perms)thisRestreint la commande à des permissions spécifiques
.setMetaData(meta)thisAttache des métadonnées personnalisées à la commande
.addStringOption(fn)thisAjoute une option texte
.addBooleanOption(fn)thisAjoute une option booléenne
.addIntegerOption(fn)thisAjoute une option entière
.addNumberOption(fn)thisAjoute une option numérique
.addUserOption(fn)thisAjoute une option utilisateur
.addRoleOption(fn)thisAjoute une option rôle
.addSubCommand(fn)thisAjoute une sous-commande
.addSubCommandGroup(fn)thisAjoute un groupe de sous-commandes
.execute(handler)thisDéfinit le gestionnaire de la commande

.setPermissions()

Restreint la commande aux membres possédant des permissions Discord spécifiques. Accepte un bigint, un number ou une string.

export default new GlyriaCommand()
  .setName("ban")
  .setDescription("Bannir un utilisateur")
  .setPermissions(djs.PermissionsBitField.Flags.BanMembers)
  .execute(async (ctx) => {
    // seuls les membres possédant la permission BanMembers peuvent utiliser ceci
  })

.setMetaData()

Attache des métadonnées personnalisées à la commande. Accepte n'importe quel objet clé-valeur — Glyria les stocke telles quelles et ne les interprète jamais.

export default new GlyriaCommand()
  .setName("ban")
  .setDescription("Bannir un utilisateur")
  .setMetaData({
    category: "moderation",
    cooldown: 5000,
    premium: false,
    guildOnly: true,
  })
  .execute(async (ctx) => {
    // votre logique ici
  })

Les métadonnées sont accessibles à l'exécution via useCommands() :

const commands = useCommands()

// [
//   {
//     name: "ban",
//     description: "Bannir un utilisateur",
//     meta: { category: "moderation", cooldown: 5000, ... }
//   },
//   {
//     name: "ping",
//     description: "Pong !",
//     meta: {}
//   },
// ]
useCommands() est disponible globalement — aucun import n'est nécessaire. Le registre est automatiquement rempli au démarrage du bot.

.execute()

Définit le gestionnaire de la commande. Reçoit une ChatInputCommandInteraction.

export default new GlyriaCommand()
  .setName("ping")
  .setDescription("Pong !")
  .execute(async (ctx) => {
    await ctx.reply({
      content: "Pong !",
      flags: djs.MessageFlags.Ephemeral,
    })
  })

CommandOption

Passé en argument dans chaque callback add*Option.

Méthodes

MéthodeRetourneDescription
.setName(name)thisDéfinit le nom de l'option
.setDescription(desc)thisDéfinit la description de l'option
.setRequired(bool)thisRend l'option obligatoire

Exemple

.addStringOption((option) =>
  option
    .setName("reason")
    .setDescription("Raison du bannissement")
    .setRequired(false)
)

GlyriaSubCommand

Passé en argument dans les callbacks .addSubCommand().

Méthodes

MéthodeRetourneDescription
.setName(name)thisDéfinit le nom de la sous-commande
.setDescription(desc)thisDéfinit la description de la sous-commande
.addStringOption(fn)thisAjoute une option texte
.addBooleanOption(fn)thisAjoute une option booléenne
.addIntegerOption(fn)thisAjoute une option entière
.addNumberOption(fn)thisAjoute une option numérique
.addUserOption(fn)thisAjoute une option utilisateur
.addRoleOption(fn)thisAjoute une option rôle
.execute(handler)thisDéfinit le gestionnaire de la sous-commande

Exemple

.addSubCommand((cmd) =>
  cmd
    .setName("ban")
    .setDescription("Bannir un utilisateur")
    .addUserOption((option) =>
      option
        .setName("user")
        .setDescription("Utilisateur à bannir")
        .setRequired(true)
    )
    .execute(async (ctx) => {
      await ctx.reply({
        content: "Utilisateur banni.",
        flags: djs.MessageFlags.Ephemeral,
      })
    })
)

GlyriaSubCommandGroup

Passé en argument dans les callbacks .addSubCommandGroup().

Méthodes

MéthodeRetourneDescription
.setName(name)thisDéfinit le nom du groupe
.setDescription(desc)thisDéfinit la description du groupe
.addSubCommand(fn)thisAjoute une sous-commande au groupe

Exemple

.addSubCommandGroup((group) =>
  group
    .setName("config")
    .setDescription("Commandes de configuration")
    .addSubCommand((cmd) =>
      cmd
        .setName("logs")
        .setDescription("Configurer les logs")
        .addBooleanOption((option) =>
          option
            .setName("enabled")
            .setDescription("Activer les logs")
            .setRequired(true)
        )
        .execute(async (ctx) => {
          await ctx.reply({
            content: "Configuration des logs mise à jour.",
            flags: djs.MessageFlags.Ephemeral,
          })
        })
    )
)
Copyright © 2026