aboutsummaryrefslogtreecommitdiff
path: root/src/managers/player.ts
blob: b05d5062e170849ae6ed37ad1bdd5c6d7fef0cb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import {inject, injectable} from 'inversify';
import {TYPES} from '../types';
import Player from '../services/player';

@injectable()
export default class {
  private readonly guildPlayers: Map<string, Player>;
  private readonly cacheDir: string;

  constructor(@inject(TYPES.Config.CACHE_DIR) cacheDir: string) {
    this.guildPlayers = new Map();
    this.cacheDir = cacheDir;
  }

  get(guildId: string): Player {
    let player = this.guildPlayers.get(guildId);

    if (!player) {
      player = new Player(this.cacheDir);

      this.guildPlayers.set(guildId, player);
    }

    return player;
  }
}