Skip to content

Utilisateurs & profils ​

Cette page couvre la structure User et le profil du bot lui-même (exposé sur client, pas sur User).

User ​

Représente un compte BloumeChat — humain ou bot. Toutes les structures qui référencent un auteur (Message.author, Member.user, DMChannel.recipient…) sont des instances de cette classe.

Cache automatique

Le SDK réutilise l'instance en cache (client.users.cache) quand elle existe déjà au lieu d'en recréer une à chaque message — voir UserManager.

Propriétés ​

PropriétéTypeDescription
idstringpublicId (Snowflake) de l'utilisateur — jamais l'ID interne de la base de données.
usernamestringNom d'utilisateur affiché.
tagstringDiscriminant à 4 chiffres, comme sur Discord (0001, 4242…).
avatarstring | nullURL de l'avatar, null si l'utilisateur n'en a pas défini.
botbooleantrue si ce compte est un bot.
status"online" | "idle" | "dnd" | "invisible" | "offline"Présence actuelle telle que connue par le client au moment de la construction de l'objet. Ne se met pas à jour automatiquement — écoutez presenceUpdate pour suivre les changements en direct.
tagStringstring (getter)Raccourci pour `${username}#${tag}`.

toString() retourne une mention prête à l'emploi au format <@id>, utilisable directement dans le contenu d'un message :

ts
await channel.send(`Bienvenue ${user} !`); // => "Bienvenue <@USER_ID> !"
js
await channel.send(`Bienvenue ${user} !`); // => "Bienvenue <@USER_ID> !"

Pas de fonctions sociales

Le SDK n'expose délibérément aucune méthode block/unblock/follow/unfollow sur User. Ce sont des actions réservées à l'utilisateur humain via l'application BloumeChat — un bot ne doit jamais bloquer ou suivre un compte en son nom.

fetchProfile(): Promise<UserProfile> ​

Récupère le profil public complet de l'utilisateur — au-delà des champs déjà présents sur l'instance User, ceci inclut la bannière, la bio et les compteurs sociaux.

ts
interface UserProfile {
  id: string;
  username: string;
  tag: string;
  avatar: string | null;
  banner: string | null;
  bannerColor: string | null;
  bio: string | null;
  bot: boolean;
  status: string;
  followersCount: number;
  followingCount: number;
  mutualFriendsCount: number;
}
ChampTypeDescription
bannerstring | nullURL de l'image de bannière, null si absente.
bannerColorstring | nullCouleur de bannière unie en hex, utilisée si banner est null.
biostring | nullBiographie texte libre.
followersCount / followingCountnumberCompteurs sociaux, en lecture seule (le SDK n'expose aucun moyen d'agir dessus).
mutualFriendsCountnumberNombre d'amis en commun avec le compte connecté.
ts
const user = await client.users.fetch(userId);
if (!user.bot) {
  const profile = await user.fetchProfile();
  console.log(`${profile.username} a ${profile.followersCount} abonnés`);
  console.log(profile.bio ?? "Pas de bio.");
}
js
const user = await client.users.fetch(userId);
if (!user.bot) {
  const profile = await user.fetchProfile();
  console.log(`${profile.username} a ${profile.followersCount} abonnés`);
  console.log(profile.bio || "Pas de bio.");
}

fetchMutualServers(): Promise<MutualServerDTO[]> ​

Retourne la liste des serveurs communs entre le compte connecté et cet utilisateur.

ts
interface MutualServerDTO {
  publicId: string;
  name: string;
  imageUrl: string | null;
}

Retourne un tableau vide ([]) — jamais null/undefined — s'il n'y en a aucun.

ts
const mutuals = await user.fetchMutualServers();
console.log(`${mutuals.length} serveur(s) en commun`);
js
const mutuals = await user.fetchMutualServers();
console.log(`${mutuals.length} serveur(s) en commun`);

createDM(): Promise<DMChannel> ​

Ouvre (ou récupère, si elle existe déjà) le canal de messages privés avec cet utilisateur. Raccourci équivalent à client.createDM(user.id) — voir Channel / DMChannel.

ts
const user = await client.users.fetch(userId);
const dm = await user.createDM();
await dm.send("Salut, comment ça va ?");
js
const user = await client.users.fetch(userId);
const dm = await user.createDM();
await dm.send("Salut, comment ça va ?");

Le profil du bot lui-même ​

Le SDK n'expose délibérément aucune méthode pour modifier le profil du bot connecté (nom, bio, avatar, bannière). Ce sont des actions réservées à l'utilisateur humain via l'application BloumeChat elle-même (Paramètres → Mon compte), jamais à une automatisation — même une modification déclenchée par le propriétaire légitime du bot doit passer par l'interface, pas par le SDK.

Voir aussi

Pour la présence temps réel (statut en ligne, activité Rich Presence), voir BloumeChat — Présence et l'exemple Rich Presence (RPC).

Voir aussi ​

SDK publié sous licence ISC.