fix(bots/discord): fix timeout overflow check for role presets

This commit is contained in:
PalmDevs
2025-05-02 22:56:12 +07:00
parent 27e06db1d9
commit 9d7bd3286a
3 changed files with 8 additions and 4 deletions

View File

@@ -3,7 +3,7 @@ import CommandError, { CommandErrorType } from '$/classes/CommandError'
import { createModerationActionEmbed } from '$/utils/discord/embeds'
import { sendModerationReplyAndLogs } from '$/utils/discord/moderation'
import { applyRolePreset, removeRolePreset } from '$/utils/discord/rolePresets'
import { parseDuration } from '$/utils/duration'
import { isSafeTimeoutDuration, parseDuration } from '$/utils/duration'
export default new ModerationCommand({
name: 'mute',
@@ -63,7 +63,7 @@ export default new ModerationCommand({
createModerationActionEmbed('Muted', user, executor.user, reason, Math.ceil(expires / 1000)),
)
if (Number.isSafeInteger(expires))
if (isSafeTimeoutDuration(duration))
setTimeout(() => {
removeRolePreset(member, 'mute')
}, duration)

View File

@@ -2,7 +2,7 @@ import { ModerationCommand } from '$/classes/Command'
import CommandError, { CommandErrorType } from '$/classes/CommandError'
import { sendPresetReplyAndLogs } from '$/utils/discord/moderation'
import { applyRolePreset, removeRolePreset } from '$/utils/discord/rolePresets'
import { parseDuration } from '$/utils/duration'
import { isSafeTimeoutDuration, parseDuration } from '$/utils/duration'
const SubcommandOptions = {
member: {
@@ -78,7 +78,7 @@ export default new ModerationCommand({
)
}
if (Number.isSafeInteger(expires))
if (expires && isSafeTimeoutDuration(expires))
setTimeout(() => {
removeRolePreset(member, preset)
}, expires)

View File

@@ -23,3 +23,7 @@ export const durationToString = (duration: number) => {
seconds ? `${seconds}s` : ''
}`
}
export function isSafeTimeoutDuration(duration: number) {
return duration > 0 && duration < 2 ** 31 - 1
}