From 2a79b41ad00a99a0e5a0919cb1c76ad682ca22dd Mon Sep 17 00:00:00 2001 From: Oliver Akins Date: Sat, 20 Aug 2022 14:16:10 -0600 Subject: [PATCH] Add subcommand property to determine if ignored users can run the command --- src/endpoints/nightbot/advanced.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/endpoints/nightbot/advanced.ts b/src/endpoints/nightbot/advanced.ts index f9d7b11..9319ae2 100644 --- a/src/endpoints/nightbot/advanced.ts +++ b/src/endpoints/nightbot/advanced.ts @@ -27,6 +27,7 @@ interface subcommandMetadata { const subcommands: {[index: string]: any} = { "add": { + allowIgnored: false, argc: 1, async handler(request: Request, meta: subcommandMetadata, args: string[]) { // args: !cmd add [delta:integer] @@ -44,9 +45,10 @@ const subcommands: {[index: string]: any} = { }; }, }, - "sub": { argc: 1, handler: subtractHandler, }, - "remove": { argc: 1, handler: subtractHandler, }, + "sub": { allowIgnored: false, argc: 1, handler: subtractHandler, }, + "remove": { allowIgnored: false, argc: 1, handler: subtractHandler, }, "new": { + allowIgnored: false, argc: 1, async handler(request: Request, meta: subcommandMetadata, args: string[]) { // args: !cmd new @@ -60,6 +62,7 @@ const subcommands: {[index: string]: any} = { }, }, "get": { + allowIgnored: true, argc: 1, async handler(request: Request, meta: subcommandMetadata, args: string[]) { const { channel } = meta; @@ -79,6 +82,7 @@ const subcommands: {[index: string]: any} = { }, "default": { argc: 0, + allowIgnored: false, async handler(request: Request, meta: subcommandMetadata, args: string[]) { // args: !cmd [delta:number] let { channel } = meta; @@ -133,7 +137,9 @@ const route: ServerRoute = { return `The channel isn't setup to use the counter system`; }; - if (await database.isUserIgnored(channel, user)) { return `Invalid permissions`; }; + if (!sc.allowIgnored && await database.isUserIgnored(channel, user)) { + return `Invalid permission`; + }; try { var { message, value } = await sc.handler(