diff --git a/src/managers/CachedManager.js b/src/managers/CachedManager.js index f532db68ef25..0f7e914077e4 100644 --- a/src/managers/CachedManager.js +++ b/src/managers/CachedManager.js @@ -45,8 +45,15 @@ class CachedManager extends DataManager { _add(data, cache = true, { id, extras = [] } = {}) { const existing = this.cache.get(id ?? data.id); - if (cache) existing?._patch(data); - if (existing) return existing; + if (existing) { + if (cache) { + existing._patch(data); + return existing; + } + const clone = existing._clone(); + clone._patch(data); + return clone; + } const entry = this.holds ? new this.holds(this.client, data, ...extras) : data; if (cache) this.cache.set(id ?? entry.id, entry);