Guide
Replyable Context
Envoyez des réponses stylisées instantanément avec ctx.g.reply.
Vue d'ensemble
glyria.js enveloppe tout objet Discord répondable (interactions, messages) avec une propriété g qui expose des méthodes de réponse stylisées prêtes à l'emploi.
Au lieu de construire un embed manuellement à chaque fois, vous avez accès à des one-liners :
await ctx.g.reply.success("Utilisateur banni avec succès !")
await ctx.g.reply.error("Vous n'avez pas la permission de faire ça.")
Utilisation
createReplyableContext est disponible dans les handlers d'événements et enveloppe tout objet Discord répondable :
// src/events/messageCreate.ts
export default new GlyriaEvent()
.setEvent(Events.MessageCreate)
.setHandler(async (message) => {
if (message.author.bot) return
const ctx = createReplyableContext(message)
if (message.content === "!ping") {
await ctx.g.reply.success("Pong!")
}
})
Méthodes de réponse
Toutes les méthodes acceptent une string et retournent une promesse.
| Méthode | Couleur | Préfixe |
|---|---|---|
.primary(content) | #5865F2 (blurple) | aucun |
.secondary(content) | #4F545C (gris) | aucun |
.success(content) | #57F287 (vert) | ✅ |
.warning(content) | #FEE75C (jaune) | ⚠️ |
.error(content) | #ED4245 (rouge) | ❌ |
.info(content) | #5DADE2 (bleu) | ℹ️ |
Chaque méthode construit automatiquement un Embed V2 avec la couleur d'accentuation correspondante.
Personnaliser les couleurs
Remplacez les couleurs par défaut dans glyria.config.ts :
export default defineConfig({
theme: {
embedV2: {
primaryColor: "#7289DA",
successColor: "#43B581",
warningColor: "#FAA61A",
errorColor: "#F04747",
infoColor: "#00B0F4",
secondaryColor: "#747F8D",
}
}
})
Les couleurs sont définies en chaînes hexadécimales — glyria.js les convertit en nombres en interne.
Dans les commandes slash
createReplyableContext fonctionne avec tout objet répondable — y compris les interactions de commandes slash :
export default new GlyriaCommand()
.setName("ban")
.setDescription("Bannir un utilisateur")
.addUserOption((option) =>
option.setName("user").setDescription("Utilisateur à bannir").setRequired(true)
)
.execute(async (interaction) => {
const ctx = createReplyableContext(interaction)
try {
// ... logique de ban
await ctx.g.reply.success("Utilisateur banni avec succès !")
} catch {
await ctx.g.reply.error("Impossible de bannir cet utilisateur.")
}
})
Dans les événements de messages
export default new GlyriaEvent()
.setEvent(Events.MessageCreate)
.setHandler(async (message) => {
if (message.author.bot) return
const ctx = createReplyableContext(message)
if (message.content.startsWith("!ping")) {
await ctx.g.reply.success("Pong!")
}
})

