Skip to main content

Chapitre 10 - Gérer une Guild / Faire une recherche

Nous rejoindre sur Discord

Structure

Guild {
  id: '1003624283458785290', // Id du serveur
  name: 'Formation Bot Discord', // Nom du serveur
  icon: 'c2a1d07fd0c51b8c0774461cea51a837', // Icon du serveur
  features: [],
  commands: <ref *1> GuildApplicationCommandManager {  // Liste des commandes
    permissions: ApplicationCommandPermissionsManager {
      manager: [Circular *1],
      guild: [Circular *2],
      guildId: '1003624283458785290',
      commandId: null
    },
    guild: [Circular *2]
  },
  members: GuildMemberManager { guild: [Circular *2] }, // Liste des membres
  channels: GuildChannelManager { guild: [Circular *2] }, // Liste des channels
  bans: GuildBanManager { guild: [Circular *2] }, // Liste des bans
  roles: RoleManager { guild: [Circular *2] }, // Liste des rôles
  presences: PresenceManager {},
  voiceStates: VoiceStateManager { guild: [Circular *2] },
  stageInstances: StageInstanceManager { guild: [Circular *2] },
  invites: GuildInviteManager { guild: [Circular *2] }, // Liste des invitations
  scheduledEvents: GuildScheduledEventManager { guild: [Circular *2] },
  available: true,
  shardId: 0,
  splash: null,
  banner: null, // Bannière
  description: null, // Description
  verificationLevel: 0,
  vanityURLCode: null,
  nsfwLevel: 0,
  premiumSubscriptionCount: 0,
  discoverySplash: null,
  memberCount: 2, // Nombre de membre
  large: false,
  premiumProgressBarEnabled: false,
  applicationId: null,
  afkTimeout: 300,
  afkChannelId: null,
  systemChannelId: '1003624284553478276',
  premiumTier: 0,
  explicitContentFilter: 0,
  mfaLevel: 0,
  joinedTimestamp: 1659379225485,
  defaultMessageNotifications: 0,
  systemChannelFlags: SystemChannelFlagsBitField { bitfield: 0 },
  maximumMembers: 500000,
  maximumPresences: null,
  approximateMemberCount: null,
  approximatePresenceCount: null,
  vanityURLUses: null,
  rulesChannelId: null,
  publicUpdatesChannelId: null,
  preferredLocale: 'en-US', // Localisation du serveur
  ownerId: '279989640210022401', // ID du propriétaire
  emojis: GuildEmojiManager { guild: [Circular *2] },
  stickers: GuildStickerManager { guild: [Circular *2] }
}

Faire une recherche

Lorsque l'on souhaite récupérer un élément dans une collection (/liste) présent dans notre guild. On va utiliser .cache.find(). Cette suite de méthodes nous permet d'aller regarder dans notre collecion et d'y ajouter un condition de recherche. Par exemple, si l'on souhaite récupéré un utilisateur depuis son ID, on peut faire :

const userId = ""; // ID de l'utilisateur à trouver.
const user = guild.members.cache.find(member => member.id === userId);

L'utilisation de notre find nous permet de raccourcir les instructions suivantes :

const user = null;
for (const member in guild.members.cache) {
 if (member.id === userId) {
   user = member;
 }
}

Exercice

Compter le