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é | Type | Description |
|---|---|---|
id | string | publicId (Snowflake) de l'utilisateur — jamais l'ID interne de la base de données. |
username | string | Nom d'utilisateur affiché. |
tag | string | Discriminant à 4 chiffres, comme sur Discord (0001, 4242…). |
avatar | string | null | URL de l'avatar, null si l'utilisateur n'en a pas défini. |
bot | boolean | true 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. |
tagString | string (getter) | Raccourci pour `${username}#${tag}`. |
toString() retourne une mention prête à l'emploi au format <@id>, utilisable directement dans le contenu d'un message :
await channel.send(`Bienvenue ${user} !`); // => "Bienvenue <@USER_ID> !"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.
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;
}| Champ | Type | Description |
|---|---|---|
banner | string | null | URL de l'image de bannière, null si absente. |
bannerColor | string | null | Couleur de bannière unie en hex, utilisée si banner est null. |
bio | string | null | Biographie texte libre. |
followersCount / followingCount | number | Compteurs sociaux, en lecture seule (le SDK n'expose aucun moyen d'agir dessus). |
mutualFriendsCount | number | Nombre d'amis en commun avec le compte connecté. |
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.");
}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.
interface MutualServerDTO {
publicId: string;
name: string;
imageUrl: string | null;
}Retourne un tableau vide ([]) — jamais null/undefined — s'il n'y en a aucun.
const mutuals = await user.fetchMutualServers();
console.log(`${mutuals.length} serveur(s) en commun`);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.
const user = await client.users.fetch(userId);
const dm = await user.createDM();
await dm.send("Salut, comment ça va ?");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
UserManager— cache etfetch()des utilisateurs.Message/DMChannel— envoyer des DM, répondre, réagir.Member— unUserau sein d'un serveur donné (rôles, permissions).BloumeChat— Événements —presenceUpdate,activityUpdate,dmNew.
