From ee747cfdfc07756d7f80ff69158361034e4ce39a Mon Sep 17 00:00:00 2001 From: Ian Elizondo Date: Thu, 14 Jul 2022 19:41:14 +0000 Subject: [PATCH 1/5] Add letter distance method --- package.json | 1 + src/utility.ts | 10 ++++++++++ yarn.lock | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/package.json b/package.json index faaf00a..58d45a0 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "autobind-decorator": "^2.4.0", "discord-api-types": "^0.33.0", "discord.js": "^13.6.0", + "levenshtein-edit-distance": "2.0.5", "mongodb": "^4.2.0", "uuid": "^8.3.2" }, diff --git a/src/utility.ts b/src/utility.ts index 33266aa..a6d01b6 100644 --- a/src/utility.ts +++ b/src/utility.ts @@ -1,4 +1,6 @@ import { Client, EmojiResolvable } from "discord.js"; +//@ts-expect-error +import distance from "levenshtein-edit-distance" export function report(...stuff: string[]) { console.log("[diy] =>", ...stuff); @@ -29,3 +31,11 @@ export function printNested(level: number, ...stuff: any[]) { const [first, ...rest] = stuff; console.log(`${nesting}\u001b[32m└> \u001b[0m${first}`, ...rest); } + +export function sortByDistance(pattern: string, input: string[], weightLimit = 3): string[]{ + const trimmedPattern = pattern.trim() + return input.map((value) => ({ + value, + weight: distance(trimmedPattern, value, true /** ignore caps */) + })).sort((a,b) => a.weight - b.weight).filter(x => x.weight < weightLimit).map(x => x.value) +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 87e41d7..7187647 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3156,6 +3156,11 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levenshtein-edit-distance@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/levenshtein-edit-distance/-/levenshtein-edit-distance-2.0.5.tgz#a066eca8afb350e4d9054aed9ffeef66e78ffc83" + integrity sha512-Yuraz7QnMX/JENJU1HA6UtdsbhRzoSFnGpVGVryjQgHtl2s/YmVgmNYkVs5yzVZ9aAvQR9wPBUH3lG755ylxGA== + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" From 92886a61ba64d607dd1afb165d3c403b901d0654 Mon Sep 17 00:00:00 2001 From: Ian Elizondo Date: Thu, 14 Jul 2022 19:41:23 +0000 Subject: [PATCH 2/5] Add onTypo property --- src/bot.ts | 6 ++++++ src/handler.ts | 25 +++++++++++++++++++++---- src/router.ts | 39 ++++++++++++++++++++++++++++++++++----- src/types.ts | 5 +++++ 4 files changed, 66 insertions(+), 9 deletions(-) diff --git a/src/bot.ts b/src/bot.ts index 0876a89..4c566b1 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -76,6 +76,7 @@ export class Bot extends BotBase { this.on = this.router.on; this.onDefault = this.router.onDefault; this.onError = this.router.onError; + this.onTypo = this.router.onTypo; this.componentHandler = new ComponentHandler(); this.messageHandler = this.messageHandler.bind(this); @@ -105,6 +106,11 @@ export class Bot extends BotBase { onDefault: Router["onDefault"]; onError: Router["onError"]; + /** + * @param action Callback function to be called if similar commands are found + */ + onTypo: Router["onTypo"]; + /**@deprecated */ setDefaultAction: Router["onDefault"]; diff --git a/src/handler.ts b/src/handler.ts index 33fc215..9fa8fc1 100644 --- a/src/handler.ts +++ b/src/handler.ts @@ -1,6 +1,7 @@ import { ActionObject } from "./types"; import { SlashCommandBuilder } from "@discordjs/builders"; import { Router } from "./router"; +import { sortByDistance } from "./utility"; type HandlerContent = ActionObject | Router; @@ -15,13 +16,13 @@ type TriggerType = string | RegExp; export class CommandsHandler { readonly stringActions: MessageActions; private regexActions: RegexActions; - private defaultAction: ActionObject | undefined; + private _defaultAction: ActionObject | undefined; readonly commands: ReturnType[]; constructor() { this.stringActions = {}; this.regexActions = new Map(); - this.defaultAction = {}; + this._defaultAction = {}; this.commands = []; this.findAction = this.findAction.bind(this); this.setAction = this.setAction.bind(this); @@ -39,10 +40,14 @@ export class CommandsHandler { } setDefaultAction(action: ActionObject) { - this.defaultAction = action; + this._defaultAction = action; return action; } + get defaultAction(){ + return this._defaultAction + } + removeAction(trig: TriggerType) { if (typeof trig === "string") { if (trig in this.stringActions) { @@ -61,6 +66,18 @@ export class CommandsHandler { return; } + /** + * Returns an array of similar triggers to the one provided and sorts them by similarity + * Only supports string triggers + */ + findSimilar(pattern: string, limit = 3) { + const triggers = Object.keys(this.stringActions); + return sortByDistance(pattern, triggers).slice(0, limit); + } + + /** + * Tries to find an action in this handler that matches the `trigger` + */ findAction(trigger: string) { if (trigger in this.stringActions) { return this.stringActions[trigger]; @@ -68,7 +85,7 @@ export class CommandsHandler { return ( [...this.regexActions.entries()].find(([regex]) => regex.test(trigger) - )?.[1] ?? this.defaultAction + )?.[1] ?? this._defaultAction ); } } diff --git a/src/router.ts b/src/router.ts index b4dfc99..86a6338 100644 --- a/src/router.ts +++ b/src/router.ts @@ -13,6 +13,7 @@ import { ActionObject, ResponseAction, CommandCollection, + TypoAction, } from "./types"; import { firstWord, printNested, report as _report } from "./utility"; @@ -27,6 +28,7 @@ export class Router { parent: Router | undefined = undefined; options: RouterOptions; readonly errorAction: ActionObject; + typoAction: TypoAction | undefined = undefined; constructor() { this.options = { @@ -122,6 +124,14 @@ export class Router { return this.errorAction; } + @autobind + findOnTypo(): TypoAction | undefined { + if (!this.typoAction) { + return this.parent?.findOnTypo(); + } + return this.typoAction; + } + @autobind fullTrigger(): string[] { return [...(this.parent?.fullTrigger() ?? []), this.trigger].filter( @@ -131,11 +141,11 @@ export class Router { @autobind findAction(content: string): RoutedAction | undefined { - const searchResult = this.handler.findAction( - this.options.ignoreCaps - ? firstWord(content).toLowerCase() - : firstWord(content) - ); + const trigger = this.options.ignoreCaps + ? firstWord(content).toLowerCase() + : firstWord(content); + const searchResult = this.handler.findAction(trigger); + if (searchResult instanceof Router) { let newContent = ( this.options.ignoreCaps ? content.toLowerCase() : content @@ -144,6 +154,19 @@ export class Router { .trim(); return searchResult.findAction(newContent); } + + if (searchResult === this.handler.defaultAction) { + const typoAction = this.findOnTypo(); + if (typoAction) { + const matches = this.handler.findSimilar(trigger); + if (matches.length) { + return new RoutedAction(this, { + response: (params) => typoAction(params, matches), + }); + } + } + } + return searchResult && new RoutedAction(this, searchResult); } @@ -205,6 +228,12 @@ export class Router { return this; } + @autobind + onTypo(action: TypoAction) { + this.typoAction = action; + return this; + } + @autobind removeAction(trigger: string | RegExp | string[]) { this.report(`Removed an action, trigger: ${trigger}`); diff --git a/src/types.ts b/src/types.ts index f4f6370..4143cf7 100644 --- a/src/types.ts +++ b/src/types.ts @@ -186,3 +186,8 @@ export type CommandCollection = ( | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder )[]; + +/** + * Callback. Called when a possible typo is detected and gets passed 3 (or less) most relevant suggestions + */ +export type TypoAction = (params: ActionParameters, similar: string[]) => SendableMessage \ No newline at end of file From d559217ab877a8912d3ff98a7aecdab407c15574 Mon Sep 17 00:00:00 2001 From: Ian Elizondo Date: Fri, 15 Jul 2022 00:49:08 +0000 Subject: [PATCH 3/5] Update readme --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index d022933..48cf812 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,24 @@ bot.registerAction("test", ({ args, createEmbed }) => ); ``` +### Handling typos + +Your users can be overwhelmed and confused by your bot's syntax. To aid them in the process, djs-diy offers a way to immediately point out which options they might have meant to type instead. + +```ts +const bot = new Bot("", { prefix: "!", embed }); +bot.on("test", "hi there!"); +bot.onTypo( + ({ author }, [first, ...rest]) => + `Hey there, ${ + author.username + }! Did you mean to type !${first}? Other options: ${rest.join(", ")}` +); +``` + +`Bot#onTypo` can set a callback for an scenario where an user types "tsst" or something similar as any other trigger. +Should be noted that onTypo is available router-wise and will always attempt to fetch a callback from any parent router (incluiding the Bot object's) + ### Routing Sometimes you may want a command to contain a subcommand. This is where routers come in. To use them, create a new Router object then assign commands to it. Finally assign it as an action in your main `Bot` object. Don't worry about the constructor parameters, they'll be filled in for you. From dabe26a21eb368fe089d4483399155f8c29a7854 Mon Sep 17 00:00:00 2001 From: Ian Elizondo Date: Tue, 19 Jul 2022 04:20:48 +0000 Subject: [PATCH 4/5] Allow onTypo to have options --- README.md | 12 ++++++++++++ src/handler.ts | 6 +++--- src/router.ts | 25 +++++++++++++++++++------ src/types.ts | 10 +++++++++- 4 files changed, 43 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 48cf812..92f1907 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,18 @@ bot.onTypo( `Bot#onTypo` can set a callback for an scenario where an user types "tsst" or something similar as any other trigger. Should be noted that onTypo is available router-wise and will always attempt to fetch a callback from any parent router (incluiding the Bot object's) +`onTypo` can take a second argument in the form of an object +```ts +{ + maxDistance: number + maxSuggestions: number +} +``` + +`maxDistance`: Maximum [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) allowed +`maxSuggestions`: Max amount of suggestions to be provided to the callback + + ### Routing Sometimes you may want a command to contain a subcommand. This is where routers come in. To use them, create a new Router object then assign commands to it. Finally assign it as an action in your main `Bot` object. Don't worry about the constructor parameters, they'll be filled in for you. diff --git a/src/handler.ts b/src/handler.ts index 9fa8fc1..5060e9b 100644 --- a/src/handler.ts +++ b/src/handler.ts @@ -1,4 +1,4 @@ -import { ActionObject } from "./types"; +import { ActionObject, TypoOptions } from "./types"; import { SlashCommandBuilder } from "@discordjs/builders"; import { Router } from "./router"; import { sortByDistance } from "./utility"; @@ -70,9 +70,9 @@ export class CommandsHandler { * Returns an array of similar triggers to the one provided and sorts them by similarity * Only supports string triggers */ - findSimilar(pattern: string, limit = 3) { + findSimilar(pattern: string, {maxDistance, maxSuggestions}: TypoOptions) { const triggers = Object.keys(this.stringActions); - return sortByDistance(pattern, triggers).slice(0, limit); + return sortByDistance(pattern, triggers, maxDistance).slice(0, maxSuggestions); } /** diff --git a/src/router.ts b/src/router.ts index 86a6338..b9fbbd3 100644 --- a/src/router.ts +++ b/src/router.ts @@ -14,6 +14,7 @@ import { ResponseAction, CommandCollection, TypoAction, + TypoOptions, } from "./types"; import { firstWord, printNested, report as _report } from "./utility"; @@ -29,6 +30,7 @@ export class Router { options: RouterOptions; readonly errorAction: ActionObject; typoAction: TypoAction | undefined = undefined; + typoOptions: TypoOptions | undefined = undefined; constructor() { this.options = { @@ -125,11 +127,18 @@ export class Router { } @autobind - findOnTypo(): TypoAction | undefined { + findOnTypo(): [TypoAction, TypoOptions] | undefined { if (!this.typoAction) { return this.parent?.findOnTypo(); } - return this.typoAction; + return [ + this.typoAction, + { + maxDistance: 3, + maxSuggestions: 3, + ...this.typoOptions, + }, + ]; } @autobind @@ -156,9 +165,10 @@ export class Router { } if (searchResult === this.handler.defaultAction) { - const typoAction = this.findOnTypo(); - if (typoAction) { - const matches = this.handler.findSimilar(trigger); + const typoArray = this.findOnTypo(); + if (typoArray) { + const [typoAction, options] = typoArray; + const matches = this.handler.findSimilar(trigger, options); if (matches.length) { return new RoutedAction(this, { response: (params) => typoAction(params, matches), @@ -229,8 +239,11 @@ export class Router { } @autobind - onTypo(action: TypoAction) { + onTypo(action: TypoAction, options?: TypoOptions) { this.typoAction = action; + if (options) { + this.typoOptions = options; + } return this; } diff --git a/src/types.ts b/src/types.ts index 4143cf7..5403623 100644 --- a/src/types.ts +++ b/src/types.ts @@ -190,4 +190,12 @@ export type CommandCollection = ( /** * Callback. Called when a possible typo is detected and gets passed 3 (or less) most relevant suggestions */ -export type TypoAction = (params: ActionParameters, similar: string[]) => SendableMessage \ No newline at end of file +export type TypoAction = ( + params: ActionParameters, + similar: string[] +) => SendableMessage; + +export interface TypoOptions { + maxDistance?: number; + maxSuggestions?: number; +} From 2945b6e5db8d15f1b5a3fb42148d8a17b9767662 Mon Sep 17 00:00:00 2001 From: Ian Elizondo Date: Tue, 19 Jul 2022 04:29:17 +0000 Subject: [PATCH 5/5] Bump and generate docs --- docs/assets/highlight.css | 7 +++++++ docs/assets/search.js | 2 +- docs/classes/Bot.html | 18 +++++++++-------- docs/classes/Embed.html | 2 +- docs/classes/Router.html | 6 +++--- docs/index.html | 26 +++++++++++++++++++++++++ docs/interfaces/ActionObject.html | 6 +++--- docs/interfaces/ActionParameters.html | 28 +++++++++++++-------------- docs/interfaces/SessionConfig.html | 4 ++-- docs/interfaces/SessionMW.html | 2 +- docs/modules.html | 4 ++-- package.json | 2 +- 12 files changed, 71 insertions(+), 36 deletions(-) diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css index 9369d0f..5a65e9a 100644 --- a/docs/assets/highlight.css +++ b/docs/assets/highlight.css @@ -21,6 +21,8 @@ --dark-hl-9: #D4D4D4; --light-hl-10: #098658; --dark-hl-10: #B5CEA8; + --light-hl-11: #000000; + --dark-hl-11: #C8C8C8; --light-code-background: #F5F5F5; --dark-code-background: #1E1E1E; } @@ -37,6 +39,7 @@ --hl-8: var(--light-hl-8); --hl-9: var(--light-hl-9); --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); --code-background: var(--light-code-background); } } @@ -52,6 +55,7 @@ --hl-8: var(--dark-hl-8); --hl-9: var(--dark-hl-9); --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); --code-background: var(--dark-code-background); } } @@ -67,6 +71,7 @@ body.light { --hl-8: var(--light-hl-8); --hl-9: var(--light-hl-9); --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); --code-background: var(--light-code-background); } @@ -82,6 +87,7 @@ body.dark { --hl-8: var(--dark-hl-8); --hl-9: var(--dark-hl-9); --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); --code-background: var(--dark-code-background); } @@ -96,4 +102,5 @@ body.dark { .hl-8 { color: var(--hl-8); } .hl-9 { color: var(--hl-9); } .hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } pre, code { background: var(--code-background); } diff --git a/docs/assets/search.js b/docs/assets/search.js index 613a67b..e289576 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = JSON.parse("{\"kinds\":{\"64\":\"Function\",\"128\":\"Class\",\"256\":\"Interface\",\"512\":\"Constructor\",\"1024\":\"Property\",\"2048\":\"Method\",\"65536\":\"Type literal\",\"4194304\":\"Type alias\"},\"rows\":[{\"id\":0,\"kind\":128,\"name\":\"Bot\",\"url\":\"classes/Bot.html\",\"classes\":\"tsd-kind-class\"},{\"id\":1,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Bot.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite\",\"parent\":\"Bot\"},{\"id\":2,\"kind\":1024,\"name\":\"embed\",\"url\":\"classes/Bot.html#embed\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":3,\"kind\":1024,\"name\":\"prefix\",\"url\":\"classes/Bot.html#prefix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":4,\"kind\":1024,\"name\":\"suffix\",\"url\":\"classes/Bot.html#suffix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":5,\"kind\":1024,\"name\":\"ignoreCaps\",\"url\":\"classes/Bot.html#ignoreCaps\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":6,\"kind\":1024,\"name\":\"middlewareArray\",\"url\":\"classes/Bot.html#middlewareArray\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":7,\"kind\":1024,\"name\":\"componentHandler\",\"url\":\"classes/Bot.html#componentHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":8,\"kind\":1024,\"name\":\"Action\",\"url\":\"classes/Bot.html#Action\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":9,\"kind\":1024,\"name\":\"router\",\"url\":\"classes/Bot.html#router\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":10,\"kind\":1024,\"name\":\"commands\",\"url\":\"classes/Bot.html#commands\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":11,\"kind\":1024,\"name\":\"on\",\"url\":\"classes/Bot.html#on\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":12,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"Bot\"},{\"id\":13,\"kind\":1024,\"name\":\"onDefault\",\"url\":\"classes/Bot.html#onDefault\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":14,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":15,\"kind\":1024,\"name\":\"onError\",\"url\":\"classes/Bot.html#onError\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":16,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":17,\"kind\":1024,\"name\":\"setDefaultAction\",\"url\":\"classes/Bot.html#setDefaultAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":18,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":19,\"kind\":1024,\"name\":\"setErrorAction\",\"url\":\"classes/Bot.html#setErrorAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":20,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":21,\"kind\":1024,\"name\":\"registerAction\",\"url\":\"classes/Bot.html#registerAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":22,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"Bot\"},{\"id\":23,\"kind\":1024,\"name\":\"compileCommands\",\"url\":\"classes/Bot.html#compileCommands\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":24,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":25,\"kind\":2048,\"name\":\"useMiddleware\",\"url\":\"classes/Bot.html#useMiddleware\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"Bot\"},{\"id\":26,\"kind\":2048,\"name\":\"createParams\",\"url\":\"classes/Bot.html#createParams\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":27,\"kind\":2048,\"name\":\"interactionHandler\",\"url\":\"classes/Bot.html#interactionHandler\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":28,\"kind\":2048,\"name\":\"messageHandler\",\"url\":\"classes/Bot.html#messageHandler\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":29,\"kind\":2048,\"name\":\"handleAction\",\"url\":\"classes/Bot.html#handleAction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":30,\"kind\":1024,\"name\":\"id\",\"url\":\"classes/Bot.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":31,\"kind\":1024,\"name\":\"client\",\"url\":\"classes/Bot.html#client\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":32,\"kind\":1024,\"name\":\"token\",\"url\":\"classes/Bot.html#token\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":33,\"kind\":2048,\"name\":\"setPresence\",\"url\":\"classes/Bot.html#setPresence\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":34,\"kind\":2048,\"name\":\"report\",\"url\":\"classes/Bot.html#report\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":35,\"kind\":128,\"name\":\"Embed\",\"url\":\"classes/Embed.html\",\"classes\":\"tsd-kind-class\"},{\"id\":36,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Embed.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":37,\"kind\":1024,\"name\":\"color\",\"url\":\"classes/Embed.html#color\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":38,\"kind\":1024,\"name\":\"descTransform\",\"url\":\"classes/Embed.html#descTransform\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":39,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Embed.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":40,\"kind\":1024,\"name\":\"refTransform\",\"url\":\"classes/Embed.html#refTransform\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":41,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Embed.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":42,\"kind\":1024,\"name\":\"author\",\"url\":\"classes/Embed.html#author\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":43,\"kind\":1024,\"name\":\"images\",\"url\":\"classes/Embed.html#images\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":44,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Embed.html#__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":45,\"kind\":2048,\"name\":\"createSingularEmbed\",\"url\":\"classes/Embed.html#createSingularEmbed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Embed\"},{\"id\":46,\"kind\":2048,\"name\":\"create\",\"url\":\"classes/Embed.html#create\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":47,\"kind\":2048,\"name\":\"registerImage\",\"url\":\"classes/Embed.html#registerImage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":48,\"kind\":256,\"name\":\"ActionObject\",\"url\":\"interfaces/ActionObject.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":49,\"kind\":1024,\"name\":\"description\",\"url\":\"interfaces/ActionObject.html#description\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":50,\"kind\":1024,\"name\":\"response\",\"url\":\"interfaces/ActionObject.html#response\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":51,\"kind\":1024,\"name\":\"reaction\",\"url\":\"interfaces/ActionObject.html#reaction\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":52,\"kind\":1024,\"name\":\"onError\",\"url\":\"interfaces/ActionObject.html#onError\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":53,\"kind\":1024,\"name\":\"parameters\",\"url\":\"interfaces/ActionObject.html#parameters\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":54,\"kind\":4194304,\"name\":\"SendableEmoji\",\"url\":\"modules.html#SendableEmoji\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":55,\"kind\":4194304,\"name\":\"SendableMessage\",\"url\":\"modules.html#SendableMessage\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":56,\"kind\":256,\"name\":\"ActionParameters\",\"url\":\"interfaces/ActionParameters.html\",\"classes\":\"tsd-kind-interface tsd-has-type-parameter\"},{\"id\":57,\"kind\":1024,\"name\":\"args\",\"url\":\"interfaces/ActionParameters.html#args\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":58,\"kind\":1024,\"name\":\"parameters\",\"url\":\"interfaces/ActionParameters.html#parameters\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":59,\"kind\":1024,\"name\":\"trigger\",\"url\":\"interfaces/ActionParameters.html#trigger\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":60,\"kind\":1024,\"name\":\"error\",\"url\":\"interfaces/ActionParameters.html#error\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":61,\"kind\":1024,\"name\":\"msg\",\"url\":\"interfaces/ActionParameters.html#msg\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":62,\"kind\":1024,\"name\":\"author\",\"url\":\"interfaces/ActionParameters.html#author\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":63,\"kind\":1024,\"name\":\"channel\",\"url\":\"interfaces/ActionParameters.html#channel\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":64,\"kind\":1024,\"name\":\"guild\",\"url\":\"interfaces/ActionParameters.html#guild\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":65,\"kind\":2048,\"name\":\"expectReply\",\"url\":\"interfaces/ActionParameters.html#expectReply\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":66,\"kind\":1024,\"name\":\"createEmbed\",\"url\":\"interfaces/ActionParameters.html#createEmbed\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":67,\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ActionParameters.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":68,\"kind\":2048,\"name\":\"dm\",\"url\":\"interfaces/ActionParameters.html#dm\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":69,\"kind\":2048,\"name\":\"subscribe\",\"url\":\"interfaces/ActionParameters.html#subscribe\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":70,\"kind\":2048,\"name\":\"asyncEffect\",\"url\":\"interfaces/ActionParameters.html#asyncEffect\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":71,\"kind\":1024,\"name\":\"__asyncJobs\",\"url\":\"interfaces/ActionParameters.html#__asyncJobs\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":72,\"kind\":1024,\"name\":\"middleware\",\"url\":\"interfaces/ActionParameters.html#middleware\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":73,\"kind\":4194304,\"name\":\"ParametersMiddleWare\",\"url\":\"modules.html#ParametersMiddleWare\",\"classes\":\"tsd-kind-type-alias tsd-has-type-parameter\"},{\"id\":74,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#ParametersMiddleWare.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"ParametersMiddleWare\"},{\"id\":75,\"kind\":4194304,\"name\":\"Action\",\"url\":\"modules.html#Action\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":76,\"kind\":64,\"name\":\"Session\",\"url\":\"modules.html#Session\",\"classes\":\"tsd-kind-function\"},{\"id\":77,\"kind\":256,\"name\":\"SessionConfig\",\"url\":\"interfaces/SessionConfig.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":78,\"kind\":1024,\"name\":\"uri\",\"url\":\"interfaces/SessionConfig.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SessionConfig\"},{\"id\":79,\"kind\":1024,\"name\":\"cacheTimeout\",\"url\":\"interfaces/SessionConfig.html#cacheTimeout\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SessionConfig\"},{\"id\":80,\"kind\":1024,\"name\":\"cacheLength\",\"url\":\"interfaces/SessionConfig.html#cacheLength\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SessionConfig\"},{\"id\":81,\"kind\":256,\"name\":\"SessionMW\",\"url\":\"interfaces/SessionMW.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":82,\"kind\":1024,\"name\":\"session\",\"url\":\"interfaces/SessionMW.html#session\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SessionMW\"},{\"id\":83,\"kind\":128,\"name\":\"Router\",\"url\":\"classes/Router.html\",\"classes\":\"tsd-kind-class\"},{\"id\":84,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Router.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":85,\"kind\":1024,\"name\":\"trigger\",\"url\":\"classes/Router.html#trigger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":86,\"kind\":1024,\"name\":\"handler\",\"url\":\"classes/Router.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Router\"},{\"id\":87,\"kind\":1024,\"name\":\"_bot\",\"url\":\"classes/Router.html#_bot\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":88,\"kind\":1024,\"name\":\"parent\",\"url\":\"classes/Router.html#parent\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":89,\"kind\":1024,\"name\":\"options\",\"url\":\"classes/Router.html#options\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":90,\"kind\":1024,\"name\":\"errorAction\",\"url\":\"classes/Router.html#errorAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":91,\"kind\":2048,\"name\":\"compileAll\",\"url\":\"classes/Router.html#compileAll\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":92,\"kind\":2048,\"name\":\"findError\",\"url\":\"classes/Router.html#findError\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":93,\"kind\":2048,\"name\":\"findAction\",\"url\":\"classes/Router.html#findAction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":94,\"kind\":2048,\"name\":\"on\",\"url\":\"classes/Router.html#on\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"Router\"},{\"id\":95,\"kind\":2048,\"name\":\"onDefault\",\"url\":\"classes/Router.html#onDefault\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":96,\"kind\":2048,\"name\":\"onError\",\"url\":\"classes/Router.html#onError\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":97,\"kind\":2048,\"name\":\"removeAction\",\"url\":\"classes/Router.html#removeAction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":98,\"kind\":2048,\"name\":\"report\",\"url\":\"classes/Router.html#report\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":99,\"kind\":2048,\"name\":\"isGlobal\",\"url\":\"classes/Router.html#isGlobal\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":100,\"kind\":2048,\"name\":\"padAction\",\"url\":\"classes/Router.html#padAction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Router\"},{\"id\":101,\"kind\":2048,\"name\":\"turnArrayToRegex\",\"url\":\"classes/Router.html#turnArrayToRegex\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Router\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"parent\"],\"fieldVectors\":[[\"name/0\",[0,10.652]],[\"parent/0\",[]],[\"name/1\",[1,33.82]],[\"parent/1\",[0,1.01]],[\"name/2\",[2,19.606]],[\"parent/2\",[0,1.01]],[\"name/3\",[3,42.293]],[\"parent/3\",[0,1.01]],[\"name/4\",[4,42.293]],[\"parent/4\",[0,1.01]],[\"name/5\",[5,42.293]],[\"parent/5\",[0,1.01]],[\"name/6\",[6,42.293]],[\"parent/6\",[0,1.01]],[\"name/7\",[7,42.293]],[\"parent/7\",[0,1.01]],[\"name/8\",[8,37.184]],[\"parent/8\",[0,1.01]],[\"name/9\",[9,16.143]],[\"parent/9\",[0,1.01]],[\"name/10\",[10,42.293]],[\"parent/10\",[0,1.01]],[\"name/11\",[11,37.184]],[\"parent/11\",[0,1.01]],[\"name/12\",[12,21.09]],[\"parent/12\",[0,1.01]],[\"name/13\",[13,37.184]],[\"parent/13\",[0,1.01]],[\"name/14\",[12,21.09]],[\"parent/14\",[0,1.01]],[\"name/15\",[14,33.82]],[\"parent/15\",[0,1.01]],[\"name/16\",[12,21.09]],[\"parent/16\",[0,1.01]],[\"name/17\",[15,42.293]],[\"parent/17\",[0,1.01]],[\"name/18\",[12,21.09]],[\"parent/18\",[0,1.01]],[\"name/19\",[16,42.293]],[\"parent/19\",[0,1.01]],[\"name/20\",[12,21.09]],[\"parent/20\",[0,1.01]],[\"name/21\",[17,42.293]],[\"parent/21\",[0,1.01]],[\"name/22\",[12,21.09]],[\"parent/22\",[0,1.01]],[\"name/23\",[18,42.293]],[\"parent/23\",[0,1.01]],[\"name/24\",[12,21.09]],[\"parent/24\",[0,1.01]],[\"name/25\",[19,42.293]],[\"parent/25\",[0,1.01]],[\"name/26\",[20,42.293]],[\"parent/26\",[0,1.01]],[\"name/27\",[21,42.293]],[\"parent/27\",[0,1.01]],[\"name/28\",[22,42.293]],[\"parent/28\",[0,1.01]],[\"name/29\",[23,42.293]],[\"parent/29\",[0,1.01]],[\"name/30\",[24,42.293]],[\"parent/30\",[0,1.01]],[\"name/31\",[25,42.293]],[\"parent/31\",[0,1.01]],[\"name/32\",[26,42.293]],[\"parent/32\",[0,1.01]],[\"name/33\",[27,42.293]],[\"parent/33\",[0,1.01]],[\"name/34\",[28,37.184]],[\"parent/34\",[0,1.01]],[\"name/35\",[2,19.606]],[\"parent/35\",[]],[\"name/36\",[1,33.82]],[\"parent/36\",[2,1.859]],[\"name/37\",[29,42.293]],[\"parent/37\",[2,1.859]],[\"name/38\",[30,42.293]],[\"parent/38\",[2,1.859]],[\"name/39\",[12,21.09]],[\"parent/39\",[2,1.859]],[\"name/40\",[31,42.293]],[\"parent/40\",[2,1.859]],[\"name/41\",[12,21.09]],[\"parent/41\",[2,1.859]],[\"name/42\",[32,37.184]],[\"parent/42\",[2,1.859]],[\"name/43\",[33,42.293]],[\"parent/43\",[2,1.859]],[\"name/44\",[12,21.09]],[\"parent/44\",[2,1.859]],[\"name/45\",[34,42.293]],[\"parent/45\",[2,1.859]],[\"name/46\",[35,42.293]],[\"parent/46\",[2,1.859]],[\"name/47\",[36,42.293]],[\"parent/47\",[2,1.859]],[\"name/48\",[37,27.629]],[\"parent/48\",[]],[\"name/49\",[38,42.293]],[\"parent/49\",[37,2.62]],[\"name/50\",[39,42.293]],[\"parent/50\",[37,2.62]],[\"name/51\",[40,42.293]],[\"parent/51\",[37,2.62]],[\"name/52\",[14,33.82]],[\"parent/52\",[37,2.62]],[\"name/53\",[41,37.184]],[\"parent/53\",[37,2.62]],[\"name/54\",[42,42.293]],[\"parent/54\",[]],[\"name/55\",[43,42.293]],[\"parent/55\",[]],[\"name/56\",[44,17.725]],[\"parent/56\",[]],[\"name/57\",[45,42.293]],[\"parent/57\",[44,1.681]],[\"name/58\",[41,37.184]],[\"parent/58\",[44,1.681]],[\"name/59\",[46,37.184]],[\"parent/59\",[44,1.681]],[\"name/60\",[47,42.293]],[\"parent/60\",[44,1.681]],[\"name/61\",[48,42.293]],[\"parent/61\",[44,1.681]],[\"name/62\",[32,37.184]],[\"parent/62\",[44,1.681]],[\"name/63\",[49,42.293]],[\"parent/63\",[44,1.681]],[\"name/64\",[50,42.293]],[\"parent/64\",[44,1.681]],[\"name/65\",[51,42.293]],[\"parent/65\",[44,1.681]],[\"name/66\",[52,42.293]],[\"parent/66\",[44,1.681]],[\"name/67\",[12,21.09]],[\"parent/67\",[44,1.681]],[\"name/68\",[53,42.293]],[\"parent/68\",[44,1.681]],[\"name/69\",[54,42.293]],[\"parent/69\",[44,1.681]],[\"name/70\",[55,42.293]],[\"parent/70\",[44,1.681]],[\"name/71\",[56,42.293]],[\"parent/71\",[44,1.681]],[\"name/72\",[57,42.293]],[\"parent/72\",[44,1.681]],[\"name/73\",[58,37.184]],[\"parent/73\",[]],[\"name/74\",[12,21.09]],[\"parent/74\",[58,3.526]],[\"name/75\",[8,37.184]],[\"parent/75\",[]],[\"name/76\",[59,37.184]],[\"parent/76\",[]],[\"name/77\",[60,31.307]],[\"parent/77\",[]],[\"name/78\",[61,42.293]],[\"parent/78\",[60,2.969]],[\"name/79\",[62,42.293]],[\"parent/79\",[60,2.969]],[\"name/80\",[63,42.293]],[\"parent/80\",[60,2.969]],[\"name/81\",[64,37.184]],[\"parent/81\",[]],[\"name/82\",[59,37.184]],[\"parent/82\",[64,3.526]],[\"name/83\",[9,16.143]],[\"parent/83\",[]],[\"name/84\",[1,33.82]],[\"parent/84\",[9,1.531]],[\"name/85\",[46,37.184]],[\"parent/85\",[9,1.531]],[\"name/86\",[65,42.293]],[\"parent/86\",[9,1.531]],[\"name/87\",[66,42.293]],[\"parent/87\",[9,1.531]],[\"name/88\",[67,42.293]],[\"parent/88\",[9,1.531]],[\"name/89\",[68,42.293]],[\"parent/89\",[9,1.531]],[\"name/90\",[69,42.293]],[\"parent/90\",[9,1.531]],[\"name/91\",[70,42.293]],[\"parent/91\",[9,1.531]],[\"name/92\",[71,42.293]],[\"parent/92\",[9,1.531]],[\"name/93\",[72,42.293]],[\"parent/93\",[9,1.531]],[\"name/94\",[11,37.184]],[\"parent/94\",[9,1.531]],[\"name/95\",[13,37.184]],[\"parent/95\",[9,1.531]],[\"name/96\",[14,33.82]],[\"parent/96\",[9,1.531]],[\"name/97\",[73,42.293]],[\"parent/97\",[9,1.531]],[\"name/98\",[28,37.184]],[\"parent/98\",[9,1.531]],[\"name/99\",[74,42.293]],[\"parent/99\",[9,1.531]],[\"name/100\",[75,42.293]],[\"parent/100\",[9,1.531]],[\"name/101\",[76,42.293]],[\"parent/101\",[9,1.531]]],\"invertedIndex\":[[\"__asyncjobs\",{\"_index\":56,\"name\":{\"71\":{}},\"parent\":{}}],[\"__type\",{\"_index\":12,\"name\":{\"12\":{},\"14\":{},\"16\":{},\"18\":{},\"20\":{},\"22\":{},\"24\":{},\"39\":{},\"41\":{},\"44\":{},\"67\":{},\"74\":{}},\"parent\":{}}],[\"_bot\",{\"_index\":66,\"name\":{\"87\":{}},\"parent\":{}}],[\"action\",{\"_index\":8,\"name\":{\"8\":{},\"75\":{}},\"parent\":{}}],[\"actionobject\",{\"_index\":37,\"name\":{\"48\":{}},\"parent\":{\"49\":{},\"50\":{},\"51\":{},\"52\":{},\"53\":{}}}],[\"actionparameters\",{\"_index\":44,\"name\":{\"56\":{}},\"parent\":{\"57\":{},\"58\":{},\"59\":{},\"60\":{},\"61\":{},\"62\":{},\"63\":{},\"64\":{},\"65\":{},\"66\":{},\"67\":{},\"68\":{},\"69\":{},\"70\":{},\"71\":{},\"72\":{}}}],[\"args\",{\"_index\":45,\"name\":{\"57\":{}},\"parent\":{}}],[\"asynceffect\",{\"_index\":55,\"name\":{\"70\":{}},\"parent\":{}}],[\"author\",{\"_index\":32,\"name\":{\"42\":{},\"62\":{}},\"parent\":{}}],[\"bot\",{\"_index\":0,\"name\":{\"0\":{}},\"parent\":{\"1\":{},\"2\":{},\"3\":{},\"4\":{},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{},\"12\":{},\"13\":{},\"14\":{},\"15\":{},\"16\":{},\"17\":{},\"18\":{},\"19\":{},\"20\":{},\"21\":{},\"22\":{},\"23\":{},\"24\":{},\"25\":{},\"26\":{},\"27\":{},\"28\":{},\"29\":{},\"30\":{},\"31\":{},\"32\":{},\"33\":{},\"34\":{}}}],[\"cachelength\",{\"_index\":63,\"name\":{\"80\":{}},\"parent\":{}}],[\"cachetimeout\",{\"_index\":62,\"name\":{\"79\":{}},\"parent\":{}}],[\"channel\",{\"_index\":49,\"name\":{\"63\":{}},\"parent\":{}}],[\"client\",{\"_index\":25,\"name\":{\"31\":{}},\"parent\":{}}],[\"color\",{\"_index\":29,\"name\":{\"37\":{}},\"parent\":{}}],[\"commands\",{\"_index\":10,\"name\":{\"10\":{}},\"parent\":{}}],[\"compileall\",{\"_index\":70,\"name\":{\"91\":{}},\"parent\":{}}],[\"compilecommands\",{\"_index\":18,\"name\":{\"23\":{}},\"parent\":{}}],[\"componenthandler\",{\"_index\":7,\"name\":{\"7\":{}},\"parent\":{}}],[\"constructor\",{\"_index\":1,\"name\":{\"1\":{},\"36\":{},\"84\":{}},\"parent\":{}}],[\"create\",{\"_index\":35,\"name\":{\"46\":{}},\"parent\":{}}],[\"createembed\",{\"_index\":52,\"name\":{\"66\":{}},\"parent\":{}}],[\"createparams\",{\"_index\":20,\"name\":{\"26\":{}},\"parent\":{}}],[\"createsingularembed\",{\"_index\":34,\"name\":{\"45\":{}},\"parent\":{}}],[\"description\",{\"_index\":38,\"name\":{\"49\":{}},\"parent\":{}}],[\"desctransform\",{\"_index\":30,\"name\":{\"38\":{}},\"parent\":{}}],[\"dm\",{\"_index\":53,\"name\":{\"68\":{}},\"parent\":{}}],[\"embed\",{\"_index\":2,\"name\":{\"2\":{},\"35\":{}},\"parent\":{\"36\":{},\"37\":{},\"38\":{},\"39\":{},\"40\":{},\"41\":{},\"42\":{},\"43\":{},\"44\":{},\"45\":{},\"46\":{},\"47\":{}}}],[\"error\",{\"_index\":47,\"name\":{\"60\":{}},\"parent\":{}}],[\"erroraction\",{\"_index\":69,\"name\":{\"90\":{}},\"parent\":{}}],[\"expectreply\",{\"_index\":51,\"name\":{\"65\":{}},\"parent\":{}}],[\"findaction\",{\"_index\":72,\"name\":{\"93\":{}},\"parent\":{}}],[\"finderror\",{\"_index\":71,\"name\":{\"92\":{}},\"parent\":{}}],[\"guild\",{\"_index\":50,\"name\":{\"64\":{}},\"parent\":{}}],[\"handleaction\",{\"_index\":23,\"name\":{\"29\":{}},\"parent\":{}}],[\"handler\",{\"_index\":65,\"name\":{\"86\":{}},\"parent\":{}}],[\"id\",{\"_index\":24,\"name\":{\"30\":{}},\"parent\":{}}],[\"ignorecaps\",{\"_index\":5,\"name\":{\"5\":{}},\"parent\":{}}],[\"images\",{\"_index\":33,\"name\":{\"43\":{}},\"parent\":{}}],[\"interactionhandler\",{\"_index\":21,\"name\":{\"27\":{}},\"parent\":{}}],[\"isglobal\",{\"_index\":74,\"name\":{\"99\":{}},\"parent\":{}}],[\"messagehandler\",{\"_index\":22,\"name\":{\"28\":{}},\"parent\":{}}],[\"middleware\",{\"_index\":57,\"name\":{\"72\":{}},\"parent\":{}}],[\"middlewarearray\",{\"_index\":6,\"name\":{\"6\":{}},\"parent\":{}}],[\"msg\",{\"_index\":48,\"name\":{\"61\":{}},\"parent\":{}}],[\"on\",{\"_index\":11,\"name\":{\"11\":{},\"94\":{}},\"parent\":{}}],[\"ondefault\",{\"_index\":13,\"name\":{\"13\":{},\"95\":{}},\"parent\":{}}],[\"onerror\",{\"_index\":14,\"name\":{\"15\":{},\"52\":{},\"96\":{}},\"parent\":{}}],[\"options\",{\"_index\":68,\"name\":{\"89\":{}},\"parent\":{}}],[\"padaction\",{\"_index\":75,\"name\":{\"100\":{}},\"parent\":{}}],[\"parameters\",{\"_index\":41,\"name\":{\"53\":{},\"58\":{}},\"parent\":{}}],[\"parametersmiddleware\",{\"_index\":58,\"name\":{\"73\":{}},\"parent\":{\"74\":{}}}],[\"parent\",{\"_index\":67,\"name\":{\"88\":{}},\"parent\":{}}],[\"prefix\",{\"_index\":3,\"name\":{\"3\":{}},\"parent\":{}}],[\"reaction\",{\"_index\":40,\"name\":{\"51\":{}},\"parent\":{}}],[\"reftransform\",{\"_index\":31,\"name\":{\"40\":{}},\"parent\":{}}],[\"registeraction\",{\"_index\":17,\"name\":{\"21\":{}},\"parent\":{}}],[\"registerimage\",{\"_index\":36,\"name\":{\"47\":{}},\"parent\":{}}],[\"removeaction\",{\"_index\":73,\"name\":{\"97\":{}},\"parent\":{}}],[\"report\",{\"_index\":28,\"name\":{\"34\":{},\"98\":{}},\"parent\":{}}],[\"response\",{\"_index\":39,\"name\":{\"50\":{}},\"parent\":{}}],[\"router\",{\"_index\":9,\"name\":{\"9\":{},\"83\":{}},\"parent\":{\"84\":{},\"85\":{},\"86\":{},\"87\":{},\"88\":{},\"89\":{},\"90\":{},\"91\":{},\"92\":{},\"93\":{},\"94\":{},\"95\":{},\"96\":{},\"97\":{},\"98\":{},\"99\":{},\"100\":{},\"101\":{}}}],[\"sendableemoji\",{\"_index\":42,\"name\":{\"54\":{}},\"parent\":{}}],[\"sendablemessage\",{\"_index\":43,\"name\":{\"55\":{}},\"parent\":{}}],[\"session\",{\"_index\":59,\"name\":{\"76\":{},\"82\":{}},\"parent\":{}}],[\"sessionconfig\",{\"_index\":60,\"name\":{\"77\":{}},\"parent\":{\"78\":{},\"79\":{},\"80\":{}}}],[\"sessionmw\",{\"_index\":64,\"name\":{\"81\":{}},\"parent\":{\"82\":{}}}],[\"setdefaultaction\",{\"_index\":15,\"name\":{\"17\":{}},\"parent\":{}}],[\"seterroraction\",{\"_index\":16,\"name\":{\"19\":{}},\"parent\":{}}],[\"setpresence\",{\"_index\":27,\"name\":{\"33\":{}},\"parent\":{}}],[\"subscribe\",{\"_index\":54,\"name\":{\"69\":{}},\"parent\":{}}],[\"suffix\",{\"_index\":4,\"name\":{\"4\":{}},\"parent\":{}}],[\"token\",{\"_index\":26,\"name\":{\"32\":{}},\"parent\":{}}],[\"trigger\",{\"_index\":46,\"name\":{\"59\":{},\"85\":{}},\"parent\":{}}],[\"turnarraytoregex\",{\"_index\":76,\"name\":{\"101\":{}},\"parent\":{}}],[\"uri\",{\"_index\":61,\"name\":{\"78\":{}},\"parent\":{}}],[\"usemiddleware\",{\"_index\":19,\"name\":{\"25\":{}},\"parent\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = JSON.parse("{\"kinds\":{\"64\":\"Function\",\"128\":\"Class\",\"256\":\"Interface\",\"512\":\"Constructor\",\"1024\":\"Property\",\"2048\":\"Method\",\"65536\":\"Type literal\",\"4194304\":\"Type alias\"},\"rows\":[{\"id\":0,\"kind\":128,\"name\":\"Bot\",\"url\":\"classes/Bot.html\",\"classes\":\"tsd-kind-class\"},{\"id\":1,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Bot.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite\",\"parent\":\"Bot\"},{\"id\":2,\"kind\":1024,\"name\":\"embed\",\"url\":\"classes/Bot.html#embed\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":3,\"kind\":1024,\"name\":\"prefix\",\"url\":\"classes/Bot.html#prefix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":4,\"kind\":1024,\"name\":\"suffix\",\"url\":\"classes/Bot.html#suffix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":5,\"kind\":1024,\"name\":\"ignoreCaps\",\"url\":\"classes/Bot.html#ignoreCaps\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":6,\"kind\":1024,\"name\":\"middlewareArray\",\"url\":\"classes/Bot.html#middlewareArray\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":7,\"kind\":1024,\"name\":\"componentHandler\",\"url\":\"classes/Bot.html#componentHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":8,\"kind\":1024,\"name\":\"Action\",\"url\":\"classes/Bot.html#Action\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":9,\"kind\":1024,\"name\":\"router\",\"url\":\"classes/Bot.html#router\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":10,\"kind\":1024,\"name\":\"commands\",\"url\":\"classes/Bot.html#commands\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":11,\"kind\":1024,\"name\":\"on\",\"url\":\"classes/Bot.html#on\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":12,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"Bot\"},{\"id\":13,\"kind\":1024,\"name\":\"onDefault\",\"url\":\"classes/Bot.html#onDefault\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":14,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":15,\"kind\":1024,\"name\":\"onError\",\"url\":\"classes/Bot.html#onError\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":16,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":17,\"kind\":1024,\"name\":\"onTypo\",\"url\":\"classes/Bot.html#onTypo\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":18,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":19,\"kind\":1024,\"name\":\"setDefaultAction\",\"url\":\"classes/Bot.html#setDefaultAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":20,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":21,\"kind\":1024,\"name\":\"setErrorAction\",\"url\":\"classes/Bot.html#setErrorAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":22,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-7\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":23,\"kind\":1024,\"name\":\"registerAction\",\"url\":\"classes/Bot.html#registerAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":24,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"Bot\"},{\"id\":25,\"kind\":1024,\"name\":\"compileCommands\",\"url\":\"classes/Bot.html#compileCommands\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":26,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Bot.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":27,\"kind\":2048,\"name\":\"useMiddleware\",\"url\":\"classes/Bot.html#useMiddleware\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"Bot\"},{\"id\":28,\"kind\":2048,\"name\":\"createParams\",\"url\":\"classes/Bot.html#createParams\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":29,\"kind\":2048,\"name\":\"interactionHandler\",\"url\":\"classes/Bot.html#interactionHandler\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":30,\"kind\":2048,\"name\":\"messageHandler\",\"url\":\"classes/Bot.html#messageHandler\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Bot\"},{\"id\":31,\"kind\":2048,\"name\":\"handleAction\",\"url\":\"classes/Bot.html#handleAction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Bot\"},{\"id\":32,\"kind\":1024,\"name\":\"id\",\"url\":\"classes/Bot.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":33,\"kind\":1024,\"name\":\"client\",\"url\":\"classes/Bot.html#client\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":34,\"kind\":1024,\"name\":\"name\",\"url\":\"classes/Bot.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":35,\"kind\":1024,\"name\":\"token\",\"url\":\"classes/Bot.html#token\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":36,\"kind\":2048,\"name\":\"setPresence\",\"url\":\"classes/Bot.html#setPresence\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":37,\"kind\":2048,\"name\":\"report\",\"url\":\"classes/Bot.html#report\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Bot\"},{\"id\":38,\"kind\":128,\"name\":\"Embed\",\"url\":\"classes/Embed.html\",\"classes\":\"tsd-kind-class\"},{\"id\":39,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Embed.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":40,\"kind\":1024,\"name\":\"color\",\"url\":\"classes/Embed.html#color\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":41,\"kind\":1024,\"name\":\"descTransform\",\"url\":\"classes/Embed.html#descTransform\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":42,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Embed.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":43,\"kind\":1024,\"name\":\"refTransform\",\"url\":\"classes/Embed.html#refTransform\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":44,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Embed.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":45,\"kind\":1024,\"name\":\"author\",\"url\":\"classes/Embed.html#author\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":46,\"kind\":1024,\"name\":\"images\",\"url\":\"classes/Embed.html#images\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":47,\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/Embed.html#__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":48,\"kind\":2048,\"name\":\"createSingularEmbed\",\"url\":\"classes/Embed.html#createSingularEmbed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Embed\"},{\"id\":49,\"kind\":2048,\"name\":\"create\",\"url\":\"classes/Embed.html#create\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":50,\"kind\":2048,\"name\":\"registerImage\",\"url\":\"classes/Embed.html#registerImage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Embed\"},{\"id\":51,\"kind\":256,\"name\":\"ActionObject\",\"url\":\"interfaces/ActionObject.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":52,\"kind\":1024,\"name\":\"description\",\"url\":\"interfaces/ActionObject.html#description\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":53,\"kind\":1024,\"name\":\"response\",\"url\":\"interfaces/ActionObject.html#response\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":54,\"kind\":1024,\"name\":\"reaction\",\"url\":\"interfaces/ActionObject.html#reaction\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":55,\"kind\":1024,\"name\":\"onError\",\"url\":\"interfaces/ActionObject.html#onError\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":56,\"kind\":1024,\"name\":\"parameters\",\"url\":\"interfaces/ActionObject.html#parameters\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionObject\"},{\"id\":57,\"kind\":4194304,\"name\":\"SendableEmoji\",\"url\":\"modules.html#SendableEmoji\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":58,\"kind\":4194304,\"name\":\"SendableMessage\",\"url\":\"modules.html#SendableMessage\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":59,\"kind\":256,\"name\":\"ActionParameters\",\"url\":\"interfaces/ActionParameters.html\",\"classes\":\"tsd-kind-interface tsd-has-type-parameter\"},{\"id\":60,\"kind\":1024,\"name\":\"args\",\"url\":\"interfaces/ActionParameters.html#args\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":61,\"kind\":1024,\"name\":\"parameters\",\"url\":\"interfaces/ActionParameters.html#parameters\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":62,\"kind\":1024,\"name\":\"trigger\",\"url\":\"interfaces/ActionParameters.html#trigger\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":63,\"kind\":1024,\"name\":\"error\",\"url\":\"interfaces/ActionParameters.html#error\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":64,\"kind\":1024,\"name\":\"msg\",\"url\":\"interfaces/ActionParameters.html#msg\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":65,\"kind\":1024,\"name\":\"author\",\"url\":\"interfaces/ActionParameters.html#author\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":66,\"kind\":1024,\"name\":\"channel\",\"url\":\"interfaces/ActionParameters.html#channel\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":67,\"kind\":1024,\"name\":\"guild\",\"url\":\"interfaces/ActionParameters.html#guild\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":68,\"kind\":2048,\"name\":\"expectReply\",\"url\":\"interfaces/ActionParameters.html#expectReply\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":69,\"kind\":1024,\"name\":\"createEmbed\",\"url\":\"interfaces/ActionParameters.html#createEmbed\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":70,\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ActionParameters.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":71,\"kind\":2048,\"name\":\"dm\",\"url\":\"interfaces/ActionParameters.html#dm\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":72,\"kind\":2048,\"name\":\"subscribe\",\"url\":\"interfaces/ActionParameters.html#subscribe\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":73,\"kind\":2048,\"name\":\"asyncEffect\",\"url\":\"interfaces/ActionParameters.html#asyncEffect\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":74,\"kind\":1024,\"name\":\"__asyncJobs\",\"url\":\"interfaces/ActionParameters.html#__asyncJobs\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":75,\"kind\":1024,\"name\":\"middleware\",\"url\":\"interfaces/ActionParameters.html#middleware\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ActionParameters\"},{\"id\":76,\"kind\":4194304,\"name\":\"ParametersMiddleWare\",\"url\":\"modules.html#ParametersMiddleWare\",\"classes\":\"tsd-kind-type-alias tsd-has-type-parameter\"},{\"id\":77,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#ParametersMiddleWare.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"ParametersMiddleWare\"},{\"id\":78,\"kind\":4194304,\"name\":\"Action\",\"url\":\"modules.html#Action\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":79,\"kind\":64,\"name\":\"Session\",\"url\":\"modules.html#Session\",\"classes\":\"tsd-kind-function\"},{\"id\":80,\"kind\":256,\"name\":\"SessionConfig\",\"url\":\"interfaces/SessionConfig.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":81,\"kind\":1024,\"name\":\"uri\",\"url\":\"interfaces/SessionConfig.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SessionConfig\"},{\"id\":82,\"kind\":1024,\"name\":\"cacheTimeout\",\"url\":\"interfaces/SessionConfig.html#cacheTimeout\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SessionConfig\"},{\"id\":83,\"kind\":1024,\"name\":\"cacheLength\",\"url\":\"interfaces/SessionConfig.html#cacheLength\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SessionConfig\"},{\"id\":84,\"kind\":256,\"name\":\"SessionMW\",\"url\":\"interfaces/SessionMW.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":85,\"kind\":1024,\"name\":\"session\",\"url\":\"interfaces/SessionMW.html#session\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SessionMW\"},{\"id\":86,\"kind\":128,\"name\":\"Router\",\"url\":\"classes/Router.html\",\"classes\":\"tsd-kind-class\"},{\"id\":87,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Router.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":88,\"kind\":1024,\"name\":\"trigger\",\"url\":\"classes/Router.html#trigger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":89,\"kind\":1024,\"name\":\"handler\",\"url\":\"classes/Router.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"Router\"},{\"id\":90,\"kind\":1024,\"name\":\"_bot\",\"url\":\"classes/Router.html#_bot\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":91,\"kind\":1024,\"name\":\"parent\",\"url\":\"classes/Router.html#parent\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":92,\"kind\":1024,\"name\":\"options\",\"url\":\"classes/Router.html#options\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":93,\"kind\":1024,\"name\":\"errorAction\",\"url\":\"classes/Router.html#errorAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":94,\"kind\":1024,\"name\":\"typoAction\",\"url\":\"classes/Router.html#typoAction\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":95,\"kind\":1024,\"name\":\"typoOptions\",\"url\":\"classes/Router.html#typoOptions\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":96,\"kind\":2048,\"name\":\"compileAll\",\"url\":\"classes/Router.html#compileAll\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":97,\"kind\":2048,\"name\":\"findError\",\"url\":\"classes/Router.html#findError\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":98,\"kind\":2048,\"name\":\"findOnTypo\",\"url\":\"classes/Router.html#findOnTypo\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":99,\"kind\":2048,\"name\":\"fullTrigger\",\"url\":\"classes/Router.html#fullTrigger\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":100,\"kind\":2048,\"name\":\"findAction\",\"url\":\"classes/Router.html#findAction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":101,\"kind\":2048,\"name\":\"on\",\"url\":\"classes/Router.html#on\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"Router\"},{\"id\":102,\"kind\":2048,\"name\":\"onDefault\",\"url\":\"classes/Router.html#onDefault\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":103,\"kind\":2048,\"name\":\"onError\",\"url\":\"classes/Router.html#onError\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":104,\"kind\":2048,\"name\":\"onTypo\",\"url\":\"classes/Router.html#onTypo\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":105,\"kind\":2048,\"name\":\"removeAction\",\"url\":\"classes/Router.html#removeAction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":106,\"kind\":2048,\"name\":\"report\",\"url\":\"classes/Router.html#report\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":107,\"kind\":2048,\"name\":\"isGlobal\",\"url\":\"classes/Router.html#isGlobal\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Router\"},{\"id\":108,\"kind\":2048,\"name\":\"padAction\",\"url\":\"classes/Router.html#padAction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Router\"},{\"id\":109,\"kind\":2048,\"name\":\"turnArrayToRegex\",\"url\":\"classes/Router.html#turnArrayToRegex\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"Router\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"parent\"],\"fieldVectors\":[[\"name/0\",[0,10.589]],[\"parent/0\",[]],[\"name/1\",[1,34.568]],[\"parent/1\",[0,1.008]],[\"name/2\",[2,20.354]],[\"parent/2\",[0,1.008]],[\"name/3\",[3,43.041]],[\"parent/3\",[0,1.008]],[\"name/4\",[4,43.041]],[\"parent/4\",[0,1.008]],[\"name/5\",[5,43.041]],[\"parent/5\",[0,1.008]],[\"name/6\",[6,43.041]],[\"parent/6\",[0,1.008]],[\"name/7\",[7,43.041]],[\"parent/7\",[0,1.008]],[\"name/8\",[8,37.932]],[\"parent/8\",[0,1.008]],[\"name/9\",[9,14.709]],[\"parent/9\",[0,1.008]],[\"name/10\",[10,43.041]],[\"parent/10\",[0,1.008]],[\"name/11\",[11,37.932]],[\"parent/11\",[0,1.008]],[\"name/12\",[12,21.068]],[\"parent/12\",[0,1.008]],[\"name/13\",[13,37.932]],[\"parent/13\",[0,1.008]],[\"name/14\",[12,21.068]],[\"parent/14\",[0,1.008]],[\"name/15\",[14,34.568]],[\"parent/15\",[0,1.008]],[\"name/16\",[12,21.068]],[\"parent/16\",[0,1.008]],[\"name/17\",[15,37.932]],[\"parent/17\",[0,1.008]],[\"name/18\",[12,21.068]],[\"parent/18\",[0,1.008]],[\"name/19\",[16,43.041]],[\"parent/19\",[0,1.008]],[\"name/20\",[12,21.068]],[\"parent/20\",[0,1.008]],[\"name/21\",[17,43.041]],[\"parent/21\",[0,1.008]],[\"name/22\",[12,21.068]],[\"parent/22\",[0,1.008]],[\"name/23\",[18,43.041]],[\"parent/23\",[0,1.008]],[\"name/24\",[12,21.068]],[\"parent/24\",[0,1.008]],[\"name/25\",[19,43.041]],[\"parent/25\",[0,1.008]],[\"name/26\",[12,21.068]],[\"parent/26\",[0,1.008]],[\"name/27\",[20,43.041]],[\"parent/27\",[0,1.008]],[\"name/28\",[21,43.041]],[\"parent/28\",[0,1.008]],[\"name/29\",[22,43.041]],[\"parent/29\",[0,1.008]],[\"name/30\",[23,43.041]],[\"parent/30\",[0,1.008]],[\"name/31\",[24,43.041]],[\"parent/31\",[0,1.008]],[\"name/32\",[25,43.041]],[\"parent/32\",[0,1.008]],[\"name/33\",[26,43.041]],[\"parent/33\",[0,1.008]],[\"name/34\",[27,43.041]],[\"parent/34\",[0,1.008]],[\"name/35\",[28,43.041]],[\"parent/35\",[0,1.008]],[\"name/36\",[29,43.041]],[\"parent/36\",[0,1.008]],[\"name/37\",[30,37.932]],[\"parent/37\",[0,1.008]],[\"name/38\",[2,20.354]],[\"parent/38\",[]],[\"name/39\",[1,34.568]],[\"parent/39\",[2,1.938]],[\"name/40\",[31,43.041]],[\"parent/40\",[2,1.938]],[\"name/41\",[32,43.041]],[\"parent/41\",[2,1.938]],[\"name/42\",[12,21.068]],[\"parent/42\",[2,1.938]],[\"name/43\",[33,43.041]],[\"parent/43\",[2,1.938]],[\"name/44\",[12,21.068]],[\"parent/44\",[2,1.938]],[\"name/45\",[34,37.932]],[\"parent/45\",[2,1.938]],[\"name/46\",[35,43.041]],[\"parent/46\",[2,1.938]],[\"name/47\",[12,21.068]],[\"parent/47\",[2,1.938]],[\"name/48\",[36,43.041]],[\"parent/48\",[2,1.938]],[\"name/49\",[37,43.041]],[\"parent/49\",[2,1.938]],[\"name/50\",[38,43.041]],[\"parent/50\",[2,1.938]],[\"name/51\",[39,28.377]],[\"parent/51\",[]],[\"name/52\",[40,43.041]],[\"parent/52\",[39,2.702]],[\"name/53\",[41,43.041]],[\"parent/53\",[39,2.702]],[\"name/54\",[42,43.041]],[\"parent/54\",[39,2.702]],[\"name/55\",[14,34.568]],[\"parent/55\",[39,2.702]],[\"name/56\",[43,37.932]],[\"parent/56\",[39,2.702]],[\"name/57\",[44,43.041]],[\"parent/57\",[]],[\"name/58\",[45,43.041]],[\"parent/58\",[]],[\"name/59\",[46,18.473]],[\"parent/59\",[]],[\"name/60\",[47,43.041]],[\"parent/60\",[46,1.759]],[\"name/61\",[43,37.932]],[\"parent/61\",[46,1.759]],[\"name/62\",[48,37.932]],[\"parent/62\",[46,1.759]],[\"name/63\",[49,43.041]],[\"parent/63\",[46,1.759]],[\"name/64\",[50,43.041]],[\"parent/64\",[46,1.759]],[\"name/65\",[34,37.932]],[\"parent/65\",[46,1.759]],[\"name/66\",[51,43.041]],[\"parent/66\",[46,1.759]],[\"name/67\",[52,43.041]],[\"parent/67\",[46,1.759]],[\"name/68\",[53,43.041]],[\"parent/68\",[46,1.759]],[\"name/69\",[54,43.041]],[\"parent/69\",[46,1.759]],[\"name/70\",[12,21.068]],[\"parent/70\",[46,1.759]],[\"name/71\",[55,43.041]],[\"parent/71\",[46,1.759]],[\"name/72\",[56,43.041]],[\"parent/72\",[46,1.759]],[\"name/73\",[57,43.041]],[\"parent/73\",[46,1.759]],[\"name/74\",[58,43.041]],[\"parent/74\",[46,1.759]],[\"name/75\",[59,43.041]],[\"parent/75\",[46,1.759]],[\"name/76\",[60,37.932]],[\"parent/76\",[]],[\"name/77\",[12,21.068]],[\"parent/77\",[60,3.612]],[\"name/78\",[8,37.932]],[\"parent/78\",[]],[\"name/79\",[61,37.932]],[\"parent/79\",[]],[\"name/80\",[62,32.055]],[\"parent/80\",[]],[\"name/81\",[63,43.041]],[\"parent/81\",[62,3.053]],[\"name/82\",[64,43.041]],[\"parent/82\",[62,3.053]],[\"name/83\",[65,43.041]],[\"parent/83\",[62,3.053]],[\"name/84\",[66,37.932]],[\"parent/84\",[]],[\"name/85\",[61,37.932]],[\"parent/85\",[66,3.612]],[\"name/86\",[9,14.709]],[\"parent/86\",[]],[\"name/87\",[1,34.568]],[\"parent/87\",[9,1.401]],[\"name/88\",[48,37.932]],[\"parent/88\",[9,1.401]],[\"name/89\",[67,43.041]],[\"parent/89\",[9,1.401]],[\"name/90\",[68,43.041]],[\"parent/90\",[9,1.401]],[\"name/91\",[69,43.041]],[\"parent/91\",[9,1.401]],[\"name/92\",[70,43.041]],[\"parent/92\",[9,1.401]],[\"name/93\",[71,43.041]],[\"parent/93\",[9,1.401]],[\"name/94\",[72,43.041]],[\"parent/94\",[9,1.401]],[\"name/95\",[73,43.041]],[\"parent/95\",[9,1.401]],[\"name/96\",[74,43.041]],[\"parent/96\",[9,1.401]],[\"name/97\",[75,43.041]],[\"parent/97\",[9,1.401]],[\"name/98\",[76,43.041]],[\"parent/98\",[9,1.401]],[\"name/99\",[77,43.041]],[\"parent/99\",[9,1.401]],[\"name/100\",[78,43.041]],[\"parent/100\",[9,1.401]],[\"name/101\",[11,37.932]],[\"parent/101\",[9,1.401]],[\"name/102\",[13,37.932]],[\"parent/102\",[9,1.401]],[\"name/103\",[14,34.568]],[\"parent/103\",[9,1.401]],[\"name/104\",[15,37.932]],[\"parent/104\",[9,1.401]],[\"name/105\",[79,43.041]],[\"parent/105\",[9,1.401]],[\"name/106\",[30,37.932]],[\"parent/106\",[9,1.401]],[\"name/107\",[80,43.041]],[\"parent/107\",[9,1.401]],[\"name/108\",[81,43.041]],[\"parent/108\",[9,1.401]],[\"name/109\",[82,43.041]],[\"parent/109\",[9,1.401]]],\"invertedIndex\":[[\"__asyncjobs\",{\"_index\":58,\"name\":{\"74\":{}},\"parent\":{}}],[\"__type\",{\"_index\":12,\"name\":{\"12\":{},\"14\":{},\"16\":{},\"18\":{},\"20\":{},\"22\":{},\"24\":{},\"26\":{},\"42\":{},\"44\":{},\"47\":{},\"70\":{},\"77\":{}},\"parent\":{}}],[\"_bot\",{\"_index\":68,\"name\":{\"90\":{}},\"parent\":{}}],[\"action\",{\"_index\":8,\"name\":{\"8\":{},\"78\":{}},\"parent\":{}}],[\"actionobject\",{\"_index\":39,\"name\":{\"51\":{}},\"parent\":{\"52\":{},\"53\":{},\"54\":{},\"55\":{},\"56\":{}}}],[\"actionparameters\",{\"_index\":46,\"name\":{\"59\":{}},\"parent\":{\"60\":{},\"61\":{},\"62\":{},\"63\":{},\"64\":{},\"65\":{},\"66\":{},\"67\":{},\"68\":{},\"69\":{},\"70\":{},\"71\":{},\"72\":{},\"73\":{},\"74\":{},\"75\":{}}}],[\"args\",{\"_index\":47,\"name\":{\"60\":{}},\"parent\":{}}],[\"asynceffect\",{\"_index\":57,\"name\":{\"73\":{}},\"parent\":{}}],[\"author\",{\"_index\":34,\"name\":{\"45\":{},\"65\":{}},\"parent\":{}}],[\"bot\",{\"_index\":0,\"name\":{\"0\":{}},\"parent\":{\"1\":{},\"2\":{},\"3\":{},\"4\":{},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{},\"12\":{},\"13\":{},\"14\":{},\"15\":{},\"16\":{},\"17\":{},\"18\":{},\"19\":{},\"20\":{},\"21\":{},\"22\":{},\"23\":{},\"24\":{},\"25\":{},\"26\":{},\"27\":{},\"28\":{},\"29\":{},\"30\":{},\"31\":{},\"32\":{},\"33\":{},\"34\":{},\"35\":{},\"36\":{},\"37\":{}}}],[\"cachelength\",{\"_index\":65,\"name\":{\"83\":{}},\"parent\":{}}],[\"cachetimeout\",{\"_index\":64,\"name\":{\"82\":{}},\"parent\":{}}],[\"channel\",{\"_index\":51,\"name\":{\"66\":{}},\"parent\":{}}],[\"client\",{\"_index\":26,\"name\":{\"33\":{}},\"parent\":{}}],[\"color\",{\"_index\":31,\"name\":{\"40\":{}},\"parent\":{}}],[\"commands\",{\"_index\":10,\"name\":{\"10\":{}},\"parent\":{}}],[\"compileall\",{\"_index\":74,\"name\":{\"96\":{}},\"parent\":{}}],[\"compilecommands\",{\"_index\":19,\"name\":{\"25\":{}},\"parent\":{}}],[\"componenthandler\",{\"_index\":7,\"name\":{\"7\":{}},\"parent\":{}}],[\"constructor\",{\"_index\":1,\"name\":{\"1\":{},\"39\":{},\"87\":{}},\"parent\":{}}],[\"create\",{\"_index\":37,\"name\":{\"49\":{}},\"parent\":{}}],[\"createembed\",{\"_index\":54,\"name\":{\"69\":{}},\"parent\":{}}],[\"createparams\",{\"_index\":21,\"name\":{\"28\":{}},\"parent\":{}}],[\"createsingularembed\",{\"_index\":36,\"name\":{\"48\":{}},\"parent\":{}}],[\"description\",{\"_index\":40,\"name\":{\"52\":{}},\"parent\":{}}],[\"desctransform\",{\"_index\":32,\"name\":{\"41\":{}},\"parent\":{}}],[\"dm\",{\"_index\":55,\"name\":{\"71\":{}},\"parent\":{}}],[\"embed\",{\"_index\":2,\"name\":{\"2\":{},\"38\":{}},\"parent\":{\"39\":{},\"40\":{},\"41\":{},\"42\":{},\"43\":{},\"44\":{},\"45\":{},\"46\":{},\"47\":{},\"48\":{},\"49\":{},\"50\":{}}}],[\"error\",{\"_index\":49,\"name\":{\"63\":{}},\"parent\":{}}],[\"erroraction\",{\"_index\":71,\"name\":{\"93\":{}},\"parent\":{}}],[\"expectreply\",{\"_index\":53,\"name\":{\"68\":{}},\"parent\":{}}],[\"findaction\",{\"_index\":78,\"name\":{\"100\":{}},\"parent\":{}}],[\"finderror\",{\"_index\":75,\"name\":{\"97\":{}},\"parent\":{}}],[\"findontypo\",{\"_index\":76,\"name\":{\"98\":{}},\"parent\":{}}],[\"fulltrigger\",{\"_index\":77,\"name\":{\"99\":{}},\"parent\":{}}],[\"guild\",{\"_index\":52,\"name\":{\"67\":{}},\"parent\":{}}],[\"handleaction\",{\"_index\":24,\"name\":{\"31\":{}},\"parent\":{}}],[\"handler\",{\"_index\":67,\"name\":{\"89\":{}},\"parent\":{}}],[\"id\",{\"_index\":25,\"name\":{\"32\":{}},\"parent\":{}}],[\"ignorecaps\",{\"_index\":5,\"name\":{\"5\":{}},\"parent\":{}}],[\"images\",{\"_index\":35,\"name\":{\"46\":{}},\"parent\":{}}],[\"interactionhandler\",{\"_index\":22,\"name\":{\"29\":{}},\"parent\":{}}],[\"isglobal\",{\"_index\":80,\"name\":{\"107\":{}},\"parent\":{}}],[\"messagehandler\",{\"_index\":23,\"name\":{\"30\":{}},\"parent\":{}}],[\"middleware\",{\"_index\":59,\"name\":{\"75\":{}},\"parent\":{}}],[\"middlewarearray\",{\"_index\":6,\"name\":{\"6\":{}},\"parent\":{}}],[\"msg\",{\"_index\":50,\"name\":{\"64\":{}},\"parent\":{}}],[\"name\",{\"_index\":27,\"name\":{\"34\":{}},\"parent\":{}}],[\"on\",{\"_index\":11,\"name\":{\"11\":{},\"101\":{}},\"parent\":{}}],[\"ondefault\",{\"_index\":13,\"name\":{\"13\":{},\"102\":{}},\"parent\":{}}],[\"onerror\",{\"_index\":14,\"name\":{\"15\":{},\"55\":{},\"103\":{}},\"parent\":{}}],[\"ontypo\",{\"_index\":15,\"name\":{\"17\":{},\"104\":{}},\"parent\":{}}],[\"options\",{\"_index\":70,\"name\":{\"92\":{}},\"parent\":{}}],[\"padaction\",{\"_index\":81,\"name\":{\"108\":{}},\"parent\":{}}],[\"parameters\",{\"_index\":43,\"name\":{\"56\":{},\"61\":{}},\"parent\":{}}],[\"parametersmiddleware\",{\"_index\":60,\"name\":{\"76\":{}},\"parent\":{\"77\":{}}}],[\"parent\",{\"_index\":69,\"name\":{\"91\":{}},\"parent\":{}}],[\"prefix\",{\"_index\":3,\"name\":{\"3\":{}},\"parent\":{}}],[\"reaction\",{\"_index\":42,\"name\":{\"54\":{}},\"parent\":{}}],[\"reftransform\",{\"_index\":33,\"name\":{\"43\":{}},\"parent\":{}}],[\"registeraction\",{\"_index\":18,\"name\":{\"23\":{}},\"parent\":{}}],[\"registerimage\",{\"_index\":38,\"name\":{\"50\":{}},\"parent\":{}}],[\"removeaction\",{\"_index\":79,\"name\":{\"105\":{}},\"parent\":{}}],[\"report\",{\"_index\":30,\"name\":{\"37\":{},\"106\":{}},\"parent\":{}}],[\"response\",{\"_index\":41,\"name\":{\"53\":{}},\"parent\":{}}],[\"router\",{\"_index\":9,\"name\":{\"9\":{},\"86\":{}},\"parent\":{\"87\":{},\"88\":{},\"89\":{},\"90\":{},\"91\":{},\"92\":{},\"93\":{},\"94\":{},\"95\":{},\"96\":{},\"97\":{},\"98\":{},\"99\":{},\"100\":{},\"101\":{},\"102\":{},\"103\":{},\"104\":{},\"105\":{},\"106\":{},\"107\":{},\"108\":{},\"109\":{}}}],[\"sendableemoji\",{\"_index\":44,\"name\":{\"57\":{}},\"parent\":{}}],[\"sendablemessage\",{\"_index\":45,\"name\":{\"58\":{}},\"parent\":{}}],[\"session\",{\"_index\":61,\"name\":{\"79\":{},\"85\":{}},\"parent\":{}}],[\"sessionconfig\",{\"_index\":62,\"name\":{\"80\":{}},\"parent\":{\"81\":{},\"82\":{},\"83\":{}}}],[\"sessionmw\",{\"_index\":66,\"name\":{\"84\":{}},\"parent\":{\"85\":{}}}],[\"setdefaultaction\",{\"_index\":16,\"name\":{\"19\":{}},\"parent\":{}}],[\"seterroraction\",{\"_index\":17,\"name\":{\"21\":{}},\"parent\":{}}],[\"setpresence\",{\"_index\":29,\"name\":{\"36\":{}},\"parent\":{}}],[\"subscribe\",{\"_index\":56,\"name\":{\"72\":{}},\"parent\":{}}],[\"suffix\",{\"_index\":4,\"name\":{\"4\":{}},\"parent\":{}}],[\"token\",{\"_index\":28,\"name\":{\"35\":{}},\"parent\":{}}],[\"trigger\",{\"_index\":48,\"name\":{\"62\":{},\"88\":{}},\"parent\":{}}],[\"turnarraytoregex\",{\"_index\":82,\"name\":{\"109\":{}},\"parent\":{}}],[\"typoaction\",{\"_index\":72,\"name\":{\"94\":{}},\"parent\":{}}],[\"typooptions\",{\"_index\":73,\"name\":{\"95\":{}},\"parent\":{}}],[\"uri\",{\"_index\":63,\"name\":{\"81\":{}},\"parent\":{}}],[\"usemiddleware\",{\"_index\":20,\"name\":{\"27\":{}},\"parent\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/docs/classes/Bot.html b/docs/classes/Bot.html index 0b29c41..3987385 100644 --- a/docs/classes/Bot.html +++ b/docs/classes/Bot.html @@ -1,13 +1,13 @@ Bot | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

The Bot object, pass in a Discord API token and set the options according to your needs. Note that you're required to set either a prefix and/or a suffix

-

Hierarchy

  • BotBase
    • Bot

Index

Constructors

  • new Bot(token: string, options: BotOptions): Bot
  • Parameters

    • token: string
    • options: BotOptions

    Returns Bot

Properties

Action: typeof Action
client: Client<boolean>
+

Hierarchy

  • BotBase
    • Bot

Index

Constructors

  • new Bot(token: string, options: BotOptions): Bot
  • Parameters

    • token: string
    • options: BotOptions

    Returns Bot

Properties

Action: typeof Action
client: Client<boolean>

Discord.js client object

-
commands: SlashCommands = ...
compileCommands: (nesting?: number) => CommandCollection

Type declaration

    • (nesting?: number): CommandCollection
    • Parameters

      • nesting: number = 0

      Returns CommandCollection

componentHandler: ComponentHandler
embed: Embed
+
commands: SlashCommands = ...
compileCommands: (nesting?: number) => CommandCollection

Type declaration

    • (nesting?: number): CommandCollection
    • Parameters

      • nesting: number = 0

      Returns CommandCollection

componentHandler: ComponentHandler
embed: Embed

The embed object used for creating embeds in your actions

-
id: number
ignoreCaps: boolean
+
id: number
ignoreCaps: boolean

The bot will automatically ignore caps on the trigger keyword if enabled

-
middlewareArray: ParametersMiddleWare<any>[] = []
on: <T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]) => Router

Type declaration

    • <T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]): Router
    • +
middlewareArray: ParametersMiddleWare<any>[] = []
name: undefined | string = undefined
on: <T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]) => Router

Type declaration

    • <T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]): Router
    • Creates a new action that the bot will react to. Replaces the now deprecated registerAction

      Type parameters

      Parameters

      • trigger: string | RegExp | string[]
        @@ -16,9 +16,11 @@

        Action to perform on this command

      • Optional parameters: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]

        Parameters to be registered for slash command, defaults to [{name: "arguments", type: "STRING"}]

        -

      Returns Router

onDefault: (action: ActionObject | ResponseAction) => Router

Type declaration

onError: (action: ActionObject | ResponseAction) => Router

Type declaration

prefix: undefined | string
+

Returns Router

onDefault: (action: ActionObject | ResponseAction) => Router

Type declaration

onError: (action: ActionObject | ResponseAction) => Router

Type declaration

onTypo: (action: TypoAction, options?: TypoOptions) => Router

Type declaration

    • (action: TypoAction, options?: TypoOptions): Router
    • Parameters

      • action: TypoAction
        +

        Callback function to be called if similar commands are found

        +
      • Optional options: TypoOptions

      Returns Router

prefix: undefined | string

The prefix used by your bot

-
registerAction: <T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]) => Router

Type declaration

    • <T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]): Router
    • +
registerAction: <T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]) => Router

Type declaration

    • <T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]): Router
    • Creates a new action that the bot will react to. Replaces the now deprecated registerAction

      Type parameters

      Parameters

      • trigger: string | RegExp | string[]
        @@ -27,6 +29,6 @@

        Action to perform on this command

      • Optional parameters: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]

        Parameters to be registered for slash command, defaults to [{name: "arguments", type: "STRING"}]

        -

      Returns Router

router: Router
setDefaultAction: (action: ActionObject | ResponseAction) => Router

Type declaration

setErrorAction: (action: ActionObject | ResponseAction) => Router

Type declaration

suffix: undefined | string
+

Returns Router

router: Router
setDefaultAction: (action: ActionObject | ResponseAction) => Router

Type declaration

setErrorAction: (action: ActionObject | ResponseAction) => Router

Type declaration

suffix: undefined | string

The suffix used by your bot

-
token: string

Methods

  • createParams(msg: Message<boolean> | CommandInteraction<CacheType>, args: undefined | string, parameters: Record<string, string | number | boolean | User | GuildMember | Role | APIRole>, trigger: string): Promise<ActionParameters<undefined>>
  • Parameters

    • msg: Message<boolean> | CommandInteraction<CacheType>
    • args: undefined | string
    • parameters: Record<string, string | number | boolean | User | GuildMember | Role | APIRole>
    • trigger: string

    Returns Promise<ActionParameters<undefined>>

  • handleAction(params: ActionParameters<undefined>, routedAction: RoutedAction, invokerId?: undefined | string): Promise<void>
  • Parameters

    • params: ActionParameters<undefined>
    • routedAction: RoutedAction
    • invokerId: undefined | string = undefined

    Returns Promise<void>

  • interactionHandler(interaction: Interaction<CacheType>): Promise<void>
  • Parameters

    • interaction: Interaction<CacheType>

    Returns Promise<void>

  • messageHandler(msg: Message<boolean>): Promise<void>
  • Parameters

    • msg: Message<boolean>

    Returns Promise<void>

  • report(...stuff: any[]): void
  • Parameters

    • Rest ...stuff: any[]

    Returns void

  • setPresence(activities: [string, PresenceType] | [string, PresenceType][], interval?: number): void
  • Parameters

    • activities: [string, PresenceType] | [string, PresenceType][]
    • interval: number = ...

    Returns void

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +
token: string

Methods

  • createParams(msg: Message<boolean> | CommandInteraction<CacheType>, args: undefined | string, parameters: Record<string, undefined | string | number | boolean | User | GuildMember | Role | APIRole>, trigger: string): Promise<ActionParameters<undefined>>
  • Parameters

    • msg: Message<boolean> | CommandInteraction<CacheType>
    • args: undefined | string
    • parameters: Record<string, undefined | string | number | boolean | User | GuildMember | Role | APIRole>
    • trigger: string

    Returns Promise<ActionParameters<undefined>>

  • handleAction(params: ActionParameters<undefined>, routedAction: RoutedAction, invokerId?: undefined | string): Promise<void>
  • Parameters

    • params: ActionParameters<undefined>
    • routedAction: RoutedAction
    • invokerId: undefined | string = undefined

    Returns Promise<void>

  • interactionHandler(interaction: Interaction<CacheType>): Promise<void>
  • Parameters

    • interaction: Interaction<CacheType>

    Returns Promise<void>

  • messageHandler(msg: Message<boolean>): Promise<void>
  • Parameters

    • msg: Message<boolean>

    Returns Promise<void>

  • report(...stuff: any[]): void
  • Parameters

    • Rest ...stuff: any[]

    Returns void

  • setPresence(activities: [string, PresenceType] | [string, PresenceType][], interval?: number): void
  • Parameters

    • activities: [string, PresenceType] | [string, PresenceType][]
    • interval: number = ...

    Returns void

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/classes/Embed.html b/docs/classes/Embed.html index 84ca385..32b4a6f 100644 --- a/docs/classes/Embed.html +++ b/docs/classes/Embed.html @@ -1 +1 @@ -Embed | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Embed

Hierarchy

  • Embed

Index

Constructors

  • new Embed(options: EmbedSettings): Embed

Properties

author: undefined | User
color: ColorResolvable
descTransform: (desc: string) => string

Type declaration

    • (desc: string): string
    • Parameters

      • desc: string

      Returns string

images: {} = {}

Type declaration

  • [name: string]: string
refTransform: (user: User) => [string, undefined | string]

Type declaration

    • (user: User): [string, undefined | string]
    • Parameters

      • user: User

      Returns [string, undefined | string]

Methods

  • create(options: EmbedOptions | EmbedOptions[]): MessageOptions
  • Parameters

    • options: EmbedOptions | EmbedOptions[]

    Returns MessageOptions

  • createSingularEmbed(options: EmbedOptions): MessageOptions
  • Parameters

    • options: EmbedOptions

    Returns MessageOptions

  • registerImage(name: string, url: string): string
  • Parameters

    • name: string
    • url: string

    Returns string

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +Embed | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Embed

Hierarchy

  • Embed

Index

Constructors

  • new Embed(options: EmbedSettings): Embed

Properties

author: undefined | User
color: ColorResolvable
descTransform: (desc: string) => string

Type declaration

    • (desc: string): string
    • Parameters

      • desc: string

      Returns string

images: {} = {}

Type declaration

  • [name: string]: string
refTransform: (user: User) => [string, undefined | string]

Type declaration

    • (user: User): [string, undefined | string]
    • Parameters

      • user: User

      Returns [string, undefined | string]

Methods

  • create(options: EmbedOptions | EmbedOptions[]): MessageOptions
  • Parameters

    • options: EmbedOptions | EmbedOptions[]

    Returns MessageOptions

  • createSingularEmbed(options: EmbedOptions): MessageOptions
  • Parameters

    • options: EmbedOptions

    Returns MessageOptions

  • registerImage(name: string, url: string): string
  • Parameters

    • name: string
    • url: string

    Returns string

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/classes/Router.html b/docs/classes/Router.html index 1e7b9e0..c3965a5 100644 --- a/docs/classes/Router.html +++ b/docs/classes/Router.html @@ -1,5 +1,5 @@ -Router | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Router

Hierarchy

  • Router

Index

Constructors

Properties

_bot: Bot
errorAction: ActionObject
handler: CommandsHandler = ...
options: RouterOptions
parent: undefined | Router = undefined
trigger: undefined | string = undefined

Methods

  • compileAll(nesting?: number): CommandCollection
  • Parameters

    • nesting: number = 0

    Returns CommandCollection

  • findAction(content: string): undefined | RoutedAction
  • Parameters

    • content: string

    Returns undefined | RoutedAction

  • isGlobal(): boolean
  • on<T>(trigger: string | RegExp | string[], action: T, parameters?: T extends Router ? never : undefined | { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]): Router

Returns Router

  • onTypo(action: TypoAction, options?: TypoOptions): Router
  • Parameters

    • action: TypoAction
    • Optional options: TypoOptions

    Returns Router

  • padAction(action: Router): Router
  • padAction(action: ActionObject | ResponseAction, parameters?: { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]): ActionObject
  • Parameters

    Returns Router

  • Parameters

    • action: ActionObject | ResponseAction
    • Optional parameters: { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]

    Returns ActionObject

  • removeAction(trigger: string | RegExp | string[]): undefined | string | RegExp
  • Parameters

    • trigger: string | RegExp | string[]

    Returns undefined | string | RegExp

  • report(...stuff: any[]): void
  • Parameters

    • Rest ...stuff: any[]

    Returns void

  • turnArrayToRegex(trigger: string[]): RegExp
  • Parameters

    • trigger: string[]

    Returns RegExp

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 25c197b..fba816f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,6 +2,7 @@

Discord.js - DIY

+

npm

Easy to use, do-it-yourself Discord.js mini-framework

You can find the full reference wiki here.

@@ -60,6 +61,31 @@

Using embeds

const embed = new Embed({
author: bot.user,
});
const bot = new Bot("<token>", { prefix: "!", embed });
bot.registerAction("test", ({ args, createEmbed }) =>
createEmbed({ desc: args })
);
+ +

Handling typos

+
+

Your users can be overwhelmed and confused by your bot's syntax. To aid them in the process, djs-diy offers a way to immediately point out which options they might have meant to type instead.

+
const bot = new Bot("<token>", { prefix: "!", embed });
bot.on("test", "hi there!");
bot.onTypo(
({ author }, [first, ...rest]) =>
`Hey there, ${
author.username
}! Did you mean to type !${first}? Other options: ${rest.join(", ")}`
); +
+

Bot#onTypo can set a callback for an scenario where an user types "tsst" or something similar as any other trigger. +Should be noted that onTypo is available router-wise and will always attempt to fetch a callback from any parent router (incluiding the Bot object's)

+

onTypo can take a second argument in the form of an object

+
{
maxDistance: number
maxSuggestions: number
} +
+

maxDistance: Maximum Levenshtein distance allowed +maxSuggestions: Max amount of suggestions to be provided to the callback

+ + +

Routing

+
+

Sometimes you may want a command to contain a subcommand. This is where routers come in. To use them, create a new Router object then assign commands to it. Finally assign it as an action in your main Bot object. Don't worry about the constructor parameters, they'll be filled in for you.

+
const bot = new Bot("<token>", { prefix: "!" });

const helpRouter = new Router();
helpRouter.on("info", "lorem ipsum");

bot.on("help", helpRouter);
//Bot will now respond to `!help info` with "lorem ipsum" +
+

Routers have their own error handling too.

+
helpRouter.onError("Oh no!");
//if any of the commands under help router fail, "Oh no!" will be sent instead +
+

Routers also have full support for slash commands.

+

Expecting replies

diff --git a/docs/interfaces/ActionObject.html b/docs/interfaces/ActionObject.html index 5eff42d..57cf372 100644 --- a/docs/interfaces/ActionObject.html +++ b/docs/interfaces/ActionObject.html @@ -1,5 +1,5 @@ -ActionObject | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface ActionObject

Hierarchy

  • ActionObject

Index

Properties

description?: string
+ActionObject | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface ActionObject

Hierarchy

  • ActionObject

Index

Properties

description?: string

Description of the command

-
onError?: ActionObject
parameters?: { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]
+
onError?: ActionObject
parameters?: { description?: string; name: string; type?: "SUB_COMMAND" | "SUB_COMMAND_GROUP" | "STRING" | "INTEGER" | "BOOLEAN" | "USER" | "CHANNEL" | "ROLE" | "MENTIONABLE" | "NUMBER" }[]

The slash command parameters to be generated, defaults to a string parameter called "Arguments"

-
reaction?: ReactionAction
response?: ResponseAction

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +
reaction?: ReactionAction
response?: ResponseAction

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/ActionParameters.html b/docs/interfaces/ActionParameters.html index e491756..2da7f9a 100644 --- a/docs/interfaces/ActionParameters.html +++ b/docs/interfaces/ActionParameters.html @@ -1,35 +1,35 @@ ActionParameters | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface ActionParameters<MW>

Object passed to the action functions on every trigger

-

Type parameters

  • MW: GenericObject | undefined = undefined

Hierarchy

  • ActionParameters

Index

Properties

__asyncJobs: { doAfter: (params: Omit<ActionParameters<undefined>, "msg"> & { msg: Message<boolean> }) => void | Promise<void> }[]
+

Type parameters

  • MW: GenericObject | undefined = undefined

Hierarchy

  • ActionParameters

Index

Properties

__asyncJobs: { doAfter: (params: Omit<ActionParameters<undefined>, "msg"> & { msg: Message<boolean> }) => void | Promise<void> }[]

Internal, used for asyncEffect

-
args?: string
+
args?: string

Arguments from the command executed, undefined for slash commands unless no parameter definition was provided

-
author: User
+
author: User

The user who triggered the action

-
channel?: TextBasedChannel
+
channel?: TextBasedChannel

The channel this command will be sent in

-
createEmbed: (options: EmbedOptions | EmbedOptions[]) => MessageOptions

Type declaration

    • (options: EmbedOptions | EmbedOptions[]): MessageOptions
    • +
createEmbed: (options: EmbedOptions | EmbedOptions[]) => MessageOptions

Type declaration

    • (options: EmbedOptions | EmbedOptions[]): MessageOptions
    • Creates an embed object using the embed.create method of the embed object passed into the Bot

      -

      Parameters

      • options: EmbedOptions | EmbedOptions[]

      Returns MessageOptions

error?: any
+

Parameters

  • options: EmbedOptions | EmbedOptions[]

Returns MessageOptions

error?: any

[Only used for onError actions] Contains the full error obtained from the catch

-
guild?: Guild
+
guild?: Guild

The server

-
middleware?: MW
msg: Message<boolean> | Interaction<CacheType>
+
middleware?: MW
msg: Message<boolean> | Interaction<CacheType>

Message that triggered this action

-
parameters: Record<string, string | number | boolean | User | GuildMember | Role | APIRole>
+
parameters: Record<string, undefined | string | number | boolean | User | GuildMember | Role | APIRole>

Parameters from the slash command Will contain a property "arguments" for legacy commands and slash commands without parameter definition

-
trigger: string
+
trigger: string

Keyword used to trigger the command

-

Methods

  • asyncEffect(doAfter: (params: Omit<ActionParameters<undefined>, "msg"> & { msg: Message<boolean> }) => void | Promise<void>): void

Methods

  • asyncEffect(doAfter: (params: Omit<ActionParameters<undefined>, "msg"> & { msg: Message<boolean> }) => void | Promise<void>): void
  • Creates a minijob that will be run once a response is created

    This does nothing if an action has no response

    -

    Parameters

    • doAfter: (params: Omit<ActionParameters<undefined>, "msg"> & { msg: Message<boolean> }) => void | Promise<void>
        • (params: Omit<ActionParameters<undefined>, "msg"> & { msg: Message<boolean> }): void | Promise<void>
        • Parameters

          Returns void | Promise<void>

    Returns void

  • +

    Parameters

    • doAfter: (params: Omit<ActionParameters<undefined>, "msg"> & { msg: Message<boolean> }) => void | Promise<void>
        • (params: Omit<ActionParameters<undefined>, "msg"> & { msg: Message<boolean> }): void | Promise<void>
        • Parameters

          Returns void | Promise<void>

    Returns void

  • Sends a DM to the author of the message, resolves to undefined if an error occurs

    -

    Parameters

    Returns Promise<undefined | Message<boolean>>

  • expectReply(msg: SendableMessage, remove?: boolean): Promise<undefined | Message<boolean>>
  • expectReply(msg: SendableMessage, remove?: boolean): Promise<undefined | Message<boolean>>
  • Used for multiple step commands, the first argument is a SendableMessage that will be sent to the channel the second optional argument defines if the message should be deleted after receiving a reply/failing resolves to undefined if an error occurs

    -

    Parameters

    Returns Promise<undefined | Message<boolean>>

  • subscribe(componentOptions: NonNullableObject<Omit<MessageButtonOptions, "customId">>[] | Partial<MessageButtonOptions> | Partial<MessageSelectMenuOptions>, action: (params: ActionParameters<undefined>, interaction: ButtonInteraction<CacheType> | SelectMenuInteraction<CacheType>, value: string | number) => undefined | SendableMessage, idle?: number, expectFromUserIds?: string[]): MessageActionRow
  • Parameters

    • componentOptions: NonNullableObject<Omit<MessageButtonOptions, "customId">>[] | Partial<MessageButtonOptions> | Partial<MessageSelectMenuOptions>
    • action: (params: ActionParameters<undefined>, interaction: ButtonInteraction<CacheType> | SelectMenuInteraction<CacheType>, value: string | number) => undefined | SendableMessage
        • (params: ActionParameters<undefined>, interaction: ButtonInteraction<CacheType> | SelectMenuInteraction<CacheType>, value: string | number): undefined | SendableMessage
        • Parameters

          • params: ActionParameters<undefined>
          • interaction: ButtonInteraction<CacheType> | SelectMenuInteraction<CacheType>
          • value: string | number

          Returns undefined | SendableMessage

    • Optional idle: number
    • Optional expectFromUserIds: string[]

    Returns MessageActionRow

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +

Parameters

Returns Promise<undefined | Message<boolean>>

  • subscribe(componentOptions: NonNullableObject<Omit<MessageButtonOptions, "customId">>[] | Partial<MessageButtonOptions> | Partial<MessageSelectMenuOptions>, action: (params: ActionParameters<undefined>, interaction: ButtonInteraction<CacheType> | SelectMenuInteraction<CacheType>, value: string | number) => undefined | SendableMessage, idle?: number, expectFromUserIds?: string[]): MessageActionRow
  • Parameters

    • componentOptions: NonNullableObject<Omit<MessageButtonOptions, "customId">>[] | Partial<MessageButtonOptions> | Partial<MessageSelectMenuOptions>
    • action: (params: ActionParameters<undefined>, interaction: ButtonInteraction<CacheType> | SelectMenuInteraction<CacheType>, value: string | number) => undefined | SendableMessage
        • (params: ActionParameters<undefined>, interaction: ButtonInteraction<CacheType> | SelectMenuInteraction<CacheType>, value: string | number): undefined | SendableMessage
        • Parameters

          • params: ActionParameters<undefined>
          • interaction: ButtonInteraction<CacheType> | SelectMenuInteraction<CacheType>
          • value: string | number

          Returns undefined | SendableMessage

    • Optional idle: number
    • Optional expectFromUserIds: string[]

    Returns MessageActionRow

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/SessionConfig.html b/docs/interfaces/SessionConfig.html index a6d3360..9844e66 100644 --- a/docs/interfaces/SessionConfig.html +++ b/docs/interfaces/SessionConfig.html @@ -1,5 +1,5 @@ -SessionConfig | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface SessionConfig

Hierarchy

  • SessionConfig

Index

Properties

cacheLength?: number
cacheTimeout?: number
+SessionConfig | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface SessionConfig

Hierarchy

  • SessionConfig

Index

Properties

cacheLength?: number
cacheTimeout?: number

Timeout for the internal cache in seconds, setting it to 0 disables the cache

-
uri: string
+
uri: string

MongoDB connection string

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/SessionMW.html b/docs/interfaces/SessionMW.html index e228abd..044b8ef 100644 --- a/docs/interfaces/SessionMW.html +++ b/docs/interfaces/SessionMW.html @@ -1 +1 @@ -SessionMW | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface SessionMW

Hierarchy

  • SessionMW

Index

Properties

Properties

session: ProtoSession & { getFromServer: any; getFromUser: any; getGlobal: any; set: any; setForServer: any; setForUser: any; setGlobal: any }

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +SessionMW | discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface SessionMW

Hierarchy

  • SessionMW

Index

Properties

Properties

session: ProtoSession & { getFromServer: any; getFromUser: any; getGlobal: any; set: any; setForServer: any; setForUser: any; setGlobal: any }

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/modules.html b/docs/modules.html index 1d85371..49e184e 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1,4 +1,4 @@ -discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

discordjs-diy

Index

Type aliases

Action: ActionObject | ResponseAction | Router
+discordjs-diy
Options
All
  • Public
  • Public/Protected
  • All
Menu

discordjs-diy

Index

Type aliases

Action: ActionObject | ResponseAction | Router

The action your bot will be executing on every trigger It can be:

    @@ -13,4 +13,4 @@

Returning undefined for slash commands will result in an error Note that it can be undefined or a function that returns undefined, but this will simply be ignored

-
ParametersMiddleWare<T>: (params: ActionParameters) => Promise<ActionParameters<T>> | ActionParameters<T>

Type parameters

  • T: GenericObject | undefined = undefined

Type declaration

SendableEmoji: EmojiResolvable | Promise<EmojiResolvable | string> | string | undefined
SendableMessage: string | MessagePayload | MessageOptions | Promise<string | MessagePayload | MessageOptions>

Functions

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +
ParametersMiddleWare<T>: (params: ActionParameters) => Promise<ActionParameters<T>> | ActionParameters<T>

Type parameters

  • T: GenericObject | undefined = undefined

Type declaration

SendableEmoji: EmojiResolvable | Promise<EmojiResolvable | string> | string | undefined
SendableMessage: string | MessagePayload | MessageOptions | Promise<string | MessagePayload | MessageOptions>

Functions

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/package.json b/package.json index 58d45a0..d33db83 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "discordjs-diy", - "version": "1.3.1", + "version": "1.4.0", "main": "./dist/index.js", "license": "MIT", "dependencies": {