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 {
|
export class Cheer {
|
||||||
public readonly name: string;
|
public readonly name: string;
|
||||||
public readonly amount: number;
|
public readonly amount: number;
|
||||||
public readonly execute: (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, testmessage: boolean) => Promise<void>) {
|
constructor(name: string, amount: number, execution: (msg: EventSubChannelChatMessageEvent, sender: User) => Promise<void>) {
|
||||||
this.name = name.toLowerCase();
|
this.name = name.toLowerCase();
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
this.execute = execution;
|
this.execute = execution;
|
||||||
|
|||||||
@@ -7,15 +7,16 @@ import { User } from "../user";
|
|||||||
import { timeout } from "../lib/timeout";
|
import { timeout } from "../lib/timeout";
|
||||||
import { createTimeoutRecord } from "../db/dbTimeouts";
|
import { createTimeoutRecord } from "../db/dbTimeouts";
|
||||||
import logger from "../lib/logger";
|
import logger from "../lib/logger";
|
||||||
|
import { parseCheerArgs } from "../lib/parseCommandArgs";
|
||||||
|
|
||||||
export default new Cheer('timeout', 100, async (msg, user, testmessage) => {
|
export default new Cheer('timeout', 100, async (msg, user) => {
|
||||||
const args = msg.messageText.split(' ');
|
const args = parseCheerArgs(msg.messageText);
|
||||||
if (testmessage) { args.shift(); args.shift(); }; //Discard the '!testcheer' and '100' arguments
|
|
||||||
if (!args[0]) { await handleNoBlasterTarget(msg, user, false); return; };
|
if (!args[0]) { await handleNoBlasterTarget(msg, user, false); return; };
|
||||||
const target = await User.initUsername(args[0].toLowerCase());
|
const target = await User.initUsername(args[0].toLowerCase());
|
||||||
if (!target) { await handleNoBlasterTarget(msg, user, false); return; };
|
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([
|
if (result.status) await Promise.all([
|
||||||
sendMessage(`GOTTEM ${target.displayName} got BLASTED by ${user.displayName} GOTTEM`),
|
sendMessage(`GOTTEM ${target.displayName} got BLASTED by ${user.displayName} GOTTEM`),
|
||||||
createTimeoutRecord(user, target, 'blaster'),
|
createTimeoutRecord(user, target, 'blaster'),
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import { Command, sendMessage } from ".";
|
|||||||
import { handleCheer } from "../events/message";
|
import { handleCheer } from "../events/message";
|
||||||
import parseCommandArgs from "../lib/parseCommandArgs";
|
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);
|
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 (!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; };
|
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.
|
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);
|
}, 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);
|
const selection = cheers.get(bits);
|
||||||
if (!selection) return;
|
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; };
|
if (disabledcheers.includes(selection.name)) { await sendMessage(`The ${selection.name} cheer is disabled`); return; };
|
||||||
|
|
||||||
try {
|
try {
|
||||||
selection.execute(msg, user!, testmessage);
|
selection.execute(msg, user!);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.err(err as string);
|
logger.err(err as string);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,3 +7,10 @@ export default function parseCommandArgs(input: string) {
|
|||||||
const b = a.trim().split(' ').slice(sliceLength);
|
const b = a.trim().split(' ').slice(sliceLength);
|
||||||
return b;
|
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