首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Discord.JS Purge.js命令问题

Discord.JS Purge.js命令问题
EN

Stack Overflow用户
提问于 2019-12-12 20:58:44
回答 1查看 1.4K关注 0票数 0

好的,我的机器人是用不同的代码重建的。

我正在使用一个稍微简化一些的fs命令和事件处理程序。我的命令按计划执行。

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

这是我的purge.js文件

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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"部分中的内容。而且,任何将其锁定到仅具有管理员权限的人的方法也是有用的。我尝试过这样做,但是它在嵌入时失败了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-14 13:01:19

如果我对你的理解是正确的,你想知道如何获得清除的引脚,机器人消息和用户消息数量。为此,您需要在删除消息后将其嵌入。

purge.js

代码语言:javascript
复制
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!');
        });
    },
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59312602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档