zappyzep/backend/src/plugins/Utility/refreshMembers.ts

21 lines
689 B
TypeScript
Raw Normal View History

import { Guild } from "eris";
import { MINUTES, noop } from "../../utils";
const MEMBER_REFRESH_FREQUENCY = 10 * MINUTES; // How often to do a full member refresh when using commands that need it
2020-07-06 02:17:51 +03:00
const memberRefreshLog = new Map<string, { time: number; promise: Promise<void> }>();
export async function refreshMembersIfNeeded(guild: Guild) {
const lastRefresh = memberRefreshLog.get(guild.id);
if (lastRefresh && Date.now() < lastRefresh.time + MEMBER_REFRESH_FREQUENCY) {
return lastRefresh.promise;
}
const loadPromise = guild.fetchAllMembers().then(noop);
memberRefreshLog.set(guild.id, {
time: Date.now(),
promise: loadPromise,
});
return loadPromise;
}