mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-19 15:30:00 +00:00
20 lines
689 B
TypeScript
20 lines
689 B
TypeScript
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
|
|
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;
|
|
}
|