Base
La classe de base abstraite dont héritent toutes les structures du SDK BloumeChat — Guild, Channel, Message, Member, User, Role, Category, Emoji, Invite et Webhook.
Son rôle est volontairement minimal : garantir que chaque structure garde une référence vers le BloumeChat qui l'a créée, et fournir deux méthodes internes de bas niveau utilisées par les sous-classes pour se mettre à jour. Base n'est jamais instanciée directement dans du code applicatif.
Notation des signatures
Sur cette page, les signatures de méthode sont écrites en notation TypeScript pour préciser exactement les types acceptés — mais tout s'appelle à l'identique en JavaScript, simplement sans les annotations. Voir Utiliser le SDK en JavaScript.
Propriétés
| Propriété | Type | Description |
|---|---|---|
client | BloumeChat (readonly) | Le client qui a instancié cette structure. Toujours défini — jamais null ou undefined, même pour une structure obtenue avant l'événement ready. |
client est déclarée public readonly : elle est assignée une seule fois dans le constructeur de Base et ne change jamais pendant la durée de vie de l'objet.
Méthodes protégées
Ces deux méthodes sont marquées protected dans le code source — elles ne sont donc pas accessibles depuis l'extérieur d'une sous-classe (message._patch(...) ne compile pas en TypeScript). Elles sont documentées ici pour comprendre le fonctionnement interne des structures, pas pour être appelées directement par un bot.
_clone(): this
Retourne une copie superficielle (shallow copy) de l'instance courante, via Object.assign(Object.create(this), this). Le prototype (donc toutes les méthodes de la classe) est préservé, seules les propriétés propres sont copiées — un même niveau d'imbrication seulement, les objets/tableaux imbriqués restent partagés par référence avec l'original.
_patch(data: any): any
Implémentation par défaut qui renvoie data tel quel. Certaines sous-classes la redéfinissent pour fusionner de nouvelles données dans l'instance existante (par exemple lors d'un événement de mise à jour reçu par WebSocket) plutôt que de recréer un nouvel objet à chaque fois.
Usage interne uniquement
_clone() et _patch() sont des détails d'implémentation. Aucune méthode publique du SDK ne les expose directement — vous ne devriez jamais avoir besoin de les appeler dans un bot. Elles sont documentées ici uniquement à titre de référence pour comprendre le comportement interne des structures.
Exemple d'utilisation
Vous n'instancierez jamais Base directement, mais toute structure qui en hérite expose .client — ce qui permet de retrouver l'instance principale du SDK à partir de n'importe quel objet reçu dans un handler d'événement, sans avoir à le faire transiter en paramètre.
client.on("messageCreate", (message) => {
// `message` hérite de Base via Message → `.client` est disponible partout
const client = message.client;
console.log(`Le bot est connecté sous : ${client.user?.tagString}`);
console.log(`Présent sur ${client.guilds.cache.size} serveur(s)`);
});client.on("messageCreate", (message) => {
const client = message.client;
console.log(`Le bot est connecté sous : ${client.user?.tagString}`);
console.log(`Présent sur ${client.guilds.cache.size} serveur(s)`);
});C'est particulièrement utile dans une fonction utilitaire qui ne reçoit qu'une structure (un Member, un Role…) et a besoin d'accéder au client sans le recevoir en argument séparé :
import type { Member } from "bloumechat";
function isServerOwner(member: Member): boolean {
const guild = member.client.guilds.cache.get(member.serverId);
return guild?.ownerId === member.user.id;
}function isServerOwner(member) {
const guild = member.client.guilds.cache.get(member.serverId);
return guild && guild.ownerId === member.user.id;
}Voir aussi
- BloumeChat (client) — la classe accessible via
.clientsur toute structure. - Guild, Channel, Message — exemples de structures héritant de
Base.
