UserManager
Gestionnaire global des profils utilisateur BloumeChat, indépendamment de tout serveur. Hérite de BaseManager et gère des instances de User. Accessible via client.users.
import { BloumeChat } from "bloumechat";
const client = new BloumeChat();
// ...
const user = client.users.cache.get("USER_PUBLIC_ID");const { BloumeChat } = require("bloumechat");
const client = new BloumeChat();
// ...
const user = client.users.cache.get("USER_PUBLIC_ID");User vs Member
UserManager gère le profil global d'un utilisateur (nom, avatar, statut) — identique sur tout BloumeChat, indépendant d'un serveur. Pour les rôles, le surnom, et les permissions au sein d'un serveur précis, utilisez MemberManager (client.members) à la place. Un Message.author ou le résultat de client.users.fetch() est un User ; guild.members.fetch(...) retourne un Member, qui référence lui-même un User via member.user.
Méthodes
fetch(id, cache?)
fetch(id: string, cache = true): Promise<User>| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
id | string | Oui | — | Identifiant public de l'utilisateur. |
cache | boolean | Non | true | Si true, insère ou met à jour l'entité dans this.cache. |
Appelle GET /users/:id et retourne un User frais. Toujours une nouvelle requête réseau, même si l'utilisateur est déjà en cache — pour une lecture purement locale sans requête, utilisez client.users.cache.get(id) ou client.users.resolve(id).
Erreurs possibles : rejette avec l'erreur apiCall() standard si l'utilisateur n'existe pas (404) ou en cas d'échec réseau.
const user = await client.users.fetch("USER_PUBLIC_ID");
console.log(user.tagString, user.avatar);
// Sans mise en cache
const freshUser = await client.users.fetch("USER_PUBLIC_ID", false);const user = await client.users.fetch("USER_PUBLIC_ID");
console.log(user.tagString, user.avatar);
// Sans mise en cache
const freshUser = await client.users.fetch("USER_PUBLIC_ID", false);La construction d'un Message ne peuple pas le cache
Quand un objet Message est construit depuis un événement socket (messageCreate, etc.), son author est résolu depuis client.users.cache si l'utilisateur y figure déjà — sinon une nouvelle instance User est créée à la volée, mais elle n'est pas insérée dans client.users.cache automatiquement. Seul fetch() (ou la connexion initiale via login() pour client.user) alimente réellement le cache. N'assumez donc pas qu'un auteur de message est forcément disponible via client.users.cache.get(...) — utilisez message.author directement, ou client.users.fetch(id) si vous avez seulement l'ID.
Voir aussi
- User — la structure retournée (
username,tag,tagString,avatar,status,bot…). - Member — profil propre à un serveur, référence un
Userviamember.user. - MemberManager — pour les rôles et permissions au sein d'un serveur.
- BaseManager —
cache,resolve(), et la conventioncache: boolean.
