fix(bots/discord): fix sticky msg force timer always starting, add more logging

This commit is contained in:
PalmDevs
2025-04-14 21:08:21 +07:00
parent 33ba5b1f61
commit cb4dc42dfa

View File

@@ -7,18 +7,22 @@ withContext(on, 'messageCreate', async ({ discord, logger }, msg) => {
const store = discord.stickyMessages[msg.guildId]?.[msg.channelId]
if (!store) return
// (Re)start the timer
store.timerActive = true
if (store.timer) store.timer.refresh()
else store.timer = setTimeout(store.send, store.timerMs) as NodeJS.Timeout
// Timer is already active, and force timer isn't active, so we start the latter
// Timer is already active from previous event, and force timer isn't active, so we start the latter
if (store.timerActive && store.forceTimerMs && !store.forceTimerActive) {
logger.debug(`Channel ${msg.channelId} in guild ${msg.guildId} is active, starting force send timer`)
logger.debug(
`Channel ${msg.channelId} in guild ${msg.guildId} is very active, starting sticky message force timer`,
)
// (Re)start the force timer
store.forceTimerActive = true
if (store.forceTimer) store.forceTimer.refresh()
else store.forceTimer = setTimeout(store.send, store.forceTimerMs)
}
logger.debug(`Channel ${msg.channelId} in guild ${msg.guildId} is active, starting sticky message timer`)
// (Re)start the timer
store.timerActive = true
if (store.timer) store.timer.refresh()
else store.timer = setTimeout(store.send, store.timerMs) as NodeJS.Timeout
})