diff options
| author | Max Isom <[email protected]> | 2020-03-15 15:35:34 -0500 |
|---|---|---|
| committer | Max Isom <[email protected]> | 2020-03-15 15:35:34 -0500 |
| commit | 3c169d113c21fc4f067400cf837b71abfc2f161d (patch) | |
| tree | fce8d06cddac2f7660ec460f369f12510a5b8ba7 /src/commands | |
| parent | bf0843dd1d8fbaa7c06cdc6110f45d46ca6b4052 (diff) | |
| download | muse-3c169d113c21fc4f067400cf837b71abfc2f161d.tar.xz muse-3c169d113c21fc4f067400cf837b71abfc2f161d.zip | |
Add forward seek
Diffstat (limited to 'src/commands')
| -rw-r--r-- | src/commands/fseek.ts | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/commands/fseek.ts b/src/commands/fseek.ts new file mode 100644 index 0000000..2fae1e6 --- /dev/null +++ b/src/commands/fseek.ts @@ -0,0 +1,33 @@ +import {Message, TextChannel} from 'discord.js'; +import {TYPES} from '../types'; +import {inject, injectable} from 'inversify'; +import PlayerManager from '../managers/player'; +import LoadingMessage from '../utils/loading-message'; +import Command from '.'; + +@injectable() +export default class implements Command { + public name = 'fseek'; + public description = 'forward seek position in currently playing song'; + private readonly playerManager: PlayerManager; + + constructor(@inject(TYPES.Managers.Player) playerManager: PlayerManager) { + this.playerManager = playerManager; + } + + public async execute(msg: Message, args: string []): Promise<void> { + const seekTime = parseInt(args[0], 10); + + const loading = new LoadingMessage(msg.channel as TextChannel, 'hold on a sec'); + + await loading.start(); + + try { + await this.playerManager.get(msg.guild!.id).forwardSeek(seekTime); + + await loading.stop('seeked'); + } catch (_) { + await loading.stop('error somewhere'); + } + } +} |
