mirror of
https://github.com/qwerinope/qweribot.git
synced 2025-12-19 08:41:39 +01:00
improved cheer argument parsing, minor bugfixes
This commit is contained in:
@@ -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<void>;
|
||||
constructor(name: string, amount: number, execution: (msg: EventSubChannelChatMessageEvent, sender: User, testmessage: boolean) => Promise<void>) {
|
||||
public readonly execute: (msg: EventSubChannelChatMessageEvent, sender: User) => Promise<void>;
|
||||
constructor(name: string, amount: number, execution: (msg: EventSubChannelChatMessageEvent, sender: User) => Promise<void>) {
|
||||
this.name = name.toLowerCase();
|
||||
this.amount = amount;
|
||||
this.execute = execution;
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user