所以,我尝试使用 NodeJS 在 Discord 上做一个备份系统,我的问题是,当我保存所有角色的集合时,当我修改服务器上的角色时,它也会更改集合,这很奇怪。这是我的代码。
// My index
const { Collection, Client } = require('discord.js');
const client = new Client();
client.backup = new Collection();
// My command to set the collection
client.backup.set(message.guild.id, message.guild.roles.cache.array());
// My command to get the collection
const backup = client.backup.get(message.guild.id)
console.log(backup)
好的,所以一切正常,我的命令返回集合,但是..当我修改一个角色并且我再次发出命令“获取”集合而不是“设置”它更新集合时,我不知道为什么。
每次我做
client.backup.get(message.guild.id)
如果我修改了服务器上的某些内容,则集合更新,而我不想要那样。
答案 0 :(得分:0)
.array() 在内部缓存并在更改时重建。
改为:
client.backup.set(message.guild.id, Array.from(message.guild.roles.cache.values()));