From b03adcc7c1c479c537269c9ddffc5c86405dd458 Mon Sep 17 00:00:00 2001 From: Elysia <71698422+aiko-chan-ai@users.noreply.github.com> Date: Tue, 21 Jan 2025 10:57:25 +0700 Subject: [PATCH] feat: fetching presences #1429 --- src/managers/PresenceManager.js | 13 +++++++++++++ typings/index.d.ts | 1 + 2 files changed, 14 insertions(+) diff --git a/src/managers/PresenceManager.js b/src/managers/PresenceManager.js index fc1e6ea..d91f375 100644 --- a/src/managers/PresenceManager.js +++ b/src/managers/PresenceManager.js @@ -53,6 +53,19 @@ class PresenceManager extends CachedManager { const userId = this.client.users.resolveId(presence); return this.cache.has(userId) ? userId : null; } + + /** + * Fetches the overall user presence for all of the user's non-offline friends and implicit relationships. + * @returns {Promise>} + */ + async fetch() { + const data = await this.client.api.presences.get(); + // https://docs.discord.sex/resources/presence#endpoints + data.presences.forEach(presence => { + this._add(presence, true); + }); + return this.cache; + } } module.exports = PresenceManager; diff --git a/typings/index.d.ts b/typings/index.d.ts index 822d347..dad6917 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -4650,6 +4650,7 @@ export class PermissionOverwriteManager extends CachedManager< export class PresenceManager extends CachedManager { private constructor(client: Client, iterable?: Iterable); + public fetch(): Promise>; } export class ReactionManager extends CachedManager {