From 273f5e367484db809b98d2b089100e106e4a994f Mon Sep 17 00:00:00 2001 From: qwerinope Date: Wed, 25 Jun 2025 02:11:17 +0200 Subject: [PATCH] create stable command parser --- bot/commands/iteminfo.ts | 3 ++- bot/items/blaster.ts | 4 ++-- bot/lib/parseCommandArgs.ts | 9 +++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 bot/lib/parseCommandArgs.ts diff --git a/bot/commands/iteminfo.ts b/bot/commands/iteminfo.ts index 6ade633..77bcbe4 100644 --- a/bot/commands/iteminfo.ts +++ b/bot/commands/iteminfo.ts @@ -1,8 +1,9 @@ import { Command, sendMessage } from "."; import items from "../items"; +import parseCommandArgs from "../lib/parseCommandArgs"; export default new Command('iteminfo', ['iteminfo', 'itemhelp', 'info'], [], async msg => { - const messagequery = msg.messageText.trim().split(' ').slice(1).join(' '); + const messagequery = parseCommandArgs(msg.messageText).join(' '); if (!messagequery) { await sendMessage('Please specify an item you would like to get info about', msg.messageId); return; }; const selection = items.get(messagequery.toLowerCase()); if (!selection) { await sendMessage(`'${messagequery}' is not an item`, msg.messageId); return; }; diff --git a/bot/items/blaster.ts b/bot/items/blaster.ts index 688f0a8..f892beb 100644 --- a/bot/items/blaster.ts +++ b/bot/items/blaster.ts @@ -1,5 +1,6 @@ import { Item } from "."; import { sendMessage } from "../commands"; +import parseCommandArgs from "../lib/parseCommandArgs"; import { timeout } from "../lib/timeout"; import { User } from "../user"; @@ -7,8 +8,7 @@ export default new Item('blaster', 'Blaster', 's', 'Times a specific person out for 60 seconds', ['blaster', 'blast'], ['moderator:manage:banned_users'], async (msg, user) => { - const slicecount = msg.messageText.startsWith('!use') ? 2 : 1; - const messagequery = msg.messageText.trim().split(' ').slice(slicecount); + const messagequery = parseCommandArgs(msg.messageText); if (!messagequery[0]) { await sendMessage('Please specify a target'); return; }; const target = await User.initUsername(messagequery[0].toLowerCase()); if (!target) { await sendMessage(`${messagequery[0]} doesn't exist`); return; }; diff --git a/bot/lib/parseCommandArgs.ts b/bot/lib/parseCommandArgs.ts new file mode 100644 index 0000000..7f0afa7 --- /dev/null +++ b/bot/lib/parseCommandArgs.ts @@ -0,0 +1,9 @@ +import { commandPrefix } from ".."; + +/** Helper function to extract arguments from commands */ +export default function parseCommandArgs(input: string) { + const a = input.slice(commandPrefix.length); + const sliceLength = a.startsWith('use') ? 2 : 1; + const b = a.trim().split(' ').slice(sliceLength); + return b; +};