30 |
import ms from 'ms'; |
import ms from 'ms'; |
31 |
import { clearTimeoutv2, getTimeouts, setTimeoutv2 } from '../../utils/setTimeout'; |
import { clearTimeoutv2, getTimeouts, setTimeoutv2 } from '../../utils/setTimeout'; |
32 |
import { hasPermission, shouldNotModerate } from '../../utils/util'; |
import { hasPermission, shouldNotModerate } from '../../utils/util'; |
33 |
|
import UnbanQueue from '../../queues/UnbanQueue'; |
34 |
|
|
35 |
export default class TempBanCommand extends BaseCommand { |
export default class TempBanCommand extends BaseCommand { |
36 |
supportsInteractions: boolean = true; |
supportsInteractions: boolean = true; |
176 |
console.log(e); |
console.log(e); |
177 |
} |
} |
178 |
|
|
179 |
await msg.guild?.bans.create(user, banOptions); |
await msg.guild?.bans.create(user, { ...banOptions, reason: `[TEMPBAN] ${banOptions.reason ?? '**No reason provided**'}` }); |
180 |
|
|
181 |
const punishment = await Punishment.create({ |
const punishment = await Punishment.create({ |
182 |
type: PunishmentType.TEMPBAN, |
type: PunishmentType.TEMPBAN, |
192 |
createdAt: new Date() |
createdAt: new Date() |
193 |
}); |
}); |
194 |
|
|
195 |
const timeouts = getTimeouts(); |
// const timeouts = getTimeouts(); |
196 |
|
|
197 |
for (const timeout of timeouts.values()) { |
// for (const timeout of timeouts.values()) { |
198 |
if (timeout.row.params) { |
// if (timeout.row.params) { |
199 |
try { |
// try { |
200 |
const json = JSON.parse(timeout.row.params); |
// const json = JSON.parse(timeout.row.params); |
201 |
|
|
202 |
if (json) { |
// if (json) { |
203 |
if (json[1] === user.id && timeout.row.filePath.endsWith('tempban-remove')) { |
// if (json[1] === user.id && timeout.row.filePath.endsWith('tempban-remove')) { |
204 |
await clearTimeoutv2(timeout); |
// await clearTimeoutv2(timeout); |
205 |
} |
// } |
206 |
} |
// } |
207 |
} |
// } |
208 |
catch (e) { |
// catch (e) { |
209 |
console.log(e); |
// console.log(e); |
210 |
} |
// } |
211 |
|
// } |
212 |
|
// } |
213 |
|
|
214 |
|
// await setTimeoutv2('tempban-remove', time, msg.guild!.id, 'unban ' + user.id, user.id, msg.guild!.id); |
215 |
|
|
216 |
|
for await (const queue of client.queueManager.queues.values()) { |
217 |
|
if (queue instanceof UnbanQueue && queue.data!.userID === user.id && queue.data!.guildID === msg.guild!.id) { |
218 |
|
await queue.cancel(); |
219 |
} |
} |
220 |
} |
} |
221 |
|
|
222 |
await setTimeoutv2('tempban-remove', time, msg.guild!.id, 'unban ' + user.id, user.id, msg.guild!.id); |
await client.queueManager.addQueue(UnbanQueue, { |
223 |
|
data: { |
224 |
|
userID: user.id, |
225 |
|
guildID: msg.guild!.id |
226 |
|
}, |
227 |
|
runAt: new Date(Date.now() + time) |
228 |
|
}); |
229 |
|
|
230 |
await client.logger.logTempBan(banOptions, msg.guild!, user, punishment); |
await client.logger.logTempBan(banOptions, msg.guild!, user, punishment); |
231 |
|
|