Skip to content

Invite ​

Représente une invitation de serveur sur BloumeChat. Hérite de Base.

Un objet Invite est renvoyé soit par client.fetchInvite(code) (résolution en lecture seule d'un code d'invitation), soit indirectement via guild.fetchInvites() / guild.createInvite() / channel.createInvite() (qui renvoient des données brutes d'invitation — voir l'encadré ci-dessous).

Notation des signatures

Les signatures sont écrites en notation TypeScript, mais s'appellent à l'identique en JavaScript — voir Utiliser le SDK en JavaScript.

Deux formes d'invitation dans le SDK

client.fetchInvite(code) est la seule méthode qui renvoie une véritable instance de la classe Invite (avec sa méthode .revoke()). guild.fetchInvites(), guild.createInvite() et channel.createInvite() renvoient l'objet invitation brut tel que reçu de l'API (any), pas une instance de Invite — pratique pour lire le code ou le compteur d'usages, mais sans méthode attachée. Pour révoquer une invitation obtenue par l'une de ces méthodes, utilisez client.fetchInvite(invite.code) d'abord, ou appelez directement guild.apiCall via une des méthodes de haut niveau prévues à cet effet.

Propriétés ​

PropriétéTypeDescription
codestringLe code unique de l'invitation (le segment utilisé dans l'URL d'invitation, ex. abc123).
guildInviteGuildDataLes informations sommaires du serveur associé à cette invitation.

InviteGuildData ​

ts
interface InviteGuildData {
  publicId: string;          // ID public du serveur
  name: string;               // Nom du serveur
  imageUrl: string | null;    // Icône du serveur, ou null
  memberCount: number;        // Nombre approximatif de membres
  isMember: boolean;          // Le compte courant est-il déjà membre ?
  channelPublicId: string | null; // Salon cible de l'invitation, si précisé
}

Ces données proviennent directement de la réponse API et sont exposées telles quelles — il n'existe pas de wrapper Guild complet ici (l'invitation peut pointer vers un serveur où le bot n'est pas encore présent, donc pas nécessairement en cache).

Méthodes ​

revoke(): Promise<void> ​

Révoque (supprime) cette invitation, la rendant inutilisable immédiatement.

Retour : Promise<void>. Nécessite que le bot dispose de la permission MANAGE_INVITES (ou équivalent) sur le serveur cible ; rejette avec une erreur HTTP sinon, ou si le code d'invitation n'existe plus.

ts
const invite = await client.fetchInvite("abc123");
console.log(`Invitation vers : ${invite.guild.name} (${invite.guild.memberCount} membres)`);

await invite.revoke();
js
const invite = await client.fetchInvite("abc123");
console.log(`Invitation vers : ${invite.guild.name} (${invite.guild.memberCount} membres)`);

await invite.revoke();

Exemples d'utilisation ​

Inspecter une invitation avant d'agir ​

Un bot ne peut pas rejoindre un serveur de lui-même (il doit y être ajouté par un utilisateur habilité) — fetchInvite sert donc surtout à inspecter une invitation reçue en message, par exemple pour de la modération anti-spam.

ts
client.on("messageCreate", async (message) => {
  const match = message.content.match(/bloumechat\.com\/invite\/(\w+)/);
  if (!match) return;

  try {
    const invite = await client.fetchInvite(match[1]);
    await message.reply(
      `Cette invitation mène à **${invite.guild.name}** (${invite.guild.memberCount} membres).`
    );
  } catch {
    await message.reply("Invitation invalide ou expirée.");
  }
});
js
client.on("messageCreate", async (message) => {
  const match = message.content.match(/bloumechat\.com\/invite\/(\w+)/);
  if (!match) return;

  try {
    const invite = await client.fetchInvite(match[1]);
    await message.reply(
      `Cette invitation mène à **${invite.guild.name}** (${invite.guild.memberCount} membres).`
    );
  } catch {
    await message.reply("Invitation invalide ou expirée.");
  }
});

Révoquer les invitations d'un serveur en masse ​

ts
const rawInvites = await guild.fetchInvites();
for (const raw of rawInvites) {
  const invite = await client.fetchInvite(raw.code);
  await invite.revoke();
}
console.log(`${rawInvites.length} invitation(s) révoquée(s).`);
js
const rawInvites = await guild.fetchInvites();
for (const raw of rawInvites) {
  const invite = await client.fetchInvite(raw.code);
  await invite.revoke();
}
console.log(`${rawInvites.length} invitation(s) révoquée(s).`);

Voir aussi ​

SDK publié sous licence ISC.