Discord.JS Purge.js命令问题

问题描述 投票:0回答:1

好,所以我的机器人用了一些不同的代码来重建。

我正在使用稍微简化一些的fs命令和事件处理程序。我的命令按预期工作。

但是我想将修剪的量添加到richEmbed的字段中,并且会不断出错。

这是我的purge.js文件

const Discord = require('discord.js')


module.exports = {
    name: 'purge',
    description: 'Purge up to 99 messages.',
    execute(message, args) {
        console.log("purging messages")


        const embed = new Discord.RichEmbed()
            .setTitle("Success")
            .setColor(0x00AE86)
            .setFooter("Guardian", "https://raw.githubusercontent.com/phantomdev-github/Resources/master/Discord%20Bots/Guardian/src/avatar.png")
            .setThumbnail("https://raw.githubusercontent.com/phantomdev-github/Resources/master/Discord%20Bots/Guardian/src/avatar.png")
            .setTimestamp()
            .setURL("https://github.com/phantomdev-github/Resources/tree/master/Discord%20Bots/Guardian")
            .addField("Bot Messages Purged", "missing code here", false)
            .addField("User Pins Purged", "missing code here", false)
            .addField("User Messages Purged", "missing code here", false)
            .addField("Total Messages Purged", "missing code here", false)

        message.channel.send({ embed });

        const amount = parseInt(args[0]) + 1;

        if (isNaN(amount)) {
            return message.reply('that doesn\'t seem to be a valid number.');
        } else if (amount <= 1 || amount > 100) {
            return message.reply('you need to input a number between 1 and 99.');
        }

        message.channel.bulkDelete(amount, true).catch(err => {
            console.error(err);
            message.channel.send('there was an error trying to prune messages in this channel!');
        });
    },
};

如果有帮助,我的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);

这是我的message.js

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

module.exports = {
    name: 'message',
    description: '',
    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!');
                }
})

}};

基本上,我正在尝试找出要放入"missing code here"部分的内容。同样,仅将其锁定给具有管理员权限的人员的任何方法也将很有用。我尝试过,但是无法与嵌入一起使用。

module discord.js fs
1个回答
0
投票

如果我理解的正确,您想知道如何获取清除的引脚,bot消息和用户消息的数量。为此,您需要在删除邮件后放入嵌入内容。

purge.js

const Discord = require('discord.js')


module.exports = {
    name: 'purge',
    description: 'Purge up to 99 messages.',
    execute(message, args) {
        console.log("purging messages")

        const amount = parseInt(args[0]) + 1;

        if (isNaN(amount)) {
            return message.reply('that doesn\'t seem to be a valid number.');
        } else if (amount <= 1 || amount > 100) {
            return message.reply('you need to input a number between 1 and 99.');
        }

        message.channel.bulkDelete(amount, true).then(deletedMessages => {
            // Filter the deleted messages with .filter()
            var botMessages = deletedMessages.filter(m => m.author.bot);
            var userPins = deletedMessages.filter(m => m.pinned);
            var userMessages = deletedMessages.filter(m => !m.author.bot);

            const embed = new Discord.RichEmbed()
                .setTitle("Success")
                .setColor(0x00AE86)
                .setFooter("Guardian", "https://raw.githubusercontent.com/phantomdev-github/Resources/master/Discord%20Bots/Guardian/src/avatar.png")
                .setThumbnail("https://raw.githubusercontent.com/phantomdev-github/Resources/master/Discord%20Bots/Guardian/src/avatar.png")
                .setTimestamp()
                .setURL("https://github.com/phantomdev-github/Resources/tree/master/Discord%20Bots/Guardian")
                .addField("Bot Messages Purged", botMessages.size, false)
                .addField("User Pins Purged", userPins.size, false)
                .addField("User Messages Purged", userMessages.size, false)
                .addField("Total Messages Purged", deletedMessages.size, false);

            message.channel.send(embed);
        }).catch(err => {
            console.error(err);
            message.channel.send('there was an error trying to prune messages in this channel!');
        });
    },
};
© www.soinside.com 2019 - 2024. All rights reserved.