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 {