@@ -3,7 +3,7 @@ import { existsSync, readFileSync, readdirSync } from 'fs'
33import { join } from 'path'
44import { Client as APIClient } from '@revanced/bot-api'
55import { createLogger } from '@revanced/bot-shared'
6- import { Client as DiscordClient , type Message , Partials } from 'discord.js'
6+ import { Client as DiscordClient , type Message , Options , Partials } from 'discord.js'
77import { drizzle } from 'drizzle-orm/bun-sqlite'
88
99import * as schemas from './database/schemas'
@@ -80,6 +80,51 @@ export const discord = {
8080 parse : [ 'users' ] ,
8181 repliedUser : true ,
8282 } ,
83+ sweepers : {
84+ ...Options . DefaultSweeperSettings ,
85+ messages : {
86+ interval : 1_800 , // Every 30m
87+ lifetime : 3_600 , // Remove messages older than 1h
88+ } ,
89+ } ,
90+ makeCache : Options . cacheWithLimits ( {
91+ ...Options . DefaultMakeCacheSettings ,
92+ UserManager : 50 ,
93+ GuildMemberManager : {
94+ maxSize : 50 ,
95+ // Always keep client guild member in cache
96+ keepOverLimit : member => member . id === member . client . user . id ,
97+ } ,
98+ ThreadManager : {
99+ maxSize : 0 ,
100+ // Always keep threads that are used for moderation logging
101+ keepOverLimit : thread => config . moderation ?. log ?. thread === thread . id ,
102+ } ,
103+ GuildMessageManager : {
104+ maxSize : 0 ,
105+ // Always keep messages posted by the client in cache
106+ keepOverLimit : message => message . author . id === message . client . user . id ,
107+ } ,
108+ // Unneeded cache
109+ MessageManager : 0 ,
110+ ReactionManager : 0 ,
111+ VoiceStateManager : 0 ,
112+ ThreadMemberManager : 0 ,
113+ StageInstanceManager : 0 ,
114+ ReactionUserManager : 0 ,
115+ PresenceManager : 0 ,
116+ GuildTextThreadManager : 0 ,
117+ GuildStickerManager : 0 ,
118+ DMMessageManager : 0 ,
119+ GuildEmojiManager : 0 ,
120+ GuildBanManager : 0 ,
121+ GuildScheduledEventManager : 0 ,
122+ EntitlementManager : 0 ,
123+ AutoModerationRuleManager : 0 ,
124+ GuildForumThreadManager : 0 ,
125+ BaseGuildEmojiManager : 0 ,
126+ GuildInviteManager : 0 ,
127+ } ) ,
83128 partials : [ Partials . Message , Partials . Reaction , Partials . GuildMember ] ,
84129 } ) ,
85130 commands : Object . fromEntries ( Object . values ( commands ) . map ( cmd => [ cmd . name , cmd ] ) ) as Record <
0 commit comments