Merge Player and Queue services

This commit is contained in:
Max Isom 2020-03-20 20:47:04 -05:00
parent 646f030781
commit 9c91ce1a13
21 changed files with 236 additions and 255 deletions

View file

@ -1,7 +1,7 @@
import {Message} from 'discord.js';
import {TYPES} from '../types';
import {inject, injectable} from 'inversify';
import QueueManager from '../managers/queue';
import PlayerManager from '../managers/player';
import errorMsg from '../utils/error-msg';
import Command from '.';
@ -15,23 +15,22 @@ export default class implements Command {
public requiresVC = true;
private readonly queueManager: QueueManager;
private readonly playerManager: PlayerManager;
constructor(@inject(TYPES.Managers.Queue) queueManager: QueueManager) {
this.queueManager = queueManager;
constructor(@inject(TYPES.Managers.Player) playerManager: PlayerManager) {
this.playerManager = playerManager;
}
public async execute(msg: Message, _: string []): Promise<void> {
const queue = this.queueManager.get(msg.guild!.id).get();
const player = this.playerManager.get(msg.guild!.id);
if (queue.length <= 2) {
if (player.isQueueEmpty()) {
await msg.channel.send(errorMsg('not enough songs to shuffle'));
return;
}
this.queueManager.get(msg.guild!.id).shuffle();
player.shuffle();
// TODO: better response
await msg.channel.send('shuffled');
}
}