mirror of
https://github.com/qwerinope/qweribot.git
synced 2025-12-19 05:51:37 +01:00
20 lines
1.0 KiB
TypeScript
20 lines
1.0 KiB
TypeScript
import { redis } from "bun";
|
|
import { sendMessage } from "commands";
|
|
import { buildTimeString } from "lib/dateManager";
|
|
import { chatterEventSub, chatterApi, chatterId } from "main";
|
|
|
|
const WHISPERCOOLDOWN = 60 * 10; // 10 minutes
|
|
|
|
chatterEventSub.onUserWhisperMessage(chatterId, async msg => {
|
|
if (await redis.ttl(`user:${msg.senderUserId}:timeout`) < 0) return;
|
|
const cooldown = await redis.expiretime(`user:${msg.senderUserId}:whispercooldown`);
|
|
if (cooldown < 0) {
|
|
await redis.set(`user:${msg.senderUserId}:whispercooldown`, '1');
|
|
await redis.expire(`user:${msg.senderUserId}:whispercooldown`, WHISPERCOOLDOWN);
|
|
await sendMessage(`The ghost of ${msg.senderUserDisplayName} whispered: ${msg.messageText}`);
|
|
await chatterApi.whispers.sendWhisper(chatterId, msg.senderUserId, "Message sent. You can send another ghost whisper in 10 minutes.");
|
|
} else {
|
|
await chatterApi.whispers.sendWhisper(chatterId, msg.senderUserId, `Wait another ${buildTimeString(cooldown * 1000, Date.now())} before sending another ghost whisper.`);
|
|
};
|
|
});
|