From 73d281c6c6e56e16115ba8816bf7ee1bd097e731 Mon Sep 17 00:00:00 2001 From: qwerinope Date: Mon, 7 Jul 2025 15:56:01 +0200 Subject: [PATCH] improved cheer argument parsing, minor bugfixes --- bot/cheers/index.ts | 4 ++-- bot/cheers/timeout.ts | 9 +++++---- bot/commands/testcheer.ts | 4 ++-- bot/events/message.ts | 4 ++-- bot/lib/parseCommandArgs.ts | 7 +++++++ 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/bot/cheers/index.ts b/bot/cheers/index.ts index c4dfce9..49cc6bb 100644 --- a/bot/cheers/index.ts +++ b/bot/cheers/index.ts @@ -4,8 +4,8 @@ import { EventSubChannelChatMessageEvent } from "@twurple/eventsub-base"; export class Cheer { public readonly name: string; public readonly amount: number; - public readonly execute: (msg: EventSubChannelChatMessageEvent, sender: User, testmessage: boolean) => Promise; - constructor(name: string, amount: number, execution: (msg: EventSubChannelChatMessageEvent, sender: User, testmessage: boolean) => Promise) { + public readonly execute: (msg: EventSubChannelChatMessageEvent, sender: User) => Promise; + constructor(name: string, amount: number, execution: (msg: EventSubChannelChatMessageEvent, sender: User) => Promise) { this.name = name.toLowerCase(); this.amount = amount; this.execute = execution; diff --git a/bot/cheers/timeout.ts b/bot/cheers/timeout.ts index b1a4ee4..3c1cbf2 100644 --- a/bot/cheers/timeout.ts +++ b/bot/cheers/timeout.ts @@ -7,15 +7,16 @@ import { User } from "../user"; import { timeout } from "../lib/timeout"; import { createTimeoutRecord } from "../db/dbTimeouts"; import logger from "../lib/logger"; +import { parseCheerArgs } from "../lib/parseCommandArgs"; -export default new Cheer('timeout', 100, async (msg, user, testmessage) => { - const args = msg.messageText.split(' '); - if (testmessage) { args.shift(); args.shift(); }; //Discard the '!testcheer' and '100' arguments +export default new Cheer('timeout', 100, async (msg, user) => { + const args = parseCheerArgs(msg.messageText); if (!args[0]) { await handleNoBlasterTarget(msg, user, false); return; }; const target = await User.initUsername(args[0].toLowerCase()); if (!target) { await handleNoBlasterTarget(msg, user, false); return; }; + await getUserRecord(target); - const result = await timeout(target, `You got blasted by ${user.displayName}!`) + const result = await timeout(target, `You got blasted by ${user.displayName}!`, 60); if (result.status) await Promise.all([ sendMessage(`GOTTEM ${target.displayName} got BLASTED by ${user.displayName} GOTTEM`), createTimeoutRecord(user, target, 'blaster'), diff --git a/bot/commands/testcheer.ts b/bot/commands/testcheer.ts index d1451c9..e20b644 100644 --- a/bot/commands/testcheer.ts +++ b/bot/commands/testcheer.ts @@ -2,10 +2,10 @@ import { Command, sendMessage } from "."; import { handleCheer } from "../events/message"; import parseCommandArgs from "../lib/parseCommandArgs"; -export default new Command('testcheer', ['testcheer'], 'streamer', async (msg, user) => { +export default new Command('testcheer', ['testcheer'], 'streamer', async msg => { const args = parseCommandArgs(msg.messageText); if (!args[0]) { await sendMessage('Please specify the amount of fake bits you want to send', msg.messageId); return; }; if (isNaN(Number(args[0]))) { await sendMessage(`${args[0]} is not a valid amout of bits`); return; }; const bits = Number(args.shift()); // we shift it so the amount of bits isn't part of the handleCheer message, we already know that args[0] can be parsed as a number so this is fine. - await handleCheer(msg, bits, true); + await handleCheer(msg, bits); }, false); diff --git a/bot/events/message.ts b/bot/events/message.ts index 8aa4df2..0de603b 100644 --- a/bot/events/message.ts +++ b/bot/events/message.ts @@ -61,7 +61,7 @@ async function handleChatMessage(msg: EventSubChannelChatMessageEvent) { }; }; -export async function handleCheer(msg: EventSubChannelChatMessageEvent, bits: number, testmessage = false) { +export async function handleCheer(msg: EventSubChannelChatMessageEvent, bits: number) { const selection = cheers.get(bits); if (!selection) return; @@ -73,7 +73,7 @@ export async function handleCheer(msg: EventSubChannelChatMessageEvent, bits: nu if (disabledcheers.includes(selection.name)) { await sendMessage(`The ${selection.name} cheer is disabled`); return; }; try { - selection.execute(msg, user!, testmessage); + selection.execute(msg, user!); } catch (err) { logger.err(err as string); }; diff --git a/bot/lib/parseCommandArgs.ts b/bot/lib/parseCommandArgs.ts index 7f0afa7..27a44ee 100644 --- a/bot/lib/parseCommandArgs.ts +++ b/bot/lib/parseCommandArgs.ts @@ -7,3 +7,10 @@ export default function parseCommandArgs(input: string) { const b = a.trim().split(' ').slice(sliceLength); return b; }; + +export function parseCheerArgs(input: string) { + const a = input.slice(commandPrefix.length); + const sliceLength = a.startsWith('testcheer') ? 2 : 0; + const b = a.trim().split(' ').slice(sliceLength); + return b; +};