diff options
Diffstat (limited to 'node_modules/discord.js/src/managers/PresenceManager.js')
-rw-r--r-- | node_modules/discord.js/src/managers/PresenceManager.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/node_modules/discord.js/src/managers/PresenceManager.js b/node_modules/discord.js/src/managers/PresenceManager.js new file mode 100644 index 0000000..2d64834 --- /dev/null +++ b/node_modules/discord.js/src/managers/PresenceManager.js @@ -0,0 +1,58 @@ +'use strict'; + +const CachedManager = require('./CachedManager'); +const { Presence } = require('../structures/Presence'); + +/** + * Manages API methods for Presences and holds their cache. + * @extends {CachedManager} + */ +class PresenceManager extends CachedManager { + constructor(client, iterable) { + super(client, Presence, iterable); + } + + /** + * The cache of Presences + * @type {Collection<Snowflake, Presence>} + * @name PresenceManager#cache + */ + + _add(data, cache) { + return super._add(data, cache, { id: data.user.id }); + } + + /** + * Data that can be resolved to a Presence object. This can be: + * * A Presence + * * A UserResolvable + * * A Snowflake + * @typedef {Presence|UserResolvable|Snowflake} PresenceResolvable + */ + + /** + * Resolves a {@link PresenceResolvable} to a {@link Presence} object. + * @param {PresenceResolvable} presence The presence resolvable to resolve + * @returns {?Presence} + */ + resolve(presence) { + const presenceResolvable = super.resolve(presence); + if (presenceResolvable) return presenceResolvable; + const UserResolvable = this.client.users.resolveId(presence); + return super.resolve(UserResolvable); + } + + /** + * Resolves a {@link PresenceResolvable} to a {@link Presence} id. + * @param {PresenceResolvable} presence The presence resolvable to resolve + * @returns {?Snowflake} + */ + resolveId(presence) { + const presenceResolvable = super.resolveId(presence); + if (presenceResolvable) return presenceResolvable; + const userResolvable = this.client.users.resolveId(presence); + return this.cache.has(userResolvable) ? userResolvable : null; + } +} + +module.exports = PresenceManager; |