mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-10 12:25:02 +00:00
Centralize periodic checks for mutes, tempbans, vcalerts, reminders, and scheduled posts
This should result in a significant performance improvement. The new method is also more precise than the old one, allowing the aforementioned checks to be performed with second-precision.
This commit is contained in:
parent
c84d1a0be1
commit
c7751a9da1
55 changed files with 883 additions and 366 deletions
|
@ -1,11 +1,15 @@
|
|||
import { Mute } from "./entities/Mute";
|
||||
import { ScheduledPost } from "./entities/ScheduledPost";
|
||||
import { Reminder } from "./entities/Reminder";
|
||||
import { Tempban } from "./entities/Tempban";
|
||||
import { VCAlert } from "./entities/VCAlert";
|
||||
|
||||
interface GuildEventArgs extends Record<string, unknown[]> {
|
||||
expiredMutes: [Mute[]];
|
||||
scheduledPosts: [ScheduledPost[]];
|
||||
reminders: [Reminder[]];
|
||||
expiredMute: [Mute];
|
||||
scheduledPost: [ScheduledPost];
|
||||
reminder: [Reminder];
|
||||
expiredTempban: [Tempban];
|
||||
expiredVCAlert: [VCAlert];
|
||||
}
|
||||
|
||||
type GuildEvent = keyof GuildEventArgs;
|
||||
|
@ -52,3 +56,14 @@ export function emitGuildEvent<K extends GuildEvent>(guildId: string, eventName:
|
|||
listener(...args);
|
||||
}
|
||||
}
|
||||
|
||||
export function hasGuildEventListener<K extends GuildEvent>(guildId: string, eventName: K): boolean {
|
||||
if (!guildListeners.has(guildId)) {
|
||||
return false;
|
||||
}
|
||||
const listenerMap = guildListeners.get(guildId)!;
|
||||
if (listenerMap[eventName] == null || listenerMap[eventName]!.length === 0) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue