Add subcommand property to determine if ignored users can run the command

This commit is contained in:
Oliver Akins 2022-08-20 14:16:10 -06:00
parent b301cefcae
commit 2a79b41ad0
No known key found for this signature in database
GPG key ID: 3C2014AF9457AF99

View file

@ -27,6 +27,7 @@ interface subcommandMetadata {
const subcommands: {[index: string]: any} = { const subcommands: {[index: string]: any} = {
"add": { "add": {
allowIgnored: false,
argc: 1, argc: 1,
async handler(request: Request, meta: subcommandMetadata, args: string[]) { async handler(request: Request, meta: subcommandMetadata, args: string[]) {
// args: !cmd add <counter:string> [delta:integer] // args: !cmd add <counter:string> [delta:integer]
@ -44,9 +45,10 @@ const subcommands: {[index: string]: any} = {
}; };
}, },
}, },
"sub": { argc: 1, handler: subtractHandler, }, "sub": { allowIgnored: false, argc: 1, handler: subtractHandler, },
"remove": { argc: 1, handler: subtractHandler, }, "remove": { allowIgnored: false, argc: 1, handler: subtractHandler, },
"new": { "new": {
allowIgnored: false,
argc: 1, argc: 1,
async handler(request: Request, meta: subcommandMetadata, args: string[]) { async handler(request: Request, meta: subcommandMetadata, args: string[]) {
// args: !cmd new <counter:string> // args: !cmd new <counter:string>
@ -60,6 +62,7 @@ const subcommands: {[index: string]: any} = {
}, },
}, },
"get": { "get": {
allowIgnored: true,
argc: 1, argc: 1,
async handler(request: Request, meta: subcommandMetadata, args: string[]) { async handler(request: Request, meta: subcommandMetadata, args: string[]) {
const { channel } = meta; const { channel } = meta;
@ -79,6 +82,7 @@ const subcommands: {[index: string]: any} = {
}, },
"default": { "default": {
argc: 0, argc: 0,
allowIgnored: false,
async handler(request: Request, meta: subcommandMetadata, args: string[]) { async handler(request: Request, meta: subcommandMetadata, args: string[]) {
// args: !cmd <counter:string> [delta:number] // args: !cmd <counter:string> [delta:number]
let { channel } = meta; let { channel } = meta;
@ -133,7 +137,9 @@ const route: ServerRoute = {
return `The channel isn't setup to use the counter system`; 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 { try {
var { message, value } = await sc.handler( var { message, value } = await sc.handler(