Guild.JS 丰富的嵌入问题

Guild.JS Rich Embed Issue

我正在为我的 discord 开发一个机器人,我在 guild.js 文件中遇到了轻微的问题。该命令有效但未达到预期效果。

我试图在我的 guild.js Rich Embed 中区分机器人用户和非机器人用户。到目前为止,它列出了所有用户而不将它们分开并将 undefined 放在 Bots 字段中。

这是我的 guild.js 文件:

const Discord = require('discord.js')

module.exports = {
    name: 'guild',
    description: 'Get info on the server.',
    execute(message) {
            console.log("embedding")


            const embed = new Discord.RichEmbed()
            .setTitle("Guild Details")
            .setColor(0x00AE86)
            .setFooter("Guardian", "https://i.imgur.com/jifYK6s.png")
            .setThumbnail("https://i.imgur.com/jifYK6s.png")
            .setTimestamp()
            .setURL("https://newgitlab.elaztek.com/phantomdev/guardian")
            .addField("Guild",
            (`${message.guild.name}`), true)
            .addField("Members",
            (`${message.guild.memberCount}`), true)
                .addField("Bots",
            (`${message.guild.botCount}`), true)
    message.channel.send({embed});
}};

我的 message.jsindex.js 可以在下面找到。

这是我的 message.js:

const { prefix } = require('./prefix.json');

module.exports = {
    name: 'message',
    description: 'client message event.',
    execute:function(client) {
        client.on('message',message => {
    if (!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/);
    const command = args.shift().toLowerCase();
        if (!client.commands.has(command)) return;

        try {
            client.commands.get(command).execute(message, args);
            } catch (error) {
                console.error(error);
                message.reply('there was an error trying to execute that command!');
                }
})

}};

这是我的index.js

const fs = require('fs');
const Discord = require('discord.js');
const client = new Discord.Client();
const { token } = require('./token.json');

client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));

for (const file of commandFiles) {
    const command = require(`./commands/${file}`);
    client.commands.set(command.name, command);
    console.log(file,command)
}

fs.readdir('./events/', (err, files) => {
    if (err) return console.error(err);
    files.forEach(file => {
        if(!file.endsWith('.js')) return;
        const eventFunction = require(`./events/${file}`);
        console.log(eventFunction)
        eventFunction.execute(client)
    });
});

client.login(token);

如有任何帮助,我们将不胜感激。

公会 class 没有 botCount 属性 所以你需要使用其他方式:

.addField("Members",
(`${message.guild.members.filter((m) => !m.user.bot).size}`), true)
.addField("Bots",
(`${message.guild.members.filter((m) => m.user.bot).size}`), true)

第一个过滤器获取所有非机器人成员,returns 大小,第二个字段相反,它获取所有机器人成员,returns 大小.