feat: inventory improvements
This commit is contained in:
parent
d4c13b93d6
commit
2cb17adb32
|
@ -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] });
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue