有没有办法为每 x 数据量创建一个嵌入页面?

我创建了一个排行榜命令来获得积分最多的前 20 名用户。然而,目前它在一个单一的嵌入中显示所有这些。以后如果我想进入前 50 名,不可能像 iirc 那样只能有 25 个字段。


我想做的是为每 10 个用户创建一个页面。


其中一些没有意义,因为我只是想获得一些关于如何做的想法。


const Discord = require('discord.js');

const sqlite = require('sqlite3').verbose();


const db = new sqlite.Database('./mbot.db', (err) => {

    if (err) console.log(err.message);

});


module.exports = {

    name: 'leaderboard',

    description: 'Get up to 20 users with the most points',

    async execute(message, args, client) {

        const embeds = [];

        for (let i = -1; i < 5; i++) {

            embeds.push(new Discord.RichEmbed());

        }


        for (let i = 0; i < 20; i++) {

            if (i < 10) {

                embeds[0].addField('usersthings');

            } else if (i < 20) {

                embeds[1].addField('usersandthings');

            }

        }

        message.channel.send(embeds[0]);

        const leaders = await leaderboard(message, client);

        return message.channel.send(leaders);

    },

};


function leaderboard(message, client) {

    return new Promise((resolve) => {

        db.all('SELECT points points, id id FROM users ORDER BY points DESC', async (err, rows) => {

            if (err) return console.log(err);

            const embed = new Discord.RichEmbed().setTitle('Points Leaderboard');

            if (!rows.length) return message.channel.send('No users found!');

            const each = new Promise(async (resolve) => {

                const users = [];

                rows.forEach((val, i, arr) => {

                    users.push({

                        id: arr[i].id,

                        points: arr[i].points,

                    });

                });

                return resolve(users);

            });

        });

    });

}


犯罪嫌疑人X
浏览 96回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript