Small bug fixes

This commit is contained in:
Max Isom 2020-03-19 19:16:07 -05:00
parent 4659717e5f
commit f25467a41d
6 changed files with 29 additions and 16 deletions

View file

@ -102,7 +102,11 @@ export default class implements Command {
}
if (nSongsNotFound !== 0) {
extraMsg += `and ${nSongsNotFound.toString()} songs were not found`;
if (nSongsNotFound === 1) {
extraMsg += 'and 1 song was not found';
} else {
extraMsg += `and ${nSongsNotFound.toString()} songs were not found`;
}
}
newSongs.push(...convertedSongs);
@ -140,12 +144,12 @@ export default class implements Command {
await res.stop(`u betcha, **${firstSong.title}** and ${newSongs.length - 1} other songs were added to the queue${extraMsg}`);
}
if (player.voiceConnection === null) {
await player.connect(targetVoiceChannel);
}
if (queueOldSize === 0 && !wasPlayingSong) {
// Only auto-play if queue was empty before and nothing was playing
if (player.voiceConnection === null) {
await player.connect(targetVoiceChannel);
}
await player.play();
}
}

View file

@ -25,19 +25,18 @@ export default class implements Command {
public async execute(msg: Message, _: string []): Promise<void> {
const queue = this.queueManager.get(msg.guild!.id);
const player = this.playerManager.get(msg.guild!.id);
try {
queue.forward();
player.resetPosition();
if (queue.isEmpty() && !queue.getCurrent()) {
this.playerManager.get(msg.guild!.id).disconnect();
} else {
await this.playerManager.get(msg.guild!.id).play();
player.disconnect();
}
await msg.channel.send('keep \'er movin\'');
} catch (_) {
console.log(_);
await msg.channel.send('no song to skip to');
}
}

View file

@ -26,11 +26,11 @@ export default class implements Command {
public async execute(msg: Message, _: string []): Promise<void> {
const queue = this.queueManager.get(msg.guild!.id);
const player = this.playerManager.get(msg.guild!.id);
try {
queue.back();
await this.playerManager.get(msg.guild!.id).play();
player.resetPosition();
await msg.channel.send('back \'er up\'');
} catch (_) {

View file

@ -176,7 +176,7 @@ export default class {
private async spotifyToYouTube(track: SpotifyApi.TrackObjectSimplified, playlist: QueuedPlaylist | null): Promise<QueuedSong | null> {
try {
const {items} = await ytsr(`${track.name} ${track.artists[0].name} offical`, {limit: 5});
const {items} = await ytsr(`"${track.name}" "${track.artists[0].name}" offical`, {limit: 5});
const video = items.find((item: { type: string }) => item.type === 'video');
if (!video) {

View file

@ -140,6 +140,10 @@ export default class {
this.stopTrackingPosition();
}
resetPosition(): void {
this.positionInSeconds = 0;
}
private getCachedPath(url: string): string {
return path.join(this.cacheDir, hasha(url));
}

View file

@ -1,11 +1,14 @@
import {TextChannel, Message} from 'discord.js';
import delay from 'delay';
const INITAL_DELAY = 500;
const PERIOD = 500;
export default class {
public isStopped = true;
private readonly channel: TextChannel;
private readonly text: string;
private msg!: Message;
private isStopped = false;
constructor(channel: TextChannel, text = 'cows! count \'em') {
this.channel = channel;
@ -15,22 +18,25 @@ export default class {
async start(): Promise<void> {
this.msg = await this.channel.send(this.text);
const period = 500;
const icons = ['🐮', '🐴', '🐄'];
const reactions = [];
let i = 0;
let isRemoving = false;
this.isStopped = false;
(async () => {
await delay(INITAL_DELAY);
while (!this.isStopped) {
if (reactions.length === icons.length) {
isRemoving = true;
}
// eslint-disable-next-line no-await-in-loop
await delay(period);
await delay(PERIOD);
if (isRemoving) {
const reactionToRemove = reactions.shift();