diff --git a/dist/discord.js b/dist/discord.js index 9fce2b6..107c0df 100644 --- a/dist/discord.js +++ b/dist/discord.js @@ -7,16 +7,21 @@ const v9_1 = require("discord-api-types/v9"); const commands = [ { name: 'queue', - description: 'get queue info or initialize a queue for this channel', + description: 'initialize a queue for this channel', options: [ { type: 4, name: 'teamsize', description: 'size of each team', - min_value: 1 + min_value: 1, + required: true } ] }, + { + name: 'close', + description: 'close the queue for this channel' + }, { name: 'join', description: 'join the active queue' @@ -41,7 +46,7 @@ const commands = [ } ] } -]; +], commandNames = commands.map(c => c.name); /** * register/reload commands on guild(s) * @param token discord bot token diff --git a/dist/index.js b/dist/index.js index 9388f0d..c23ab25 100644 --- a/dist/index.js +++ b/dist/index.js @@ -45,16 +45,28 @@ CLIENT.on('interactionCreate', async (interaction) => { if (!interaction.isCommand()) return; try { - if (interaction.commandName === 'queue') - await queue_1.QueueCommands.queue(interaction); - else if (interaction.commandName === 'join') - await queue_1.QueueCommands.join(interaction); - else if (interaction.commandName === 'leave') - await queue_1.QueueCommands.leave(interaction); - else if (interaction.commandName === 'stop') - await queue_1.QueueCommands.stop(interaction); - else if (interaction.commandName === 'player') - await (0, api_1.getPlayerInteraction)(interaction); + switch (interaction.commandName) { + //mod commands + case 'open': + await queue_1.QueueCommands.open(interaction); + break; + case 'close': + await queue_1.QueueCommands.close(interaction); + break; + //general commands + case 'queue': + await queue_1.QueueCommands.queue(interaction); + break; + case 'join': + await queue_1.QueueCommands.join(interaction); + break; + case 'leave': + await queue_1.QueueCommands.leave(interaction); + break; + case 'player': + await (0, api_1.getPlayerInteraction)(interaction); + break; + } } catch (e) { if (e instanceof util_1.errorMessage) { diff --git a/dist/queue.js b/dist/queue.js index d190f82..5f00c61 100644 --- a/dist/queue.js +++ b/dist/queue.js @@ -156,16 +156,31 @@ var QueueCommands; } QueueCommands.queueCreate = queueCreate; /** - * creates a queue from an interaction + * opens a queue + * @param interaction + * @throws errorMessage class if it cannot be left + */ + async function open(interaction) { + queueCreate(interaction); + } + QueueCommands.open = open; + /** + * closes a queue + * @param interaction + * @throws errorMessage class if it cannot be joined + */ + async function close(interaction) { + (0, util_1.memberIsModThrow)(interaction); + QUEUE.delete(interaction.channelId); + await interaction.reply('Queue has been reset'); + } + QueueCommands.close = close; + /** + * gives info about the queue * @param interaction * @throws errorMessage class if it cannot be left */ async function queue(interaction) { - let teamsize = interaction.options.getInteger('teamsize'); - if (teamsize) { - queueCreate(interaction); - return; - } let info = getInfo(interaction); let embed = new discord_js_1.MessageEmbed() .setTitle('Active Queue') @@ -176,18 +191,7 @@ var QueueCommands; } QueueCommands.queue = queue; /** - * stops a queue from an interaction - * @param interaction - * @throws errorMessage class if it cannot be joined - */ - async function stop(interaction) { - (0, util_1.memberIsModThrow)(interaction); - QUEUE.delete(interaction.channelId); - await interaction.reply('Queue has been reset'); - } - QueueCommands.stop = stop; - /** - * joins a queue from an interaction + * joins a queue * @param interaction * @throws errorMessage class if it cannot be readied */ @@ -202,7 +206,7 @@ var QueueCommands; } QueueCommands.join = join; /** - * leaves a queue from an interaction + * leaves a queue * @param interaction * @throws errorMessage class if it cannot be reset */ diff --git a/src/discord.ts b/src/discord.ts index 3f3c316..a22aaa1 100644 --- a/src/discord.ts +++ b/src/discord.ts @@ -5,16 +5,21 @@ import { Routes } from 'discord-api-types/v9'; const commands = [ { name: 'queue', - description: 'get queue info or initialize a queue for this channel', + description: 'initialize a queue for this channel', options: [ { type: 4, //INTEGER name: 'teamsize', description: 'size of each team', - min_value: 1 + min_value: 1, + required: true } ] }, + { + name: 'close', + description: 'close the queue for this channel' + }, { name: 'join', description: 'join the active queue' @@ -39,7 +44,8 @@ const commands = [ } ] } -]; +], + commandNames = commands.map(c => c.name); /** * register/reload commands on guild(s) diff --git a/src/index.ts b/src/index.ts index 54463b3..8b6aa41 100644 --- a/src/index.ts +++ b/src/index.ts @@ -31,16 +31,31 @@ CLIENT.on('interactionCreate', async interaction => { try { - if (interaction.commandName === 'queue') - await QueueCommands.queue(interaction); - else if (interaction.commandName === 'join') - await QueueCommands.join(interaction); - else if (interaction.commandName === 'leave') - await QueueCommands.leave(interaction); - else if (interaction.commandName === 'stop') - await QueueCommands.stop(interaction); - else if (interaction.commandName === 'player') - await getPlayerInteraction(interaction); + switch (interaction.commandName) { + + //mod commands + case 'open': + await QueueCommands.open(interaction); + break; + case 'close': + await QueueCommands.close(interaction); + break; + + //general commands + case 'queue': + await QueueCommands.queue(interaction); + break; + case 'join': + await QueueCommands.join(interaction); + break; + case 'leave': + await QueueCommands.leave(interaction); + break; + case 'player': + await getPlayerInteraction(interaction); + break; + + } } catch (e) { diff --git a/src/queue.ts b/src/queue.ts index 2c710ae..5dd54af 100644 --- a/src/queue.ts +++ b/src/queue.ts @@ -178,19 +178,37 @@ export namespace QueueCommands { } /** - * creates a queue from an interaction + * opens a queue + * @param interaction + * @throws errorMessage class if it cannot be left + */ + export async function open(interaction: CommandInteraction) { + + queueCreate(interaction); + + } + + /** + * closes a queue + * @param interaction + * @throws errorMessage class if it cannot be joined + */ + export async function close(interaction: CommandInteraction) { + memberIsModThrow(interaction); + + QUEUE.delete(interaction.channelId); + + await interaction.reply('Queue has been reset'); + + } + + /** + * gives info about the queue * @param interaction * @throws errorMessage class if it cannot be left */ export async function queue(interaction: CommandInteraction) { - let teamsize = interaction.options.getInteger('teamsize'); - - if (teamsize) { - queueCreate(interaction); - return; - } - let info = getInfo(interaction); let embed = new MessageEmbed() @@ -204,21 +222,7 @@ export namespace QueueCommands { } /** - * stops a queue from an interaction - * @param interaction - * @throws errorMessage class if it cannot be joined - */ - export async function stop(interaction: CommandInteraction) { - memberIsModThrow(interaction); - - QUEUE.delete(interaction.channelId); - - await interaction.reply('Queue has been reset'); - - } - - /** - * joins a queue from an interaction + * joins a queue * @param interaction * @throws errorMessage class if it cannot be readied */ @@ -240,7 +244,7 @@ export namespace QueueCommands { } /** - * leaves a queue from an interaction + * leaves a queue * @param interaction * @throws errorMessage class if it cannot be reset */