GlyriaCommand
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éthode | Retourne | Description |
|---|---|---|
.setName(name) | this | Définit le nom de la commande |
.setDescription(desc) | this | Définit la description de la commande |
.setPermissions(perms) | this | Restreint la commande à des permissions spécifiques |
.setMetaData(meta) | this | Attache des métadonnées personnalisées à la commande |
.addStringOption(fn) | this | Ajoute une option texte |
.addBooleanOption(fn) | this | Ajoute une option booléenne |
.addIntegerOption(fn) | this | Ajoute une option entière |
.addNumberOption(fn) | this | Ajoute une option numérique |
.addUserOption(fn) | this | Ajoute une option utilisateur |
.addRoleOption(fn) | this | Ajoute une option rôle |
.addSubCommand(fn) | this | Ajoute une sous-commande |
.addSubCommandGroup(fn) | this | Ajoute un groupe de sous-commandes |
.execute(handler) | this | Dé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éthode | Retourne | Description |
|---|---|---|
.setName(name) | this | Définit le nom de l'option |
.setDescription(desc) | this | Définit la description de l'option |
.setRequired(bool) | this | Rend 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éthode | Retourne | Description |
|---|---|---|
.setName(name) | this | Définit le nom de la sous-commande |
.setDescription(desc) | this | Définit la description de la sous-commande |
.addStringOption(fn) | this | Ajoute une option texte |
.addBooleanOption(fn) | this | Ajoute une option booléenne |
.addIntegerOption(fn) | this | Ajoute une option entière |
.addNumberOption(fn) | this | Ajoute une option numérique |
.addUserOption(fn) | this | Ajoute une option utilisateur |
.addRoleOption(fn) | this | Ajoute une option rôle |
.execute(handler) | this | Dé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éthode | Retourne | Description |
|---|---|---|
.setName(name) | this | Définit le nom du groupe |
.setDescription(desc) | this | Définit la description du groupe |
.addSubCommand(fn) | this | Ajoute 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,
})
})
)
)

