Examples

Commandes

Créez et organisez des commandes slash avec glyria.js.

Commande de base

Créez un fichier dans src/commands/ — il sera automatiquement chargé et enregistré sur Discord.

// src/commands/ping.ts
export default GlyriaCommand()
  .setName("ping")
  .setDescription("Pong!")
  .execute(async (ctx) => {
    await ctx.reply({ content: "Pong!" })
  })

Commande avec options

// src/commands/hello.ts
export default GlyriaCommand()
  .setName("hello")
  .setDescription("Dire bonjour à quelqu'un")
  .addUserOption((option) =>
    option
      .setName("user")
      .setDescription("L'utilisateur à saluer")
      .setRequired(true)
  )
  .addStringOption((option) =>
    option
      .setName("message")
      .setDescription("Un message personnalisé")
      .setRequired(false)
  )
  .execute(async (ctx) => {
    await ctx.reply({ content: "Bonjour !" })
  })

Types d'options disponibles

MéthodeType Discord
addStringOptionString
addIntegerOptionInteger
addNumberOptionNumber
addBooleanOptionBoolean
addUserOptionUser
addRoleOptionRole

Sous-commandes

// src/commands/moderation.ts
export default GlyriaCommand()
  .setName("moderation")
  .setDescription("Commandes de modération")
  .addSubCommand((cmd) =>
    cmd
      .setName("ban")
      .setDescription("Bannir un utilisateur")
      .addUserOption((option) =>
        option.setName("user").setDescription("Utilisateur à bannir").setRequired(true)
      )
      .addStringOption((option) =>
        option.setName("reason").setDescription("Raison du bannissement")
      )
      .execute(async (ctx) => {
        // gérer le bannissement
      })
  )
  .addSubCommand((cmd) =>
    cmd
      .setName("kick")
      .setDescription("Expulser un utilisateur")
      .addUserOption((option) =>
        option.setName("user").setDescription("Utilisateur à expulser").setRequired(true)
      )
      .execute(async (ctx) => {
        // gérer l'expulsion
      })
  )

Groupes de sous-commandes

export default GlyriaCommand()
  .setName("config")
  .setDescription("Commandes de configuration")
  .addSubCommandGroup((group) =>
    group
      .setName("logs")
      .setDescription("Configuration des logs")
      .addSubCommand((cmd) =>
        cmd
          .setName("enable")
          .setDescription("Activer les logs")
          .execute(async (ctx) => {
            // gérer l'activation des logs
          })
      )
      .addSubCommand((cmd) =>
        cmd
          .setName("disable")
          .setDescription("Désactiver les logs")
          .execute(async (ctx) => {
            // gérer la désactivation des logs
          })
      )
  )

Organisation des commandes

Les sous-dossiers dans src/commands/ servent uniquement à l'organisation — chaque fichier, peu importe sa profondeur, est automatiquement chargé.

src/commands/
  ping.ts
  moderation/
    ban.ts
    kick.ts
  config/
    advanced/
      logs.ts
Copyright © 2026