@@ -158,6 +158,9 @@ const COMMON_EMOJIS = [
158
158
"🙏" ,
159
159
] ;
160
160
161
+ const lastMsgs : Discord . Message < boolean > [ ] = [ ] ;
162
+ const lastReactedMessages = new Set < string > ( ) ;
163
+
161
164
export default async ( bot : DiscordBot ) => {
162
165
const data = await bot . container . getService ( "Data" ) ;
163
166
const db = await ( await bot . container . getService ( "SQL" ) ) . getLocalDatabase ( ) ;
@@ -167,9 +170,6 @@ export default async (bot: DiscordBot) => {
167
170
let lastSetActivity : Discord . ActivitiesOptions | undefined ;
168
171
let lastMsgTime = ( data . lastMsgTime = data . lastMsgTime ?? now ) ;
169
172
let lastChatTime = now ;
170
- let lastReactionUserId : string | undefined ;
171
- const lastMsgs : Discord . Message < boolean > [ ] = [ ] ;
172
- const lastRespondedReactionMsgs : string [ ] = [ ] ;
173
173
let posting = false ;
174
174
let replied = false ;
175
175
@@ -308,7 +308,7 @@ export default async (bot: DiscordBot) => {
308
308
} , SAVE_INTERVAL ) ; // save data
309
309
310
310
setInterval ( async ( ) => {
311
- lastRespondedReactionMsgs . splice ( 0 , lastRespondedReactionMsgs . length - 1 ) ;
311
+ lastReactedMessages . clear ( ) ;
312
312
} , MSG_REPLY_REACTION_CLEAR_INTERVAL ) ;
313
313
314
314
setInterval ( async ( ) => {
@@ -369,21 +369,19 @@ export default async (bot: DiscordBot) => {
369
369
}
370
370
371
371
if (
372
- user . id !== lastReactionUserId &&
373
- ! lastRespondedReactionMsgs . includes ( message . id ) &&
372
+ ! lastReactedMessages . has ( message . id ) &&
374
373
Math . random ( ) <= ( reaction . emoji . name === "h_" ? 0.025 : MSG_REPLY_REACTION_FREQ )
375
374
) {
376
375
const mk = await (
377
376
await bot . container . getService ( "Markov" )
378
377
) . generate ( reaction . emoji . toString ( ) , DefaultMarkovConfig ) ;
379
378
if ( mk ) {
380
- lastRespondedReactionMsgs . push ( message . id ) ;
379
+ lastReactedMessages . add ( message . id ) ;
381
380
await ( message . channel as Discord . TextChannel )
382
381
. send ( `${ user . mention } ` + mk )
383
382
. catch ( ) ;
384
383
}
385
384
}
386
- lastReactionUserId = user . id ;
387
385
} ) ;
388
386
389
387
bot . discord . on ( "messageCreate" , async msg => {
0 commit comments