@@ -9,37 +9,25 @@ withContext(on, 'messageCreate', async ({ discord, logger }, msg) => {
9
9
10
10
if ( store . timerActive ) {
11
11
// Timer is already active, so we try to start the force timer
12
- if ( store . forceTimerMs ) {
12
+ if ( store . forceTimerMs && ! store . forceTimerActive ) {
13
13
// Force timer isn't active, so we start it
14
- if ( ! store . forceTimerActive ) {
15
- logger . debug (
16
- `Channel ${ msg . channelId } in guild ${ msg . guildId } is active, starting force send timer and clearing existing timer` ,
17
- )
14
+ logger . debug (
15
+ `Channel ${ msg . channelId } in guild ${ msg . guildId } is active, starting force send timer and clearing existing timer` ,
16
+ )
18
17
19
- // Clear the timer
20
- clearTimeout ( store . timer )
21
- store . timerActive = false
18
+ // Clear the timer
19
+ clearTimeout ( store . timer )
20
+ store . timerActive = false
22
21
23
- // (Re)start the force timer
24
- store . forceTimerActive = true
25
- if ( ! store . forceTimer )
26
- store . forceTimer = setTimeout (
27
- ( ) =>
28
- store . send ( true ) . then ( ( ) => {
29
- store . forceTimerActive = false
30
- } ) ,
31
- store . forceTimerMs ,
32
- ) as NodeJS . Timeout
33
- else store . forceTimer . refresh ( )
34
- } else {
35
- // Force timer is already active, so we clear the force timer
36
- store . forceTimerActive = false
37
- clearTimeout ( store . forceTimer )
38
- // and force send
39
- store . send ( true )
40
- }
22
+ // Start the force timer
23
+ store . forceTimerActive = true
24
+ // biome-ignore lint/suspicious/noAssignInExpressions: This works fine
25
+ ; ( store . forceTimer ??= setTimeout ( store . send , store . forceTimerMs ) ) . refresh ( )
41
26
}
42
- } else if ( ! store . forceTimerActive ) {
27
+ } else if ( store . forceTimerActive ) {
28
+ // Force timer is already active, so force send the message, and clear the force timer
29
+ store . send ( true )
30
+ } else {
43
31
// Both timers aren't active, so we start the timer
44
32
store . timerActive = true
45
33
if ( ! store . timer ) store . timer = setTimeout ( store . send , store . timerMs ) as NodeJS . Timeout
0 commit comments