From 50470ca632f10345eaba65df214afcc319ad15ff Mon Sep 17 00:00:00 2001 From: Yuzu Date: Sat, 18 Sep 2021 05:35:02 -0700 Subject: [PATCH] Fixed cache not updating on guild join --- src/discord/Core.ts | 25 ++++++++++++++++--------- src/providers/Cache.ts | 8 ++++++++ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/discord/Core.ts b/src/discord/Core.ts index 6427985..2a8d3f3 100644 --- a/src/discord/Core.ts +++ b/src/discord/Core.ts @@ -1,3 +1,4 @@ +import { Guild } from ".prisma/client"; import { Message } from "discord.js"; import Logger from "../libs/Logger"; import Cache from "../providers/Cache"; @@ -17,21 +18,27 @@ export default class Core { skipDuplicates: true }); - // TODO : Make it cache guild on join - await Cache.updateGuildsCache(); - // TODO: Better timer setInterval(() => { Cache.updateGuildsCache(); }, 5 * 60 * 1000) - if(DiscordProvider.client.user) - DiscordProvider.client.user.setActivity("your heartbeat 💗", { - type: "LISTENING" - }); - - + DiscordProvider.client.user!.setActivity("your heartbeat 💗", { + type: "LISTENING" + }); + Logger.info('Core started successfully'); } + async guildCreate(guild: Guild) { + if(await Prisma.client.guild.findFirst({ where: {id: guild.id} })) return; + + await Prisma.client.guild.create({ + data: { + id: guild.id + } + }); + + await Cache.updateGuildCache(guild.id); + } } diff --git a/src/providers/Cache.ts b/src/providers/Cache.ts index 41fbf18..cb9f94d 100644 --- a/src/providers/Cache.ts +++ b/src/providers/Cache.ts @@ -1,3 +1,4 @@ +import { Snowflake } from "discord-api-types"; import Prisma from "./Prisma"; class Cache { @@ -19,6 +20,13 @@ class Cache { } } + public async updateGuildCache(guildID: Snowflake) { + const DBGuild = await Prisma.client.guild.findFirst({ where:{id: guildID} }); + + if(DBGuild === null) return; + this.setGuildData(guildID, DBGuild); + } + public setGuildData(id: string, data: Object): void { this.cache.Guilds[id] = data; }