aboutsummaryrefslogtreecommitdiff
path: root/src/lib/extensions/discord-akairo
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2021-11-22 19:01:46 -0500
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2021-11-22 19:01:46 -0500
commitfce1fc87feb3e6dad1a956d757d856833c9ea5f6 (patch)
tree723ca41af60df525b89c6ff5b4e9574f78235734 /src/lib/extensions/discord-akairo
parent23bf2485fe17472f17bd0ee0af6b22973e317550 (diff)
downloadtanzanite-fce1fc87feb3e6dad1a956d757d856833c9ea5f6.tar.gz
tanzanite-fce1fc87feb3e6dad1a956d757d856833c9ea5f6.tar.bz2
tanzanite-fce1fc87feb3e6dad1a956d757d856833c9ea5f6.zip
update contributors, fix formatting, added a bunch of repo forks
Diffstat (limited to 'src/lib/extensions/discord-akairo')
-rw-r--r--src/lib/extensions/discord-akairo/BushClient.ts26
-rw-r--r--src/lib/extensions/discord-akairo/BushClientUtil.ts36
-rw-r--r--src/lib/extensions/discord-akairo/BushCommand.ts12
3 files changed, 38 insertions, 36 deletions
diff --git a/src/lib/extensions/discord-akairo/BushClient.ts b/src/lib/extensions/discord-akairo/BushClient.ts
index 93ed9d7..59aea26 100644
--- a/src/lib/extensions/discord-akairo/BushClient.ts
+++ b/src/lib/extensions/discord-akairo/BushClient.ts
@@ -10,6 +10,7 @@ import type {
BushUserManager,
Config
} from '#lib';
+import { patch, type PatchedElements } from '@notenoughupdates/events-intercept';
import * as Sentry from '@sentry/node';
import { AkairoClient, ContextMenuCommandHandler, version as akairoVersion } from 'discord-akairo';
import {
@@ -18,7 +19,9 @@ import {
Structures,
version as discordJsVersion,
type Awaitable,
- type Collection, type DMChannel, type InteractionReplyOptions,
+ type Collection,
+ type DMChannel,
+ type InteractionReplyOptions,
type Message,
type MessageEditOptions,
type MessageOptions,
@@ -28,8 +31,6 @@ import {
type Snowflake,
type WebhookEditMessageOptions
} from 'discord.js';
-//@ts-ignore: no typings
-import eventsIntercept from 'events-intercept';
import path from 'path';
import readline from 'readline';
import type { Sequelize as SequelizeType } from 'sequelize';
@@ -92,7 +93,7 @@ export type BushThreadMemberResolvable = BushThreadMember | BushUserResolvable;
export type BushUserResolvable = BushUser | Snowflake | BushMessage | BushGuildMember | BushThreadMember;
export type BushGuildMemberResolvable = BushGuildMember | BushUserResolvable;
export type BushRoleResolvable = BushRole | Snowflake;
-export type BushMessageResolvable = Message| BushMessage | Snowflake;
+export type BushMessageResolvable = Message | BushMessage | Snowflake;
export type BushEmojiResolvable = Snowflake | BushGuildEmoji | BushReactionEmoji;
export type BushEmojiIdentifierResolvable = string | BushEmojiResolvable;
export type BushThreadChannelResolvable = BushThreadChannel | Snowflake;
@@ -157,6 +158,7 @@ export class BushClient<Ready extends boolean = boolean> extends AkairoClient<Re
makeCache: Options.cacheWithLimits({}),
failIfNotExists: false
});
+ patch(this);
this.token = config.token as If<Ready, string, string | null>;
this.config = config;
@@ -344,8 +346,6 @@ export class BushClient<Ready extends boolean = boolean> extends AkairoClient<Re
* Starts the bot
*/
public async start() {
- eventsIntercept.patch(this);
- //@ts-expect-error: no typings
this.intercept('ready', async (arg, done) => {
await this.guilds.fetch();
const promises = this.guilds.cache.map((guild) => {
@@ -386,23 +386,21 @@ export class BushClient<Ready extends boolean = boolean> extends AkairoClient<Re
const userID = this.users.resolveId(user)!;
return !!client.cache?.global?.superUsers?.includes(userID) || this.config.owners.includes(userID);
}
-
-
}
-export interface BushClient {
+export interface BushClient extends PatchedElements {
on<K extends keyof BushClientEvents>(event: K, listener: (...args: BushClientEvents[K]) => Awaitable<void>): this;
- on<S extends string | symbol>(event: Exclude<S, keyof BushClientEvents>, listener: (...args: any[]) => Awaitable<void>): this
+ on<S extends string | symbol>(event: Exclude<S, keyof BushClientEvents>, listener: (...args: any[]) => Awaitable<void>): this;
once<K extends keyof BushClientEvents>(event: K, listener: (...args: BushClientEvents[K]) => Awaitable<void>): this;
- once<S extends string | symbol>(event: Exclude<S, keyof BushClientEvents>, listener: (...args: any[]) => Awaitable<void>): this
+ once<S extends string | symbol>(event: Exclude<S, keyof BushClientEvents>, listener: (...args: any[]) => Awaitable<void>): this;
emit<K extends keyof BushClientEvents>(event: K, ...args: BushClientEvents[K]): boolean;
- emit<S extends string | symbol>(event: Exclude<S, keyof BushClientEvents>, ...args: unknown[]): boolean
+ emit<S extends string | symbol>(event: Exclude<S, keyof BushClientEvents>, ...args: unknown[]): boolean;
off<K extends keyof BushClientEvents>(event: K, listener: (...args: BushClientEvents[K]) => Awaitable<void>): this;
- off<S extends string | symbol>(event: Exclude<S, keyof BushClientEvents>, listener: (...args: any[]) => Awaitable<void>): this
+ off<S extends string | symbol>(event: Exclude<S, keyof BushClientEvents>, listener: (...args: any[]) => Awaitable<void>): this;
removeAllListeners<K extends keyof BushClientEvents>(event?: K): this;
- removeAllListeners<S extends string | symbol>(event?: Exclude<S, keyof BushClientEvents>): this
+ removeAllListeners<S extends string | symbol>(event?: Exclude<S, keyof BushClientEvents>): this;
}
diff --git a/src/lib/extensions/discord-akairo/BushClientUtil.ts b/src/lib/extensions/discord-akairo/BushClientUtil.ts
index f21d104..8f1e67a 100644
--- a/src/lib/extensions/discord-akairo/BushClientUtil.ts
+++ b/src/lib/extensions/discord-akairo/BushClientUtil.ts
@@ -16,6 +16,7 @@ import {
type Pronoun,
type PronounCode
} from '#lib';
+import { humanizeDuration } from '@notenoughupdates/humanize-duration';
import { exec } from 'child_process';
import { ClientUtil, Util as AkairoUtil } from 'discord-akairo';
import { APIMessage } from 'discord-api-types';
@@ -40,7 +41,6 @@ import moment from 'moment';
import { inspect, promisify } from 'util';
import CommandErrorListener from '../../../listeners/commands/commandError.js';
import { Format } from '../../common/Format.js';
-const { default: humanizeDuration } = await import ('humanize-duration')
export class BushClientUtil extends ClientUtil {
/**
@@ -255,11 +255,11 @@ export class BushClientUtil extends ClientUtil {
* @param options - The options you would like to use to inspect the object
*/
public inspect(object: any, options?: BushInspectOptions): string {
- const optionsWithDefaults = this.getDefaultInspectOptions(options)
+ const optionsWithDefaults = this.getDefaultInspectOptions(options);
return inspect(object, optionsWithDefaults);
}
- private getDefaultInspectOptions(options?:BushInspectOptions): BushInspectOptions {
+ private getDefaultInspectOptions(options?: BushInspectOptions): BushInspectOptions {
const {
showHidden = false,
depth = 2,
@@ -274,18 +274,18 @@ export class BushClientUtil extends ClientUtil {
getters = true
} = options ?? {};
return {
- showHidden,
- depth,
- colors,
- customInspect,
- showProxy,
- maxArrayLength,
- maxStringLength,
- breakLength,
- compact,
- sorted,
+ showHidden,
+ depth,
+ colors,
+ customInspect,
+ showProxy,
+ maxArrayLength,
+ maxStringLength,
+ breakLength,
+ compact,
+ sorted,
getters
- }
+ };
}
#mapCredential(old: string): string {
@@ -331,9 +331,7 @@ export class BushClientUtil extends ClientUtil {
length = 1024
) {
input =
- !inspectOptions?.inspectStrings && typeof input === 'string'
- ? input
- : this.inspect(input, inspectOptions ?? undefined);
+ !inspectOptions?.inspectStrings && typeof input === 'string' ? input : this.inspect(input, inspectOptions ?? undefined);
if (inspectOptions) inspectOptions.inspectStrings = undefined;
input = this.discord.cleanCodeBlockContent(input);
input = this.redact(input);
@@ -449,8 +447,8 @@ export class BushClientUtil extends ClientUtil {
}
public humanizeDuration(duration: number, largest?: number): string {
- if (largest) return humanizeDuration(duration, { language: 'en', maxDecimalPoints: 2, largest });
- else return humanizeDuration(duration, { language: 'en', maxDecimalPoints: 2 });
+ if (largest) return humanizeDuration(duration, { language: 'en', maxDecimalPoints: 2, largest })!;
+ else return humanizeDuration(duration, { language: 'en', maxDecimalPoints: 2 })!;
}
public timestampDuration(duration: number): string {
diff --git a/src/lib/extensions/discord-akairo/BushCommand.ts b/src/lib/extensions/discord-akairo/BushCommand.ts
index 03f6606..11f5ee3 100644
--- a/src/lib/extensions/discord-akairo/BushCommand.ts
+++ b/src/lib/extensions/discord-akairo/BushCommand.ts
@@ -1,10 +1,16 @@
import { type BushClient, type BushCommandHandler, type BushMessage, type BushSlashMessage } from '#lib';
-import { Command, type ArgumentOptions, type ArgumentPromptOptions, type ArgumentTypeCaster, type CommandOptions } from 'discord-akairo';
+import {
+ Command,
+ type ArgumentOptions,
+ type ArgumentPromptOptions,
+ type ArgumentTypeCaster,
+ type CommandOptions
+} from 'discord-akairo';
import { BaseArgumentType } from 'discord-akairo/dist/src/struct/commands/arguments/Argument';
import { type PermissionResolvable, type Snowflake } from 'discord.js';
-export type BaseBushArgumentType =
- | BaseArgumentType
+export type BaseBushArgumentType =
+ | BaseArgumentType
| 'duration'
| 'contentWithDuration'
| 'permission'