From c181066c673bfb8d37a88efbc99798b18a7c9966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christer=20War=C3=A9n?= Date: Tue, 6 Jun 2023 07:03:21 +0300 Subject: [PATCH] Update Play command --- src/client/commands/play.ts | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/client/commands/play.ts b/src/client/commands/play.ts index 2d19f0b..b5e580f 100644 --- a/src/client/commands/play.ts +++ b/src/client/commands/play.ts @@ -22,10 +22,10 @@ export default { }); } - let query : number | string | null = null; + let query: string | null = null; if(interaction.isChatInputCommand()){ - query = interaction.options?.getNumber("query"); + query = interaction.options?.getString("query"); } if(interaction.isStringSelectMenu()){ @@ -37,22 +37,27 @@ export default { } const radio = client.radio?.get(interaction.guild?.id); + if(!(interaction.member instanceof GuildMember)) return; const voiceChannel = interaction.member?.voice.channel; + if (!voiceChannel) return interaction.reply({ content: client.messages.emojis["error"] + client.messages.noVoiceChannel, ephemeral: true }); + if (radio) { if (voiceChannel !== radio.voiceChannel) return interaction.reply({ content: client.messages.emojis["error"] + client.messages.wrongVoiceChannel, ephemeral: true }); } + if (!query) return interaction.reply({ content: client.messages.noQuery, ephemeral: true }); + const permissions = voiceChannel.permissionsFor(interaction.client.user); if (!permissions?.has(PermissionFlagsBits.Connect)) { return interaction.reply({ @@ -68,9 +73,9 @@ export default { } let station; - if (typeof query === 'number') { - const number = parseInt((query - 1) as unknown as string); - if (number > client.stations.length - 1) { + if(!isNaN(parseInt(query) - 1)){ + let number = parseInt(query) - 1; + if(number > client.stations.length - 1) { return interaction.reply({ content: client.messages.emojis["error"] + client.messages.wrongStationNumber, ephemeral: true @@ -79,20 +84,16 @@ export default { station = client.stations[number]; } } else { - if(!(typeof query === 'string')) return; + if(query.length < 3) return interaction.reply({ content: client.messages.emojis["error"] + client.messages.tooShortSearch, ephemeral: true }); - let type = ""; + let type = "text"; - if(interaction.isStringSelectMenu()){ - if(interaction.values?.[0]){ - type = "direct"; - } else { - type = "text"; - } + if(interaction.isStringSelectMenu() && interaction.values?.[0]){ + type = "direct"; } const sstation = await client.stations.search(query, type);