mirror of
https://github.com/qwerinope/qweribot.git
synced 2025-12-20 05:51:39 +01:00
added cheers, cheer management commands, timeout cheer
This commit is contained in:
@@ -1,13 +1,23 @@
|
||||
import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base"
|
||||
import { chatterId, streamerId, eventSub, commandPrefix, singleUserMode, streamerUsers } from "..";
|
||||
import { User } from "../user";
|
||||
import commands, { sendMessage } from "../commands";
|
||||
import { redis } from "bun";
|
||||
import { isAdmin } from "../lib/admins";
|
||||
import cheers from "../cheers";
|
||||
import logger from "../lib/logger";
|
||||
|
||||
logger.info(`Loaded the following commands: ${commands.keys().toArray().join(', ')}`);
|
||||
|
||||
eventSub.onChannelChatMessage(streamerId, streamerId, async msg => {
|
||||
eventSub.onChannelChatMessage(streamerId, streamerId, parseChatMessage);
|
||||
|
||||
async function parseChatMessage(msg: EventSubChannelChatMessageEvent) {
|
||||
if (!msg.isCheer && !msg.isRedemption) await handleChatMessage(msg)
|
||||
else if (msg.isCheer && !msg.isRedemption) await handleCheer(msg, msg.bits)
|
||||
};
|
||||
|
||||
async function handleChatMessage(msg: EventSubChannelChatMessageEvent) {
|
||||
|
||||
// return if double user mode is on and the chatter says something, we don't need them
|
||||
if (!singleUserMode && msg.chatterId === chatterId) return;
|
||||
|
||||
@@ -49,4 +59,22 @@ eventSub.onChannelChatMessage(streamerId, streamerId, async msg => {
|
||||
await user?.clearLock();
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
export async function handleCheer(msg: EventSubChannelChatMessageEvent, bits: number, testmessage = false) {
|
||||
const selection = cheers.get(bits);
|
||||
if (!selection) return;
|
||||
|
||||
const [user, disabledcheers] = await Promise.all([
|
||||
User.initUsername(msg.chatterName),
|
||||
redis.smembers('disabledcheers')
|
||||
]);
|
||||
|
||||
if (disabledcheers.includes(selection.name)) { await sendMessage(`The ${selection.name} cheer is disabled`); return; };
|
||||
|
||||
try {
|
||||
selection.execute(msg, user!, testmessage);
|
||||
} catch (err) {
|
||||
logger.err(err as string);
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user