javascript - 在 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);
}
})
这就是我现在正在尝试使用的。
解决方案
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)
}
}
推荐阅读
- python-3.x - 基于路由查找列表中元素的组合
- python - 如何在 Pandas 中合并日期和时间?
- python - 如何在使用网格系统并添加文本换行时更改 tkinter 中的条目高度?
- pandas - 从日期时间数据类型中提取年份将输出作为浮点数
- python - 我无法让 json.loads 工作 - 不理解错误消息
- microsoft-graph-api - 在团队中创建新频道时的 Microsoft 图形通知
- python - 如何“修复” tkinter.Listbox 中的选定项目?
- python - 在python中命名嵌套字典
- scala - 如何在 Gatling 脚本的每个请求中动态传递纪元时间戳
- linux - 在我的 shell 脚本中运行嵌套循环时遇到问题