aboutsummaryrefslogtreecommitdiff
path: root/src/lib/utils/BushCache.ts
blob: 22a13ef3c2d7bb8ae126c11ea3331f6df77524a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { BadWords, GlobalModel, SharedModel, type Guild } from '#lib';
import { Collection, type Snowflake } from 'discord.js';

export class BushCache {
	public global = new GlobalCache();
	public shared = new SharedCache();
	public guilds = new GuildCache();
}

export class GlobalCache implements Omit<GlobalModel, 'environment'> {
	public disabledCommands: string[] = [];
	public blacklistedChannels: Snowflake[] = [];
	public blacklistedGuilds: Snowflake[] = [];
	public blacklistedUsers: Snowflake[] = [];
}

export class SharedCache implements Omit<SharedModel, 'primaryKey'> {
	public superUsers: Snowflake[] = [];
	public privilegedUsers: Snowflake[] = [];
	public badLinksSecret: string[] = [];
	public badLinks: string[] = [];
	public badWords: BadWords = {};
	public autoBanCode: string | null = null;
}

export class GuildCache extends Collection<Snowflake, Guild> {}