Skip to content

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.

ts
import { BloumeChat } from "bloumechat";
const client = new BloumeChat();
// ...
const user = client.users.cache.get("USER_PUBLIC_ID");
js
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?) ​

ts
fetch(id: string, cache = true): Promise<User>
ParamètreTypeRequisDéfautDescription
idstringOui—Identifiant public de l'utilisateur.
cachebooleanNontrueSi 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.

ts
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);
js
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 User via member.user.
  • MemberManager — pour les rôles et permissions au sein d'un serveur.
  • BaseManager — cache, resolve(), et la convention cache: boolean.

SDK publié sous licence ISC.