Source: guilds.js

const AudioPlayer = require('./audioPlayer');

/**
 * Additional runtime data about guilds
 */
class GuildManager {
  constructor() {
    this._guilds = {};
    this.AudioPlayer = AudioPlayer;
  }

  getGuild(guild) {
    if (!guild) return Promise.resolve({});
    if (this._guilds[guild.id]) return Promise.resolve(this._guilds[guild.id]);
    // Not cached
    this._guilds[guild.id] = {}
    return this.initializeGuild(this._guilds[guild.id], guild);
  }

  initializeGuild(g, guild) {
    g.audioPlayer = new AudioPlayer(guild);
    return Promise.resolve(g);
  }
}

module.exports = GuildManager;