我怎样才能有一个静态集合

时间:2021-04-02 07:13:58

标签: javascript node.js collections discord discord.js

所以,我尝试使用 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)

如果我修改了服务器上的某些内容,则集合更新,而我不想要那样。

1 个答案:

答案 0 :(得分:0)

.array() 在内部缓存并在更改时重建。

改为:

client.backup.set(message.guild.id, Array.from(message.guild.roles.cache.values()));