Fix Pokemon cries being playable in middle of other commands

This commit is contained in:
Dragon Fire
2021-03-01 22:43:51 -05:00
parent 50ffd72066
commit 49003aa33a
2 changed files with 10 additions and 3 deletions
+5 -1
View File
@@ -61,8 +61,12 @@ module.exports = class PokedexCryCommand extends Command {
const usage = this.client.registry.commands.get('join').usage();
return msg.reply(`I am not in a voice channel. Use ${usage} to fix that!`);
}
if (this.client.dispatchers.has(msg.guild.id)) return msg.reply('I am already playing audio in this server.');
try {
connection.play(pokemon.cry);
const dispatcher = connection.play(pokemon.cry);
this.client.dispatchers.set(msg.guild.id, dispatcher);
dispatcher.once('finish', () => this.client.dispatchers.delete(msg.guild.id));
dispatcher.once('error', () => this.client.dispatchers.delete(msg.guild.id));
await reactIfAble(msg, this.client.user, '🔉');
return null;
} catch (err) {
+5 -2
View File
@@ -112,10 +112,13 @@ module.exports = class PokedexCommand extends Command {
.addField(' Gender Rate', pokemon.genderRate.genderless
? 'Genderless'
: `♂️ ${pokemon.genderRate.male}% ♀️ ${pokemon.genderRate.female}%`);
if (pokemon.cry) {
if (pokemon.cry && !this.client.dispatchers.has(msg.guild.id)) {
const connection = msg.guild ? this.client.voice.connections.get(msg.guild.id) : null;
if (connection) {
connection.play(pokemon.cry);
const dispatcher = connection.play(pokemon.cry);
this.client.dispatchers.set(msg.guild.id, dispatcher);
dispatcher.once('finish', () => this.client.dispatchers.delete(msg.guild.id));
dispatcher.once('error', () => this.client.dispatchers.delete(msg.guild.id));
await reactIfAble(msg, this.client.user, '🔉');
}
}