diff --git a/src/events/MemberEvents/GuildMemberUpdate.ts b/src/events/MemberEvents/GuildMemberUpdate.ts index cd26953..efb1bc4 100644 --- a/src/events/MemberEvents/GuildMemberUpdate.ts +++ b/src/events/MemberEvents/GuildMemberUpdate.ts @@ -3,7 +3,9 @@ import NicknameChanged from "./GuildMemberUpdate/NicknameChanged"; import CacheHelper from "../../helpers/CacheHelper"; export default async function GuildMemberUpdate(oldMember: GuildMember, newMember: GuildMember) { - await CacheHelper.UpdateServerCache(newMember.guild); + const updatedFromCache = await CacheHelper.UpdateServerCache(newMember.guild); + + if (updatedFromCache) return; if (oldMember.nickname !== newMember.nickname) { // Nickname change await NicknameChanged(oldMember, newMember); diff --git a/src/helpers/CacheHelper.ts b/src/helpers/CacheHelper.ts index 22b6fd7..03bf06c 100644 --- a/src/helpers/CacheHelper.ts +++ b/src/helpers/CacheHelper.ts @@ -2,10 +2,10 @@ import { Guild } from "discord.js"; import Server from "../database/entities/Server"; export default class CacheHelper { - public static async UpdateServerCache(guild: Guild) { + public static async UpdateServerCache(guild: Guild): Promise { const cacheInterval = process.env.CACHE_INTERVAL; - if (!cacheInterval) return; + if (!cacheInterval) return false; let server = await Server.FetchOneById(Server, guild.id); @@ -14,9 +14,15 @@ export default class CacheHelper { await server.Save(Server, server); await CacheHelper.UpdateCache(guild); - } else if (server.LastCached.getTime() + Number(cacheInterval) < Date.now()) { + + return true; + } else if (server.LastCached.getTime() + Number(cacheInterval) > Date.now()) { await CacheHelper.UpdateCache(guild); + + return true; } + + return false; } private static async UpdateCache(guild: Guild) {