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éthode | Type Discord |
|---|---|
addStringOption | String |
addIntegerOption | Integer |
addNumberOption | Number |
addBooleanOption | Boolean |
addUserOption | User |
addRoleOption | Role |
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

