From 906fba7763bb0fc5a1647d41e24a99fa9e681d77 Mon Sep 17 00:00:00 2001 From: ayntee Date: Thu, 11 Mar 2021 18:01:44 +0400 Subject: [PATCH] fix(controllers/guilds): clear members in GUILD_DELETE event (#648) * fix(controllers/guilds): clear members in GUILD_DELETE event * idk * idk * Update src/api/controllers/guilds.ts * Update src/api/controllers/guilds.ts * Update src/api/controllers/guilds.ts * Update src/api/controllers/guilds.ts * Update src/api/controllers/guilds.ts * Update src/api/controllers/guilds.ts * Update src/api/controllers/guilds.ts * deno fmt * Update src/api/controllers/guilds.ts Co-authored-by: ITOH <72305210+itohatweb@users.noreply.github.com> * deno fmt again * idk * Update src/api/controllers/guilds.ts Co-authored-by: ITOH <72305210+itohatweb@users.noreply.github.com> Co-authored-by: ITOH <72305210+itohatweb@users.noreply.github.com> --- src/api/controllers/guilds.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/api/controllers/guilds.ts b/src/api/controllers/guilds.ts index 8be9f8df7..478dfb636 100644 --- a/src/api/controllers/guilds.ts +++ b/src/api/controllers/guilds.ts @@ -9,7 +9,7 @@ import { } from "../../types/mod.ts"; import { cache } from "../../util/cache.ts"; import { Collection } from "../../util/collection.ts"; -import { structures } from "../structures/mod.ts"; +import { Member, structures } from "../structures/mod.ts"; import { cacheHandlers } from "./cache.ts"; export async function handleInternalGuildCreate( @@ -48,6 +48,19 @@ export async function handleInternalGuildDelete(data: DiscordPayload) { } }); + cacheHandlers.forEach("members", async (member) => { + if (!member.guilds.has(payload.id)) return; + + member.guilds.delete(payload.id); + + if (!member.guilds.size) { + await cacheHandlers.delete("members", member.id); + return; + } + + await cacheHandlers.set("members", member.id, member); + }); + if (payload.unavailable) { return cacheHandlers.set("unavailableGuilds", payload.id, Date.now()); }