首页 > 解决方案 > 在 discord.js 中创建使用相同命令的用户列表

问题描述

我正在尝试制作一个不和谐的机器人。我已经走了很远。我似乎无法弄清楚如何将我的数据放入 JSON 文件中的列表中。

我的 JSON 文件如下所示:

{
    "t7 bags": ["username1#1234", "username2#1234"],
    "t8 bags": ["username#1234"]
}

当他们在 discord 上使用某个命令时,我需要使用 Discord.js 中的 message.author.id 将更多“用户名”推送到“t7 包”和“t8 包”中。

我现在正在使用 fs.writeFile ,有没有更好的方法来做到这一点。

if(message.content.startsWith(prefix + " craft")) {
    editedmessage = message.content.slice(prefix.length + 1);
    skill = message.content.slice(9);



            client.msgs [skill] = {
                users: message.author.id
                }
                message.reply("You can now " + editedmessage)
}
fs.writeFile("./msgs.json", JSON.stringify (client.msgs, null, 4), err => {
    if (err) throw err; 

    {

        return console.log(err);
    }
 })

这就是我现在正在尝试使用的。

标签: javascriptbotsdiscord

解决方案


if (message.content.startsWith (prefix + " who")) { 
    let filter = message.content.slice(prefix.length + 5) 
    let item = message.content.slice(7) 
    let _skill = client.msgs[filter]
    if(!_skill) return message.reply('Can`t find skill')
    const whoEmbed = new discord.RichEmbed() 
        .setColor('#0099ff') 
        .setTitle('These players can craft ' + item) 
        .setAuthor('VINDICTIVE CRAFTER BOT', 'https://i.imgur.com/wSTFkRM.png') 
        .setDescription(`${_skill.map(user => `<@${user}>`).join('\n')}`) 
        .setFooter('This bot was created by BigTibbies'); 
    message.channel.send(whoEmbed); 
}

添加数据代码

if(message.content.startsWith(prefix + " craft")) {
    let editedmessage = message.content.slice(prefix.length + 1);
    let skill = message.content.slice(9);

    if(!client.msgs[skill]) {
        client.msgs[skill] = [message.author.id]
    } else {
        if(!client.msgs[skill].includes(message.author.id)) client.msgs[skill].push(message.author.id)
    }
}

推荐阅读