managers/PlayerManager.js

'use strict';

const { CachedManager } = require('discord.js');
const Player = require('../structures/Player');

/**
 * Stores the cache for Players
 * @extends {CachedManager}
 */
class PlayerManager extends CachedManager {
  constructor(server, iterable) {
    super(server.client, Player, iterable);

    /**
     * The server this manager belongs to
     * @type {Server}
     */
    this.server = server;
  }
}

/**
 * The cache of this Manager
 * @type {Collection<number, Player>}
 * @name PlayerManager#cache
 */

/**
 * Data that resolves to give a Player object. This can be:
 * * A Player object
 * * A Player id
 * @typedef {string|Player} PlayerResolvable
 */

/**
 * Resolves a PlayerResolvable to a Player object.
 * @method resolve
 * @memberof PlayerManager
 * @name PlayerManager#resolve
 * @instance
 * @param {PlayerResolvable} player The player resolvable to identify
 * @returns {?Player}
 */

/**
 * Resolves a {@link PlayerResolvable} to a {@link Player} id number.
 * @method resolveId
 * @memberof PlayerManager
 * @name PlayerManager#resolveId
 * @instance
 * @param {PlayerResolvable} player The player resolvable to identify
 * @returns {?number}
 */

module.exports = PlayerManager;