create stable command parser

This commit is contained in:
2025-06-25 02:11:17 +02:00
parent dc087c3599
commit 273f5e3674
3 changed files with 13 additions and 3 deletions

View File

@@ -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; };

View File

@@ -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; };

View File

@@ -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;
};