diff --git a/src/commands/inventory.ts b/src/commands/inventory.ts index fada8b7..db4a298 100644 --- a/src/commands/inventory.ts +++ b/src/commands/inventory.ts @@ -24,6 +24,7 @@ module.exports = { option .setName('page') .setDescription('The page of the inventory to view.') + .setMinValue(1) .setRequired(false) ), async execute(interaction: any) { @@ -33,48 +34,82 @@ module.exports = { const page = interaction.options.getInteger('page') || 1; + if(page <= 0 || Math.ceil(inv.length / 20) < page) { + await interaction.reply('That page does not exist.'); + + return; + } + if(interaction.options.getUser('user')) { const user = interaction.options.getUser('user').id; const userInv: Inventory[] = new InventoryUtil(user).getInventory(); - resEmbed.setColor(interaction.options.getUser('user').accentColor | Math.floor(Math.random() * inv.length)); + resEmbed.setColor(interaction.options.getUser('user').accentColor | 0x5865F2); resEmbed.setTitle(`${interaction.options.getUser('user').displayName}'${interaction.options.getUser('user').displayName.endsWith('s') ? '' : 's'} Inventory`); let items = ""; - userInv.slice(Math.floor((page - 1) * 25), Math.floor((page - 1) * 25) + 25).forEach(item => { - items += `* ${item.emoji} ${item.text} ${item.discovered ? '(New Discovery)' : ''}\n`; + userInv.slice(Math.floor((page - 1) * 20), Math.floor((page - 1) * 20) + 20).forEach(item => { + items += `* ${item.emoji} ${item.text} ${item.discovered ? '(🎇)' : ''}\n`; }); - resEmbed!.setDescription( - items - ); + let fields = []; + + fields.push({ + name: ' ', + value: items.split('\n').slice(0, 10).join('\n'), + inline: true + }); + + if (items.split('\n').slice(10).length > 0) { + fields.push({ + name: ' ', + value: items.split('\n').slice(10).join('\n'), + inline: true + }); + } + + resEmbed.addFields(fields); resEmbed!.setFooter({ - text: `Page ${page} of ${Math.ceil(userInv.length / 25)} (${userInv.length} items)` + text: `Page ${page} of ${Math.ceil(userInv.length / 20)} (${userInv.length} items)` }); await interaction.reply({ embeds: [resEmbed] }); return; } - resEmbed.setColor(interaction.user.accentColor | Math.floor(Math.random() * inv.length)); + resEmbed.setColor(interaction.user.accentColor | 0x5865F2); resEmbed.setTitle('My Inventory'); let items = ""; - inv.slice(Math.floor((page - 1) * 25), Math.floor((page - 1) * 25) + 25).forEach(item => { - items += `* ${item.emoji} ${item.text} ${item.discovered ? '(**New Discovery**)' : ''}\n`; + inv.slice(Math.floor((page - 1) * 20), Math.floor((page - 1) * 20) + 20).forEach(item => { + items += `* ${item.emoji} ${item.text} ${item.discovered ? '(🎇)' : ''}\n`; }); resEmbed!.setFooter({ - text: `Page ${page} of ${Math.ceil(inv.length / 25)} (${inv.length} items)` + text: `Page ${page} of ${Math.ceil(inv.length / 20)} (${inv.length} items)` }); - resEmbed!.setDescription( - items - ); + let fields = []; + + fields.push({ + name: ' ', + value: items.split('\n').slice(0, 10).join('\n'), + inline: true + }); + + if (items.split('\n').slice(10).length > 0) { + fields.push({ + name: ' ', + value: items.split('\n').slice(10).join('\n'), + inline: true + }); + } + + resEmbed.addFields(fields); await interaction.reply({ embeds: [resEmbed] }); },