diff --git a/commands/message/info/guild.js b/commands/message/info/guild.js index a02f264..1cd5784 100644 --- a/commands/message/info/guild.js +++ b/commands/message/info/guild.js @@ -1,8 +1,10 @@ -const { createEmbed } = require("../../../labscore/utils/embed"); +const { createEmbed, page, formatPaginationEmbeds } = require("../../../labscore/utils/embed"); const { guildFeaturesField } = require("../../../labscore/utils/fields"); const { icon, highlight, timestamp, codeblock } = require("../../../labscore/utils/markdown"); const { editOrReply } = require("../../../labscore/utils/message"); +const { paginator } = require('../../../labscore/client'); + module.exports = { name: 'server', label: 'user', @@ -81,18 +83,27 @@ module.exports = { // Guild Features if(g.features.length >= 1){ - - // Create an empty field so everything properly aligns on desktop - guildCard.fields.push({ - name: `​`, - value: `​`, - inline: true - }) - let featureCards = guildFeaturesField(g) + + let pages = []; + let i = 0; + let ic = Math.ceil(featureCards.length / 2); + + if(ic == 1) featureCards[0].name = `${icon("activity")} Guild Features` + while(featureCards.length >= 1){ + i++; + const sub = featureCards.splice(0, 2) + sub[0].name = `${icon("activity")} Guild Features (${i}/${ic})` - featureCards[0].name = `${icon("activity")} Guild Features` - guildCard.fields = guildCard.fields.concat(featureCards) + pages.push(page(JSON.parse(JSON.stringify(Object.assign({ ...guildCard }, { fields: sub }))))) + } + + pages = formatPaginationEmbeds(pages) + const paging = await paginator.createPaginator({ + context, + pages + }); + return; } return editOrReply(context, guildCard) diff --git a/commands/message/info/invite.js b/commands/message/info/invite.js index 675bde3..e459673 100644 --- a/commands/message/info/invite.js +++ b/commands/message/info/invite.js @@ -1,10 +1,12 @@ const { DISCORD_INVITES } = require("../../../labscore/constants"); -const { createEmbed } = require("../../../labscore/utils/embed"); +const { createEmbed, formatPaginationEmbeds, page } = require("../../../labscore/utils/embed"); const { guildFeaturesField } = require("../../../labscore/utils/fields"); const { icon, highlight, timestamp, link } = require("../../../labscore/utils/markdown"); const { editOrReply } = require("../../../labscore/utils/message"); const { STATICS } = require("../../../labscore/utils/statics"); +const { paginator } = require('../../../labscore/client'); + module.exports = { name: 'invite', label: 'invite', @@ -41,20 +43,37 @@ module.exports = { } } - // Guild Features - if(g.features.length >= 1){ - let featureCards = guildFeaturesField(g) - - featureCards[0].name = `${icon("activity")} Guild Features` - inviteCard.fields = inviteCard.fields.concat(featureCards) - } - if(g.splash){ inviteCard.image = { url: `https://cdn.discordapp.com/splashes/${g.id}/${g.splash}.png?size=4096` } } + // Guild Features + if(g.features.length >= 1){ + let featureCards = guildFeaturesField(g) + + let pages = []; + let i = 0; + let ic = Math.ceil(featureCards.length / 2); + + if(ic == 1) featureCards[0].name = `${icon("activity")} Guild Features` + while(featureCards.length >= 1){ + i++; + const sub = featureCards.splice(0, 2) + sub[0].name = `${icon("activity")} Guild Features (${i}/${ic})` + + pages.push(page(JSON.parse(JSON.stringify(Object.assign({ ...inviteCard }, { fields: sub }))))) + } + + pages = formatPaginationEmbeds(pages) + const paging = await paginator.createPaginator({ + context, + pages + }); + return; + } + return editOrReply(context, inviteCard) }catch(e){ console.log(e) diff --git a/labscore/utils/embed.js b/labscore/utils/embed.js index 235902c..c048b03 100644 --- a/labscore/utils/embed.js +++ b/labscore/utils/embed.js @@ -118,12 +118,11 @@ module.exports.formatPaginationEmbeds = function(embeds){ ne.embed.footer.text = e.embed.footer.text + ` • Page ${i}/${l}` formatted.push(ne) } else if (e.embeds){ - let fse = [] - for(const se of e.embeds){ + ne.embeds = e.embeds.map((se)=>{ se.footer.text = se.footer.text + ` • Page ${i}/${l}` - fse.push(se) - } - ne.embeds = fse + return se; + }) + formatted.push(ne) } else { formatted.push(e)