diff options
| author | Max Isom <[email protected]> | 2020-03-15 19:30:07 -0500 |
|---|---|---|
| committer | Max Isom <[email protected]> | 2020-03-15 19:30:07 -0500 |
| commit | 2875c6ceb89ccd22da500f6f3dccbe3c43893d86 (patch) | |
| tree | 6a2bf5f0ad4963facd03cc303e0af02f4d6d5671 /src/commands | |
| parent | e55acbb718c5b36315010b5d093b1554712aca4b (diff) | |
| download | muse-2875c6ceb89ccd22da500f6f3dccbe3c43893d86.tar.xz muse-2875c6ceb89ccd22da500f6f3dccbe3c43893d86.zip | |
Add pause/resume
Diffstat (limited to 'src/commands')
| -rw-r--r-- | src/commands/pause.ts | 29 | ||||
| -rw-r--r-- | src/commands/play.ts | 23 |
2 files changed, 52 insertions, 0 deletions
diff --git a/src/commands/pause.ts b/src/commands/pause.ts new file mode 100644 index 0000000..54855e0 --- /dev/null +++ b/src/commands/pause.ts @@ -0,0 +1,29 @@ +import {Message} from 'discord.js'; +import {TYPES} from '../types'; +import {inject, injectable} from 'inversify'; +import PlayerManager from '../managers/player'; +import {STATUS} from '../services/player'; +import Command from '.'; + +@injectable() +export default class implements Command { + public name = 'pause'; + public description = 'pause currently playing song'; + private readonly playerManager: PlayerManager; + + constructor(@inject(TYPES.Managers.Player) playerManager: PlayerManager) { + this.playerManager = playerManager; + } + + public async execute(msg: Message, _: string []): Promise<void> { + const player = this.playerManager.get(msg.guild!.id); + + if (player.status !== STATUS.PLAYING) { + await msg.channel.send('error: not currently playing'); + return; + } + + player.pause(); + await msg.channel.send('paused'); + } +} diff --git a/src/commands/play.ts b/src/commands/play.ts index 03992d7..2d91d19 100644 --- a/src/commands/play.ts +++ b/src/commands/play.ts @@ -36,6 +36,29 @@ export default class implements Command { } public async execute(msg: Message, args: string []): Promise<void> { + const queue = this.queueManager.get(msg.guild!.id); + + if (args.length === 0) { + if (this.playerManager.get(msg.guild!.id).status === STATUS.PLAYING) { + await msg.channel.send('error: already playing, give me a song name'); + return; + } + + // Must be resuming play + if (queue.get().length === 0) { + await msg.channel.send('error: nothing to play'); + return; + } + + const channel = getMostPopularVoiceChannel(msg.guild!); + + await this.playerManager.get(msg.guild!.id).connect(channel); + await this.playerManager.get(msg.guild!.id).play(); + + await msg.channel.send('play resuming'); + return; + } + const newSongs: QueuedSong[] = []; const res = new LoadingMessage(msg.channel as TextChannel, 'hold on a sec'); |
