From b5793611d57a734d75b6a0845c441f33d144a5c0 Mon Sep 17 00:00:00 2001 From: IRONM00N <64110067+IRONM00N@users.noreply.github.com> Date: Wed, 4 Aug 2021 19:32:39 -0400 Subject: misc --- src/lib/extensions/discord-akairo/BushClient.ts | 14 +++++----- .../extensions/discord-akairo/BushClientUtil.ts | 31 +++++++++++++--------- 2 files changed, 26 insertions(+), 19 deletions(-) (limited to 'src/lib/extensions/discord-akairo') diff --git a/src/lib/extensions/discord-akairo/BushClient.ts b/src/lib/extensions/discord-akairo/BushClient.ts index 4c2b940..8de630f 100644 --- a/src/lib/extensions/discord-akairo/BushClient.ts +++ b/src/lib/extensions/discord-akairo/BushClient.ts @@ -9,6 +9,7 @@ import { MessageEditOptions, MessageOptions, MessagePayload, + PartialDMChannel, ReplyMessageOptions, Snowflake, Structures, @@ -83,6 +84,7 @@ export type BushThreadChannelResolvable = BushThreadChannel | Snowflake; export type BushApplicationCommandResolvable = BushApplicationCommand | Snowflake; export type BushGuildTextChannelResolvable = BushTextChannel | BushNewsChannel | Snowflake; export type BushChannelResolvable = BushChannel | Snowflake; +export type BushTextBasedChannels = PartialDMChannel | BushDMChannel | BushTextChannel | BushNewsChannel | BushThreadChannel; export interface BushFetchedThreads { threads: Collection; hasMore?: boolean; @@ -96,7 +98,7 @@ const rl = readline.createInterface({ type If = T extends true ? A : T extends false ? B : A | B; -export class BushClient extends AkairoClient { +export class BushClient extends AkairoClient { public static preStart(): void { Structures.extend('GuildEmoji', () => BushGuildEmoji); Structures.extend('DMChannel', () => BushDMChannel); @@ -134,7 +136,7 @@ export class BushClient extends AkairoClient { public declare util: BushClientUtil; public declare ownerID: Snowflake[]; public db: Sequelize; - public logger: BushLogger; + public logger = BushLogger; public constants = BushConstants; public cache = BushCache; public constructor(config: Config) { @@ -156,7 +158,6 @@ export class BushClient extends AkairoClient { this.token = config.token; this.config = config; - // Create listener handler this.listenerHandler = new BushListenerHandler(this, { directory: path.join(__dirname, '..', '..', '..', 'listeners'), @@ -216,10 +217,9 @@ export class BushClient extends AkairoClient { port: this.config.db.port, logging: this.config.logging.db ? (sql) => this.logger.debug(sql) : false }); - this.logger = new BushLogger(this); } - get console(): BushLogger { + get console(): typeof BushLogger { return this.logger; } @@ -228,7 +228,7 @@ export class BushClient extends AkairoClient { } // Initialize everything - private async _init(): Promise { + async #init(): Promise { this.commandHandler.useListenerHandler(this.listenerHandler); this.commandHandler.useInhibitorHandler(this.inhibitorHandler); this.commandHandler.ignorePermissions = this.config.owners; @@ -296,7 +296,7 @@ export class BushClient extends AkairoClient { global.util = this.util; try { - await this._init(); + await this.#init(); await this.login(this.token); } catch (e) { await this.console.error('Start', chalk.red(e?.stack || e), false); diff --git a/src/lib/extensions/discord-akairo/BushClientUtil.ts b/src/lib/extensions/discord-akairo/BushClientUtil.ts index af64624..42d3d13 100644 --- a/src/lib/extensions/discord-akairo/BushClientUtil.ts +++ b/src/lib/extensions/discord-akairo/BushClientUtil.ts @@ -102,7 +102,7 @@ export class BushClientUtil extends ClientUtil { /** The client of this ClientUtil */ public declare readonly client: BushClient; /** The hastebin urls used to post to hastebin, attempts to post in order */ - public hasteURLs: string[] = [ + #hasteURLs: string[] = [ 'https://hst.sh', 'https://hasteb.in', 'https://hastebin.com', @@ -112,7 +112,7 @@ export class BushClientUtil extends ClientUtil { 'https://haste.unbelievaboat.com', 'https://haste.tyman.tech' ]; - public paginateEmojis = { + #paginateEmojis = { beginning: '853667381335162910', back: '853667410203770881', stop: '853667471110570034', @@ -121,7 +121,7 @@ export class BushClientUtil extends ClientUtil { }; /** A simple promise exec method */ - private exec = promisify(exec); + #exec = promisify(exec); /** * Creates this client util @@ -158,7 +158,7 @@ export class BushClientUtil extends ClientUtil { stdout: string; stderr: string; }> { - return await this.exec(command); + return await this.#exec(command); } /** @@ -167,7 +167,7 @@ export class BushClientUtil extends ClientUtil { * @returns The url of the posted text */ public async haste(content: string): Promise { - for (const url of this.hasteURLs) { + for (const url of this.#hasteURLs) { try { const res: hastebinRes = await got.post(`${url}/documents`, { body: content }).json(); return `${url}/${res.key}`; @@ -301,7 +301,7 @@ export class BushClientUtil extends ClientUtil { text: string | null = null, deleteOnExit?: boolean ): Promise { - const paginateEmojis = this.paginateEmojis; + const paginateEmojis = this.#paginateEmojis; if (deleteOnExit === undefined) deleteOnExit = true; if (embeds.length === 1) { @@ -407,7 +407,7 @@ export class BushClientUtil extends ClientUtil { /** Sends a message with a button for the user to delete it. */ public async sendWithDeleteButton(message: BushMessage | BushSlashMessage, options: MessageOptions): Promise { - const paginateEmojis = this.paginateEmojis; + const paginateEmojis = this.#paginateEmojis; updateOptions(); const msg = await message.util.reply(options as MessageOptions & { split?: false }); const filter = (interaction: ButtonInteraction) => interaction.customId == 'paginate__stop' && interaction.message == msg; @@ -465,7 +465,7 @@ export class BushClientUtil extends ClientUtil { return tildes + language + '\n' + code2 + '\n' + tildes + (hasteOut.length ? '\n' + hasteOut : ''); } - private mapCredential(old: string) { + #mapCredential(old: string): string { const mapping = { ['token']: 'Main Token', ['devToken']: 'Dev Token', @@ -481,7 +481,7 @@ export class BushClientUtil extends ClientUtil { public redact(text: string) { for (const credentialName in client.config.credentials) { const credential = client.config.credentials[credentialName]; - const replacement = this.mapCredential(credentialName); + const replacement = this.#mapCredential(credentialName); const escapeRegex = /[.*+?^${}()|[\]\\]/g; text = text.replace(new RegExp(credential.toString().replace(escapeRegex, '\\$&'), 'g'), `[${replacement} Omitted]`); text = text.replace( @@ -702,7 +702,7 @@ export class BushClientUtil extends ClientUtil { const expires = options.duration ? new Date(new Date().getTime() + options.duration) : null; const user = client.users.resolveId(options.user); const guild = client.guilds.resolveId(options.guild); - const type = this.findTypeEnum(options.type); + const type = this.#findTypeEnum(options.type); const entry = options.extraInfo ? ActivePunishment.build({ user, type, guild, expires, modlog: options.modlog, extraInfo: options.extraInfo }) @@ -720,7 +720,7 @@ export class BushClientUtil extends ClientUtil { }): Promise { const user = client.users.resolveId(options.user); const guild = client.guilds.resolveId(options.guild); - const type = this.findTypeEnum(options.type); + const type = this.#findTypeEnum(options.type); let success = true; @@ -743,7 +743,7 @@ export class BushClientUtil extends ClientUtil { return success; } - private findTypeEnum(type: 'mute' | 'ban' | 'role' | 'block') { + #findTypeEnum(type: 'mute' | 'ban' | 'role' | 'block') { const typeMap = { ['mute']: ActivePunishmentType.MUTE, ['ban']: ActivePunishmentType.BAN, @@ -915,4 +915,11 @@ export class BushClientUtil extends ClientUtil { return Argument.withInput(type); } })(); + + /** + * Wait an amount in seconds. + */ + public async sleep(s: number): Promise { + return new Promise((resolve) => setTimeout(resolve, s * 1000)); + } } -- cgit