diff options
Diffstat (limited to 'src/lib/extensions')
57 files changed, 357 insertions, 414 deletions
diff --git a/src/lib/extensions/discord-akairo/BushArgumentTypeCaster.ts b/src/lib/extensions/discord-akairo/BushArgumentTypeCaster.ts index 42d989c..c07644c 100644 --- a/src/lib/extensions/discord-akairo/BushArgumentTypeCaster.ts +++ b/src/lib/extensions/discord-akairo/BushArgumentTypeCaster.ts @@ -1,3 +1,3 @@ -import { BushMessage } from '../discord.js/BushMessage'; +import { type BushMessage } from '@lib'; export type BushArgumentTypeCaster = (message: BushMessage, phrase: string) => any; diff --git a/src/lib/extensions/discord-akairo/BushClient.ts b/src/lib/extensions/discord-akairo/BushClient.ts index c5d05b7..8f7533c 100644 --- a/src/lib/extensions/discord-akairo/BushClient.ts +++ b/src/lib/extensions/discord-akairo/BushClient.ts @@ -1,21 +1,20 @@ import * as Sentry from '@sentry/node'; import { AkairoClient, ContextMenuCommandHandler, version as akairoVersion } from 'discord-akairo'; import { - Awaitable, - Collection, - Intents, - InteractionReplyOptions, - Message, - MessageEditOptions, - MessageOptions, - MessagePayload, - Options, - PartialDMChannel, - ReplyMessageOptions, - Snowflake, - Structures, - version as discordJsVersion, - WebhookEditMessageOptions + DMChannel, + Intents, Options, + Structures, version as discordJsVersion, + type Awaitable, + type Collection, + type InteractionReplyOptions, + type Message, + type MessageEditOptions, + type MessageOptions, + type MessagePayload, + type PartialDMChannel, + type ReplyMessageOptions, + type Snowflake, + type WebhookEditMessageOptions } from 'discord.js'; //@ts-ignore: no typings import eventsIntercept from 'events-intercept'; @@ -89,7 +88,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 = BushMessage | Snowflake; +export type BushMessageResolvable = Message| BushMessage | Snowflake; export type BushEmojiResolvable = Snowflake | BushGuildEmoji | BushReactionEmoji; export type BushEmojiIdentifierResolvable = string | BushEmojiResolvable; export type BushThreadChannelResolvable = BushThreadChannel | Snowflake; @@ -97,7 +96,7 @@ export type BushApplicationCommandResolvable = BushApplicationCommand | Snowflak export type BushGuildTextChannelResolvable = BushTextChannel | BushNewsChannel | Snowflake; export type BushChannelResolvable = BushChannel | Snowflake; export type BushTextBasedChannels = PartialDMChannel | BushDMChannel | BushTextChannel | BushNewsChannel | BushThreadChannel; -export type BushGuildTextBasedChannel = Exclude<BushTextBasedChannels, PartialDMChannel | BushDMChannel>; +export type BushGuildTextBasedChannel = Exclude<BushTextBasedChannels, PartialDMChannel | BushDMChannel | DMChannel>; export interface BushFetchedThreads { threads: Collection<Snowflake, BushThreadChannel>; hasMore?: boolean; diff --git a/src/lib/extensions/discord-akairo/BushClientUtil.ts b/src/lib/extensions/discord-akairo/BushClientUtil.ts index 32081ed..4507458 100644 --- a/src/lib/extensions/discord-akairo/BushClientUtil.ts +++ b/src/lib/extensions/discord-akairo/BushClientUtil.ts @@ -1,31 +1,32 @@ import { - BushCache, - BushClient, + Arg, BushConstants, - BushMessage, - BushSlashMessage, - BushUser, Global, - Pronoun, - PronounCode + type BushCache, + type BushClient, + type BushMessage, + type BushSlashMessage, + type BushUser, + type Pronoun, + type PronounCode } from '@lib'; import { exec } from 'child_process'; import { ClientUtil, Util as AkairoUtil } from 'discord-akairo'; import { APIMessage } from 'discord-api-types'; import { - ColorResolvable, - CommandInteraction, GuildMember, - InteractionReplyOptions, Message, MessageEmbed, - PermissionResolvable, - Snowflake, - TextChannel, ThreadMember, User, - UserResolvable, - Util as DiscordUtil + Util as DiscordUtil, + type ColorResolvable, + type CommandInteraction, + type InteractionReplyOptions, + type PermissionResolvable, + type Snowflake, + type TextChannel, + type UserResolvable } from 'discord.js'; import got from 'got'; import humanizeDuration from 'humanize-duration'; @@ -36,7 +37,6 @@ import CommandErrorListener from '../../../listeners/commands/commandError'; import { Format } from '../../common/Format'; import { BushInspectOptions } from '../../common/typings/BushInspectOptions'; import { CodeBlockLang } from '../../common/typings/CodeBlockLang'; -import { Arg } from '../../common/util/Arg'; import { BushNewsChannel } from '../discord.js/BushNewsChannel'; import { BushTextChannel } from '../discord.js/BushTextChannel'; import { BushSlashEditMessageType, BushSlashSendMessageType, BushUserResolvable } from './BushClient'; @@ -401,7 +401,7 @@ export class BushClientUtil extends ClientUtil { /** * Add or remove an item from an array. All duplicates will be removed. */ - public addOrRemoveFromArray<T extends any>(action: 'add' | 'remove', array: T[], value: T): T[] { + public addOrRemoveFromArray<T>(action: 'add' | 'remove', array: T[], value: T): T[] { const set = new Set(array); action === 'add' ? set.add(value) : set.delete(value); return [...set]; diff --git a/src/lib/extensions/discord-akairo/BushCommand.ts b/src/lib/extensions/discord-akairo/BushCommand.ts index e3066aa..40c5974 100644 --- a/src/lib/extensions/discord-akairo/BushCommand.ts +++ b/src/lib/extensions/discord-akairo/BushCommand.ts @@ -1,9 +1,6 @@ -import { ArgumentOptions, ArgumentPromptOptions, ArgumentTypeCaster, Command, CommandOptions } from 'discord-akairo'; -import { PermissionResolvable, Snowflake } from 'discord.js'; -import { BushMessage } from '../discord.js/BushMessage'; -import { BushClient } from './BushClient'; -import { BushCommandHandler } from './BushCommandHandler'; -import { BushSlashMessage } from './BushSlashMessage'; +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 { type PermissionResolvable, type Snowflake } from 'discord.js'; export type BaseBushArgumentType = | 'string' diff --git a/src/lib/extensions/discord-akairo/BushCommandHandler.ts b/src/lib/extensions/discord-akairo/BushCommandHandler.ts index 8ab47d8..09cb303 100644 --- a/src/lib/extensions/discord-akairo/BushCommandHandler.ts +++ b/src/lib/extensions/discord-akairo/BushCommandHandler.ts @@ -1,9 +1,6 @@ -import { Category, CommandHandler, CommandHandlerEvents, CommandHandlerOptions } from 'discord-akairo'; -import { Collection, PermissionString } from 'discord.js'; -import { BushMessage } from '../discord.js/BushMessage'; -import { BushClient } from './BushClient'; -import { BushCommand } from './BushCommand'; -import { BushSlashMessage } from './BushSlashMessage'; +import { type BushClient, type BushCommand, type BushMessage, type BushSlashMessage } from '@lib'; +import { CommandHandler, type Category, type CommandHandlerEvents, type CommandHandlerOptions } from 'discord-akairo'; +import { type Collection, type PermissionString } from 'discord.js'; export type BushCommandHandlerOptions = CommandHandlerOptions; diff --git a/src/lib/extensions/discord-akairo/BushCommandUtil.ts b/src/lib/extensions/discord-akairo/BushCommandUtil.ts index 7720d57..04533bd 100644 --- a/src/lib/extensions/discord-akairo/BushCommandUtil.ts +++ b/src/lib/extensions/discord-akairo/BushCommandUtil.ts @@ -1,10 +1,6 @@ -import { CommandUtil, ParsedComponentData } from 'discord-akairo'; -import { Snowflake } from 'discord-api-types'; -import { Collection } from 'discord.js'; -import { BushMessage } from '../discord.js/BushMessage'; -import { BushCommand } from './BushCommand'; -import { BushCommandHandler } from './BushCommandHandler'; -import { BushSlashMessage } from './BushSlashMessage'; +import { type BushCommand, type BushCommandHandler, type BushMessage, type BushSlashMessage } from '@lib'; +import { CommandUtil, type ParsedComponentData } from 'discord-akairo'; +import { type Collection, type Snowflake } from 'discord.js'; export interface BushParsedComponentData extends ParsedComponentData { command?: BushCommand; diff --git a/src/lib/extensions/discord-akairo/BushInhibitor.ts b/src/lib/extensions/discord-akairo/BushInhibitor.ts index d689a72..638f663 100644 --- a/src/lib/extensions/discord-akairo/BushInhibitor.ts +++ b/src/lib/extensions/discord-akairo/BushInhibitor.ts @@ -1,8 +1,5 @@ +import { type BushClient, type BushCommand, type BushMessage, type BushSlashMessage } from '@lib'; import { Inhibitor } from 'discord-akairo'; -import { BushMessage } from '../discord.js/BushMessage'; -import { BushClient } from './BushClient'; -import { BushCommand } from './BushCommand'; -import { BushSlashMessage } from './BushSlashMessage'; export class BushInhibitor extends Inhibitor { public declare client: BushClient; diff --git a/src/lib/extensions/discord-akairo/BushInhibitorHandler.ts b/src/lib/extensions/discord-akairo/BushInhibitorHandler.ts index 2a947da..4984934 100644 --- a/src/lib/extensions/discord-akairo/BushInhibitorHandler.ts +++ b/src/lib/extensions/discord-akairo/BushInhibitorHandler.ts @@ -1,5 +1,5 @@ +import { type BushClient } from '@lib'; import { InhibitorHandler } from 'discord-akairo'; -import { BushClient } from './BushClient'; export class BushInhibitorHandler extends InhibitorHandler { public declare client: BushClient; diff --git a/src/lib/extensions/discord-akairo/BushListener.ts b/src/lib/extensions/discord-akairo/BushListener.ts index 82e874f..e3c845c 100644 --- a/src/lib/extensions/discord-akairo/BushListener.ts +++ b/src/lib/extensions/discord-akairo/BushListener.ts @@ -1,6 +1,7 @@ +import { type BushClient } from '@lib'; import { Listener } from 'discord-akairo'; -import EventEmitter from 'events'; -import { BushClient } from './BushClient'; +import type EventEmitter from 'events'; + export class BushListener extends Listener { public declare client: BushClient; public constructor( diff --git a/src/lib/extensions/discord-akairo/BushListenerHandler.ts b/src/lib/extensions/discord-akairo/BushListenerHandler.ts index 28615fc..f5354e4 100644 --- a/src/lib/extensions/discord-akairo/BushListenerHandler.ts +++ b/src/lib/extensions/discord-akairo/BushListenerHandler.ts @@ -1,5 +1,5 @@ +import { type BushClient } from '@lib'; import { ListenerHandler } from 'discord-akairo'; -import { BushClient } from './BushClient'; export class BushListenerHandler extends ListenerHandler { declare client: BushClient; diff --git a/src/lib/extensions/discord-akairo/BushSlashMessage.ts b/src/lib/extensions/discord-akairo/BushSlashMessage.ts index b5e48ea..fd248b1 100644 --- a/src/lib/extensions/discord-akairo/BushSlashMessage.ts +++ b/src/lib/extensions/discord-akairo/BushSlashMessage.ts @@ -1,10 +1,6 @@ +import { type BushClient, type BushCommandUtil, type BushGuild, type BushGuildMember, type BushUser } from '@lib'; import { AkairoMessage } from 'discord-akairo'; -import { CommandInteraction } from 'discord.js'; -import { BushGuild } from '../discord.js/BushGuild'; -import { BushGuildMember } from '../discord.js/BushGuildMember'; -import { BushUser } from '../discord.js/BushUser'; -import { BushClient } from './BushClient'; -import { BushCommandUtil } from './BushCommandUtil'; +import { type CommandInteraction } from 'discord.js'; export class BushSlashMessage extends AkairoMessage { public declare client: BushClient; diff --git a/src/lib/extensions/discord-akairo/BushTask.ts b/src/lib/extensions/discord-akairo/BushTask.ts index 1b14a2b..299e977 100644 --- a/src/lib/extensions/discord-akairo/BushTask.ts +++ b/src/lib/extensions/discord-akairo/BushTask.ts @@ -1,5 +1,5 @@ -import { Task, TaskOptions } from 'discord-akairo'; -import { BushClient } from './BushClient'; +import { type BushClient } from '@lib'; +import { Task, type TaskOptions } from 'discord-akairo'; export class BushTask extends Task { public declare client: BushClient; diff --git a/src/lib/extensions/discord-akairo/BushTaskHandler.ts b/src/lib/extensions/discord-akairo/BushTaskHandler.ts index 588988d..8531ff1 100644 --- a/src/lib/extensions/discord-akairo/BushTaskHandler.ts +++ b/src/lib/extensions/discord-akairo/BushTaskHandler.ts @@ -1,5 +1,5 @@ -import { AkairoHandlerOptions, TaskHandler } from 'discord-akairo'; -import { BushClient } from './BushClient'; +import { type BushClient } from '@lib'; +import { TaskHandler, type AkairoHandlerOptions } from 'discord-akairo'; export type BushTaskHandlerOptions = AkairoHandlerOptions; diff --git a/src/lib/extensions/discord.js/BushActivity.ts b/src/lib/extensions/discord.js/BushActivity.ts index 96c924d..1da5fac 100644 --- a/src/lib/extensions/discord.js/BushActivity.ts +++ b/src/lib/extensions/discord.js/BushActivity.ts @@ -1,7 +1,6 @@ +import { type BushEmoji, type BushPresence } from '@lib'; import { Activity } from 'discord.js'; -import { RawActivityData } from 'discord.js/typings/rawDataTypes'; -import { BushEmoji } from './BushEmoji'; -import { BushPresence } from './BushPresence'; +import { type RawActivityData } from 'discord.js/typings/rawDataTypes'; export class BushActivity extends Activity { public declare emoji: BushEmoji | null; diff --git a/src/lib/extensions/discord.js/BushApplicationCommand.ts b/src/lib/extensions/discord.js/BushApplicationCommand.ts index 0d7c000..9dfba65 100644 --- a/src/lib/extensions/discord.js/BushApplicationCommand.ts +++ b/src/lib/extensions/discord.js/BushApplicationCommand.ts @@ -1,8 +1,7 @@ /* eslint-disable @typescript-eslint/ban-types */ -import { ApplicationCommand, Snowflake } from 'discord.js'; -import { RawApplicationCommandData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; +import { type BushClient, type BushGuild } from '@lib'; +import { ApplicationCommand, type Snowflake } from 'discord.js'; +import { type RawApplicationCommandData } from 'discord.js/typings/rawDataTypes'; export class BushApplicationCommand<PermissionsFetchType = {}> extends ApplicationCommand<PermissionsFetchType> { public declare readonly client: BushClient; diff --git a/src/lib/extensions/discord.js/BushApplicationCommandManager.d.ts b/src/lib/extensions/discord.js/BushApplicationCommandManager.d.ts index b993215..89ad55d 100644 --- a/src/lib/extensions/discord.js/BushApplicationCommandManager.d.ts +++ b/src/lib/extensions/discord.js/BushApplicationCommandManager.d.ts @@ -1,9 +1,12 @@ -import { APIApplicationCommand } from 'discord-api-types'; -import { ApplicationCommandData, CachedManager, Collection, FetchApplicationCommandOptions, Snowflake } from 'discord.js'; -import { BushApplicationCommandResolvable, BushClient } from '../discord-akairo/BushClient'; -import { BushApplicationCommand } from './BushApplicationCommand'; -import { BushApplicationCommandPermissionsManager } from './BushApplicationCommandPermissionsManager'; -import { BushGuildResolvable } from './BushCommandInteraction'; +import { + type BushApplicationCommand, + type BushApplicationCommandPermissionsManager, + type BushApplicationCommandResolvable, + type BushClient, + type BushGuildResolvable +} from '@lib'; +import { type APIApplicationCommand } from 'discord-api-types'; +import { CachedManager, type ApplicationCommandData, type Collection, type FetchApplicationCommandOptions, type Snowflake } from 'discord.js'; export class BushApplicationCommandManager< ApplicationCommandScope = BushApplicationCommand<{ guild: BushGuildResolvable }>, @@ -29,6 +32,7 @@ export class BushApplicationCommandManager< guildId: Snowflake ): Promise<BushApplicationCommand>; public fetch(id: Snowflake, options: FetchApplicationCommandOptions & { guildId: Snowflake }): Promise<BushApplicationCommand>; + public fetch(options: FetchApplicationCommandOptions): Promise<Collection<string, ApplicationCommandScope>>; public fetch(id: Snowflake, options?: FetchApplicationCommandOptions): Promise<ApplicationCommandScope>; public fetch(id?: Snowflake, options?: FetchApplicationCommandOptions): Promise<Collection<Snowflake, ApplicationCommandScope>>; public set(commands: ApplicationCommandData[]): Promise<Collection<Snowflake, ApplicationCommandScope>>; diff --git a/src/lib/extensions/discord.js/BushApplicationCommandPermissionsManager.d.ts b/src/lib/extensions/discord.js/BushApplicationCommandPermissionsManager.d.ts index ece4a60..0fd47ac 100644 --- a/src/lib/extensions/discord.js/BushApplicationCommandPermissionsManager.d.ts +++ b/src/lib/extensions/discord.js/BushApplicationCommandPermissionsManager.d.ts @@ -1,17 +1,16 @@ -import { APIApplicationCommandPermission } from 'discord-api-types'; +import { type BushClient, type BushRoleResolvable, type BushUserResolvable } from '@lib'; +import { type APIApplicationCommandPermission } from 'discord-api-types'; import { - ApplicationCommand, - ApplicationCommandManager, - ApplicationCommandPermissionData, - ApplicationCommandPermissions, - BaseManager, - Collection, - GuildApplicationCommandManager, - GuildApplicationCommandPermissionData, - Snowflake + BaseManager, type ApplicationCommand, + type ApplicationCommandManager, + type ApplicationCommandPermissionData, + type ApplicationCommandPermissions, + type Collection, + type GuildApplicationCommandManager, + type GuildApplicationCommandPermissionData, + type Snowflake } from 'discord.js'; -import { ApplicationCommandPermissionTypes } from 'discord.js/typings/enums'; -import { BushClient, BushRoleResolvable, BushUserResolvable } from '../discord-akairo/BushClient'; +import { type ApplicationCommandPermissionTypes } from 'discord.js/typings/enums'; export class BushApplicationCommandPermissionsManager< BaseOptions, diff --git a/src/lib/extensions/discord.js/BushBaseGuildEmojiManager.d.ts b/src/lib/extensions/discord.js/BushBaseGuildEmojiManager.d.ts index 3e00d96..b3704b6 100644 --- a/src/lib/extensions/discord.js/BushBaseGuildEmojiManager.d.ts +++ b/src/lib/extensions/discord.js/BushBaseGuildEmojiManager.d.ts @@ -1,8 +1,6 @@ -import { Snowflake } from 'discord-api-types'; -import { CachedManager } from 'discord.js'; -import { RawGuildEmojiData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushEmojiIdentifierResolvable, BushEmojiResolvable } from '../discord-akairo/BushClient'; -import { BushGuildEmoji } from './BushGuildEmoji'; +import { type BushClient, type BushEmojiIdentifierResolvable, type BushEmojiResolvable, type BushGuildEmoji } from '@lib'; +import { CachedManager, type Snowflake } from 'discord.js'; +import { type RawGuildEmojiData } from 'discord.js/typings/rawDataTypes'; export class BushBaseGuildEmojiManager extends CachedManager<Snowflake, BushGuildEmoji, BushEmojiResolvable> { public constructor(client: BushClient, iterable?: Iterable<RawGuildEmojiData>); diff --git a/src/lib/extensions/discord.js/BushBaseGuildTextChannel.ts b/src/lib/extensions/discord.js/BushBaseGuildTextChannel.ts index 78cfada..38a8a7d 100644 --- a/src/lib/extensions/discord.js/BushBaseGuildTextChannel.ts +++ b/src/lib/extensions/discord.js/BushBaseGuildTextChannel.ts @@ -1,15 +1,19 @@ import { - AllowedThreadTypeForNewsChannel, - AllowedThreadTypeForTextChannel, + type BushCategoryChannel, + type BushClient, + type BushGuild, + type BushGuildMember, + type BushMessageManager, + type BushThreadManager +} from '@lib'; +import { BaseGuildTextChannel, - Collection, - Snowflake + type AllowedThreadTypeForNewsChannel, + type AllowedThreadTypeForTextChannel, + type Collection, + type Snowflake } from 'discord.js'; -import { RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushCategoryChannel, BushClient, BushGuildMember } from '../..'; -import { BushGuild } from './BushGuild'; -import { BushMessageManager } from './BushMessageManager'; -import { BushThreadManager } from './BushThreadManager'; +import { type RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; export class BushBaseGuildTextChannel extends BaseGuildTextChannel { public constructor(guild: BushGuild, data?: RawGuildChannelData, client?: BushClient, immediatePatch?: boolean) { diff --git a/src/lib/extensions/discord.js/BushButtonInteraction.ts b/src/lib/extensions/discord.js/BushButtonInteraction.ts index 26b98f6..2146e5c 100644 --- a/src/lib/extensions/discord.js/BushButtonInteraction.ts +++ b/src/lib/extensions/discord.js/BushButtonInteraction.ts @@ -1,13 +1,10 @@ -import { APIInteractionGuildMember } from 'discord-api-types/v9'; -import { ButtonInteraction, CacheType, CacheTypeReducer } from 'discord.js'; -import { RawMessageButtonInteractionData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushTextBasedChannels } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushUser } from './BushUser'; +import { type BushClient, type BushGuild, type BushGuildMember, type BushTextBasedChannels, type BushUser } from '@lib'; +import { type APIInteractionGuildMember } from 'discord-api-types/v9'; +import { ButtonInteraction, type CacheType, type CacheTypeReducer } from 'discord.js'; +import { type RawMessageButtonInteractionData } from 'discord.js/typings/rawDataTypes'; export class BushButtonInteraction<Cached extends CacheType = CacheType> extends ButtonInteraction<Cached> { - public declare readonly channel: BushTextBasedChannels | null; + public declare readonly channel: CacheTypeReducer<Cached, BushTextBasedChannels | null>; public declare readonly guild: CacheTypeReducer<Cached, BushGuild, null>; public declare member: CacheTypeReducer<Cached, BushGuildMember, APIInteractionGuildMember>; public declare user: BushUser; diff --git a/src/lib/extensions/discord.js/BushCategoryChannel.ts b/src/lib/extensions/discord.js/BushCategoryChannel.ts index f5d26f0..a97c21b 100644 --- a/src/lib/extensions/discord.js/BushCategoryChannel.ts +++ b/src/lib/extensions/discord.js/BushCategoryChannel.ts @@ -1,9 +1,6 @@ -import { CategoryChannel, Collection, Snowflake } from 'discord.js'; -import { RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildChannel } from './BushGuildChannel'; -import { BushGuildMember } from './BushGuildMember'; +import { type BushClient, type BushGuild, type BushGuildChannel, type BushGuildMember } from '@lib'; +import { CategoryChannel, type Collection, type Snowflake } from 'discord.js'; +import { type RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; export class BushCategoryChannel extends CategoryChannel { public declare readonly client: BushClient; diff --git a/src/lib/extensions/discord.js/BushChannel.d.ts b/src/lib/extensions/discord.js/BushChannel.d.ts index 2e465a5..1c47018 100644 --- a/src/lib/extensions/discord.js/BushChannel.d.ts +++ b/src/lib/extensions/discord.js/BushChannel.d.ts @@ -1,11 +1,7 @@ -import { Snowflake } from 'discord-api-types'; -import { Channel, ChannelMention } from 'discord.js'; -import { ChannelTypes } from 'discord.js/typings/enums'; -import { RawChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushTextBasedChannels } from '../discord-akairo/BushClient'; -import { BushStageChannel } from './BushStageChannel'; -import { BushThreadChannel } from './BushThreadChannel'; -import { BushVoiceChannel } from './BushVoiceChannel'; +import { type BushClient, type BushStageChannel, type BushTextBasedChannels, type BushThreadChannel, type BushVoiceChannel } from '@lib'; +import { Channel, type ChannelMention, type Snowflake } from 'discord.js'; +import { type ChannelTypes } from 'discord.js/typings/enums'; +import { type RawChannelData } from 'discord.js/typings/rawDataTypes'; export class BushChannel extends Channel { public constructor(client: BushClient, data?: RawChannelData, immediatePatch?: boolean); diff --git a/src/lib/extensions/discord.js/BushChannelManager.d.ts b/src/lib/extensions/discord.js/BushChannelManager.d.ts index 924f5b6..7ebeb79 100644 --- a/src/lib/extensions/discord.js/BushChannelManager.d.ts +++ b/src/lib/extensions/discord.js/BushChannelManager.d.ts @@ -1,8 +1,6 @@ -import { Snowflake } from 'discord-api-types'; -import { CachedManager, Client, FetchChannelOptions } from 'discord.js'; -import { RawChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushChannelResolvable } from '../discord-akairo/BushClient'; -import { BushChannel } from './BushChannel'; +import { type BushChannel, type BushChannelResolvable } from '@lib'; +import { CachedManager, type Client, type FetchChannelOptions, type Snowflake } from 'discord.js'; +import { type RawChannelData } from 'discord.js/typings/rawDataTypes'; export class BushChannelManager extends CachedManager<Snowflake, BushChannel, BushChannelResolvable> { public constructor(client: Client, iterable: Iterable<RawChannelData>); diff --git a/src/lib/extensions/discord.js/BushClientEvents.d.ts b/src/lib/extensions/discord.js/BushClientEvents.d.ts index b16f632..3e9fbf9 100644 --- a/src/lib/extensions/discord.js/BushClientEvents.d.ts +++ b/src/lib/extensions/discord.js/BushClientEvents.d.ts @@ -1,42 +1,42 @@ import { - BushApplicationCommand, - BushClient, - BushDMChannel, - BushGuild, - BushGuildChannel, - BushGuildEmoji, - BushGuildMember, - BushMessage, - BushMessageReaction, - BushNewsChannel, - BushPresence, - BushRole, - BushStageInstance, - BushTextBasedChannels, - BushTextChannel, - BushThreadChannel, - BushThreadMember, - BushUser, - BushVoiceState, - Guild, - GuildSettings, - PartialBushGuildMember, - PartialBushMessage, - PartialBushMessageReaction, - PartialBushUser + type BushApplicationCommand, + type BushClient, + type BushDMChannel, + type BushGuild, + type BushGuildBan, + type BushGuildChannel, + type BushGuildEmoji, + type BushGuildMember, + type BushMessage, + type BushMessageReaction, + type BushNewsChannel, + type BushPresence, + type BushRole, + type BushStageInstance, + type BushTextBasedChannels, + type BushTextChannel, + type BushThreadChannel, + type BushThreadMember, + type BushUser, + type BushVoiceState, + type Guild, + type GuildSettings, + type PartialBushGuildMember, + type PartialBushMessage, + type PartialBushMessageReaction, + type PartialBushUser } from '@lib'; -import { AkairoClientEvents } from 'discord-akairo'; +import { type AkairoClientEvents } from 'discord-akairo'; import { - Collection, - Interaction, - InvalidRequestWarningData, - Invite, - RateLimitData, - Snowflake, - Sticker, - Typing + type Collection, + type Interaction, + type InvalidRequestWarningData, + type Invite, + type RateLimitData, + type Snowflake, + type Sticker, + type Typing } from 'discord.js'; -import { BushGuildBan } from './BushGuildBan'; export interface BushClientEvents extends AkairoClientEvents { applicationCommandCreate: [command: BushApplicationCommand]; diff --git a/src/lib/extensions/discord.js/BushClientUser.d.ts b/src/lib/extensions/discord.js/BushClientUser.d.ts index 1a6cea4..b045a75 100644 --- a/src/lib/extensions/discord.js/BushClientUser.d.ts +++ b/src/lib/extensions/discord.js/BushClientUser.d.ts @@ -1,11 +1,11 @@ import { - ActivityOptions, - Base64Resolvable, - BufferResolvable, - ClientPresence, - ClientUserEditData, - PresenceData, - PresenceStatusData + type ActivityOptions, + type Base64Resolvable, + type BufferResolvable, + type ClientPresence, + type ClientUserEditData, + type PresenceData, + type PresenceStatusData } from 'discord.js'; import { BushUser } from './BushUser'; diff --git a/src/lib/extensions/discord.js/BushCommandInteraction.ts b/src/lib/extensions/discord.js/BushCommandInteraction.ts index eff3b45..4202cfd 100644 --- a/src/lib/extensions/discord.js/BushCommandInteraction.ts +++ b/src/lib/extensions/discord.js/BushCommandInteraction.ts @@ -1,14 +1,16 @@ -import { APIInteractionGuildMember } from 'discord-api-types/v9'; -import { CacheType, CacheTypeReducer, CommandInteraction, Invite, Snowflake } from 'discord.js'; -import { RawCommandInteractionData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushTextBasedChannels } from '../discord-akairo/BushClient'; -import { BushApplicationCommand } from './BushApplicationCommand'; -import { BushGuild } from './BushGuild'; -import { BushGuildChannel } from './BushGuildChannel'; -import { BushGuildEmoji } from './BushGuildEmoji'; -import { BushGuildMember } from './BushGuildMember'; -import { BushRole } from './BushRole'; -import { BushUser } from './BushUser'; +import { + type BushApplicationCommand, + type BushGuild, + type BushGuildChannel, + type BushGuildEmoji, + type BushGuildMember, + type BushRole, + type BushUser +} from '@lib'; +import { type APIInteractionGuildMember } from 'discord-api-types/v9'; +import { CommandInteraction, type CacheType, type CacheTypeReducer, type Invite, type Snowflake } from 'discord.js'; +import { type RawCommandInteractionData } from 'discord.js/typings/rawDataTypes'; +import { BushTextBasedChannels, type BushClient } from '../discord-akairo/BushClient'; export type BushGuildResolvable = BushGuild | BushGuildChannel | BushGuildMember | BushGuildEmoji | Invite | BushRole | Snowflake; @@ -18,7 +20,7 @@ export class BushCommandInteraction<Cached extends CacheType = CacheType> extend } public declare readonly client: BushClient; public declare readonly command: BushApplicationCommand | BushApplicationCommand<{ guild: BushGuildResolvable }> | null; - public declare readonly channel: BushTextBasedChannels | null; + public declare readonly channel: CacheTypeReducer<Cached, BushTextBasedChannels | null>; public declare readonly guild: CacheTypeReducer<Cached, BushGuild, null>; public declare member: CacheTypeReducer<Cached, BushGuildMember, APIInteractionGuildMember>; public declare user: BushUser; diff --git a/src/lib/extensions/discord.js/BushDMChannel.ts b/src/lib/extensions/discord.js/BushDMChannel.ts index 4b44f83..9730c30 100644 --- a/src/lib/extensions/discord.js/BushDMChannel.ts +++ b/src/lib/extensions/discord.js/BushDMChannel.ts @@ -1,8 +1,6 @@ +import { type BushClient, type BushMessageManager, type BushUser } from '@lib'; import { DMChannel } from 'discord.js'; -import { RawDMChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushMessageManager } from './BushMessageManager'; -import { BushUser } from './BushUser'; +import { type RawDMChannelData } from 'discord.js/typings/rawDataTypes'; export class BushDMChannel extends DMChannel { public declare readonly client: BushClient; diff --git a/src/lib/extensions/discord.js/BushEmoji.ts b/src/lib/extensions/discord.js/BushEmoji.ts index db1cc11..fc27a99 100644 --- a/src/lib/extensions/discord.js/BushEmoji.ts +++ b/src/lib/extensions/discord.js/BushEmoji.ts @@ -1,6 +1,6 @@ +import { type BushClient } from '@lib'; import { Emoji } from 'discord.js'; -import { RawEmojiData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; +import { type RawEmojiData } from 'discord.js/typings/rawDataTypes'; export class BushEmoji extends Emoji { public declare readonly client: BushClient; diff --git a/src/lib/extensions/discord.js/BushGuild.ts b/src/lib/extensions/discord.js/BushGuild.ts index 487ff9a..dff9d85 100644 --- a/src/lib/extensions/discord.js/BushGuild.ts +++ b/src/lib/extensions/discord.js/BushGuild.ts @@ -1,13 +1,19 @@ -import { Guild, MessageOptions, UserResolvable } from 'discord.js'; -import { RawGuildData } from 'discord.js/typings/rawDataTypes'; +import { + type BushClient, + type BushGuildMember, + type BushGuildMemberManager, + type BushTextChannel, + type BushUser, + type BushUserResolvable, + type GuildFeatures, + type GuildLogType, + type GuildModel +} from '@lib'; +import { Guild, type MessageOptions, type UserResolvable } from 'discord.js'; +import { type RawGuildData } from 'discord.js/typings/rawDataTypes'; import { Moderation } from '../../common/Moderation'; -import { Guild as GuildDB, GuildFeatures, GuildLogType, GuildModel } from '../../models/Guild'; +import { Guild as GuildDB } from '../../models/Guild'; import { ModLogType } from '../../models/ModLog'; -import { BushClient, BushUserResolvable } from '../discord-akairo/BushClient'; -import { BushGuildMember } from './BushGuildMember'; -import { BushGuildMemberManager } from './BushGuildMemberManager'; -import { BushTextChannel } from './BushTextChannel'; -import { BushUser } from './BushUser'; export class BushGuild extends Guild { public declare readonly client: BushClient; diff --git a/src/lib/extensions/discord.js/BushGuildApplicationCommandManager.d.ts b/src/lib/extensions/discord.js/BushGuildApplicationCommandManager.d.ts index 38afa94..3c71a01 100644 --- a/src/lib/extensions/discord.js/BushGuildApplicationCommandManager.d.ts +++ b/src/lib/extensions/discord.js/BushGuildApplicationCommandManager.d.ts @@ -1,10 +1,13 @@ /* eslint-disable @typescript-eslint/ban-types */ -import { ApplicationCommandData, BaseFetchOptions, Collection, Snowflake } from 'discord.js'; -import { RawApplicationCommandData } from 'discord.js/typings/rawDataTypes'; -import { BushApplicationCommandResolvable, BushClient } from '../discord-akairo/BushClient'; -import { BushApplicationCommand } from './BushApplicationCommand'; -import { BushApplicationCommandManager } from './BushApplicationCommandManager'; -import { BushGuild } from './BushGuild'; +import { + BushApplicationCommandManager, + type BushApplicationCommand, + type BushApplicationCommandResolvable, + type BushClient, + type BushGuild +} from '@lib'; +import { type ApplicationCommandData, type BaseFetchOptions, type Collection, type Snowflake } from 'discord.js'; +import { type RawApplicationCommandData } from 'discord.js/typings/rawDataTypes'; export class BushGuildApplicationCommandManager extends BushApplicationCommandManager<BushApplicationCommand, {}, BushGuild> { public constructor(guild: BushGuild, iterable?: Iterable<RawApplicationCommandData>); @@ -14,6 +17,7 @@ export class BushGuildApplicationCommandManager extends BushApplicationCommandMa public delete(command: BushApplicationCommandResolvable): Promise<BushApplicationCommand | null>; public edit(command: BushApplicationCommandResolvable, data: ApplicationCommandData): Promise<BushApplicationCommand>; public fetch(id: Snowflake, options?: BaseFetchOptions): Promise<BushApplicationCommand>; + public fetch(options: BaseFetchOptions): Promise<Collection<Snowflake, BushApplicationCommand>>; public fetch(id?: undefined, options?: BaseFetchOptions): Promise<Collection<Snowflake, BushApplicationCommand>>; public set(commands: ApplicationCommandData[]): Promise<Collection<Snowflake, BushApplicationCommand>>; } diff --git a/src/lib/extensions/discord.js/BushGuildBan.d.ts b/src/lib/extensions/discord.js/BushGuildBan.d.ts index 0174220..5d50bb4 100644 --- a/src/lib/extensions/discord.js/BushGuildBan.d.ts +++ b/src/lib/extensions/discord.js/BushGuildBan.d.ts @@ -1,8 +1,6 @@ +import { type BushClient, type BushGuild, type BushUser } from '@lib'; import { GuildBan } from 'discord.js'; -import { RawGuildBanData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushUser } from './BushUser'; +import { type RawGuildBanData } from 'discord.js/typings/rawDataTypes'; export class BushGuildBan extends GuildBan { public constructor(client: BushClient, data: RawGuildBanData, guild: BushGuild); diff --git a/src/lib/extensions/discord.js/BushGuildChannel.ts b/src/lib/extensions/discord.js/BushGuildChannel.ts index 7daa80d..ee51c3b 100644 --- a/src/lib/extensions/discord.js/BushGuildChannel.ts +++ b/src/lib/extensions/discord.js/BushGuildChannel.ts @@ -1,7 +1,6 @@ +import { type BushClient, type BushGuild } from '@lib'; import { GuildChannel } from 'discord.js'; -import { RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; +import { type RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; export class BushGuildChannel extends GuildChannel { public declare readonly client: BushClient; diff --git a/src/lib/extensions/discord.js/BushGuildEmoji.ts b/src/lib/extensions/discord.js/BushGuildEmoji.ts index 0ac5ebd..8d5493b 100644 --- a/src/lib/extensions/discord.js/BushGuildEmoji.ts +++ b/src/lib/extensions/discord.js/BushGuildEmoji.ts @@ -1,9 +1,6 @@ +import { type BushClient, type BushGuild, type BushGuildEmojiRoleManager, type BushUser } from '@lib'; import { GuildEmoji } from 'discord.js'; -import { RawGuildEmojiData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildEmojiRoleManager } from './BushGuildEmojiRoleManager'; -import { BushUser } from './BushUser'; +import { type RawGuildEmojiData } from 'discord.js/typings/rawDataTypes'; export class BushGuildEmoji extends GuildEmoji { public declare readonly client: BushClient; diff --git a/src/lib/extensions/discord.js/BushGuildEmojiRoleManager.d.ts b/src/lib/extensions/discord.js/BushGuildEmojiRoleManager.d.ts index 6e36292..8b886bd 100644 --- a/src/lib/extensions/discord.js/BushGuildEmojiRoleManager.d.ts +++ b/src/lib/extensions/discord.js/BushGuildEmojiRoleManager.d.ts @@ -1,8 +1,5 @@ -import { Collection, DataManager, Snowflake } from 'discord.js'; -import { BushClient, BushRoleResolvable } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildEmoji } from './BushGuildEmoji'; -import { BushRole } from './BushRole'; +import { type BushClient, type BushGuild, type BushGuildEmoji, type BushRole, type BushRoleResolvable } from '@lib'; +import { DataManager, type Collection, type Snowflake } from 'discord.js'; export class BushGuildEmojiRoleManager extends DataManager<Snowflake, BushRole, BushRoleResolvable> { public constructor(emoji: BushGuildEmoji); diff --git a/src/lib/extensions/discord.js/BushGuildManager.d.ts b/src/lib/extensions/discord.js/BushGuildManager.d.ts index 4ec9276..1a56b8f 100644 --- a/src/lib/extensions/discord.js/BushGuildManager.d.ts +++ b/src/lib/extensions/discord.js/BushGuildManager.d.ts @@ -1,9 +1,13 @@ -import { Snowflake } from 'discord-api-types'; -import { CachedManager, Collection, FetchGuildOptions, FetchGuildsOptions, GuildCreateOptions, OAuth2Guild } from 'discord.js'; -import { RawGuildData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuildResolvable } from './BushCommandInteraction'; -import { BushGuild } from './BushGuild'; +import { type BushClient, type BushGuild, type BushGuildResolvable } from '@lib'; +import { + CachedManager, + type Collection, + type FetchGuildOptions, + type FetchGuildsOptions, type GuildCreateOptions, + type OAuth2Guild, + type Snowflake +} from 'discord.js'; +import { type RawGuildData } from 'discord.js/typings/rawDataTypes'; export class BushGuildManager extends CachedManager<Snowflake, BushGuild, BushGuildResolvable> { public constructor(client: BushClient, iterable?: Iterable<RawGuildData>); diff --git a/src/lib/extensions/discord.js/BushGuildMember.ts b/src/lib/extensions/discord.js/BushGuildMember.ts index b23ff33..32f0156 100644 --- a/src/lib/extensions/discord.js/BushGuildMember.ts +++ b/src/lib/extensions/discord.js/BushGuildMember.ts @@ -1,11 +1,6 @@ -import { GuildMember, MessageEmbed, Partialize, Role } from 'discord.js'; -import { RawGuildMemberData } from 'discord.js/typings/rawDataTypes'; -import { Moderation } from '../../common/Moderation'; -import { ModLogType } from '../../models/ModLog'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushRole } from './BushRole'; -import { BushUser } from './BushUser'; +import { Moderation, ModLogType, type BushClient, type BushGuild, type BushRole, type BushUser } from '@lib'; +import { GuildMember, MessageEmbed, type Partialize, type Role } from 'discord.js'; +import { type RawGuildMemberData } from 'discord.js/typings/rawDataTypes'; interface BushPunishmentOptions { reason?: string | null; diff --git a/src/lib/extensions/discord.js/BushGuildMemberManager.d.ts b/src/lib/extensions/discord.js/BushGuildMemberManager.d.ts index e868b10..f5e0846 100644 --- a/src/lib/extensions/discord.js/BushGuildMemberManager.d.ts +++ b/src/lib/extensions/discord.js/BushGuildMemberManager.d.ts @@ -1,21 +1,25 @@ import { - AddGuildMemberOptions, - BanOptions, + type BushClient, + type BushGuild, + type BushGuildMember, + type BushGuildMemberResolvable, + type BushUser, + type BushUserResolvable +} from '@lib'; +import { CachedManager, - Collection, - FetchMemberOptions, - FetchMembersOptions, - GuildListMembersOptions, - GuildMemberEditData, - GuildPruneMembersOptions, - GuildSearchMembersOptions, - Snowflake + type AddGuildMemberOptions, + type BanOptions, + type Collection, + type FetchMemberOptions, + type FetchMembersOptions, + type GuildListMembersOptions, + type GuildMemberEditData, + type GuildPruneMembersOptions, + type GuildSearchMembersOptions, + type Snowflake } from 'discord.js'; -import { RawGuildMemberData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushGuildMemberResolvable, BushUserResolvable } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushUser } from './BushUser'; +import { type RawGuildMemberData } from 'discord.js/typings/rawDataTypes'; export class BushGuildMemberManager extends CachedManager<Snowflake, BushGuildMember, BushGuildMemberResolvable> { public constructor(guild: BushGuild, iterable?: Iterable<RawGuildMemberData>); diff --git a/src/lib/extensions/discord.js/BushMessage.ts b/src/lib/extensions/discord.js/BushMessage.ts index 941df29..d64ac6e 100644 --- a/src/lib/extensions/discord.js/BushMessage.ts +++ b/src/lib/extensions/discord.js/BushMessage.ts @@ -1,10 +1,14 @@ -import { If, Message, Partialize } from 'discord.js'; -import { RawMessageData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushGuildTextBasedChannel, BushTextBasedChannels } from '../discord-akairo/BushClient'; -import { BushCommandUtil } from '../discord-akairo/BushCommandUtil'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushUser } from './BushUser'; +import { + type BushClient, + type BushCommandUtil, + type BushGuild, + type BushGuildMember, + type BushGuildTextBasedChannel, + type BushTextBasedChannels, + type BushUser +} from '@lib'; +import { Message, type If, type Partialize } from 'discord.js'; +import { type RawMessageData } from 'discord.js/typings/rawDataTypes'; export type PartialBushMessage = Partialize< BushMessage, @@ -13,14 +17,13 @@ export type PartialBushMessage = Partialize< >; export class BushMessage<Cached extends boolean = boolean> extends Message<Cached> { public declare readonly client: BushClient; - public override util!: BushCommandUtil<BushMessage>; + public declare util: BushCommandUtil<BushMessage<true>>; public declare readonly guild: BushGuild | null; public declare readonly member: BushGuildMember | null; public declare author: BushUser; public declare readonly channel: If<Cached, BushGuildTextBasedChannel, BushTextBasedChannels>; public constructor(client: BushClient, data: RawMessageData) { super(client, data); - // this.util = new BushCommandUtil(client.commandHandler, this); } public override fetch(force?: boolean): Promise<BushMessage> { return super.fetch(force) as Promise<BushMessage>; diff --git a/src/lib/extensions/discord.js/BushMessageManager.d.ts b/src/lib/extensions/discord.js/BushMessageManager.d.ts index 8495130..98a24d8 100644 --- a/src/lib/extensions/discord.js/BushMessageManager.d.ts +++ b/src/lib/extensions/discord.js/BushMessageManager.d.ts @@ -1,29 +1,25 @@ +import { BushMessageResolvable, type BushMessage, type BushTextBasedChannels } from '@lib'; import { - BaseFetchOptions, - CachedManager, - ChannelLogsQueryOptions, - Collection, - EmojiIdentifierResolvable, - MessageEditOptions, - MessagePayload, - MessageResolvable, - Snowflake + CachedManager, type BaseFetchOptions, + type ChannelLogsQueryOptions, + type Collection, + type EmojiIdentifierResolvable, + type MessageEditOptions, + type MessagePayload, type Snowflake } from 'discord.js'; -import { RawMessageData } from 'discord.js/typings/rawDataTypes'; -import { BushMessageResolvable, BushTextBasedChannels } from '../..'; -import { BushMessage } from './BushMessage'; +import { type RawMessageData } from 'discord.js/typings/rawDataTypes'; export class BushMessageManager extends CachedManager<Snowflake, BushMessage, BushMessageResolvable> { - public constructor(channel: BushTextBasedChannels, iterable?: Iterable<RawMessageData>); - public channel: BushTextBasedChannels; - public cache: Collection<Snowflake, BushMessage>; - public crosspost(message: BushMessageResolvable): Promise<BushMessage>; - public delete(message: BushMessageResolvable): Promise<void>; - public edit(message: MessageResolvable, options: MessagePayload | MessageEditOptions): Promise<BushMessage>; - public fetch(message: Snowflake, options?: BaseFetchOptions): Promise<BushMessage>; - public fetch(options?: ChannelLogsQueryOptions, cacheOptions?: BaseFetchOptions): Promise<Collection<Snowflake, BushMessage>>; - public fetchPinned(cache?: boolean): Promise<Collection<Snowflake, BushMessage>>; - public react(message: BushMessageResolvable, emoji: EmojiIdentifierResolvable): Promise<void>; - public pin(message: BushMessageResolvable): Promise<void>; - public unpin(message: BushMessageResolvable): Promise<void>; + public constructor(channel: BushTextBasedChannels, iterable?: Iterable<RawMessageData>); + public channel: BushTextBasedChannels; + public cache: Collection<Snowflake, BushMessage>; + public crosspost(message: BushMessageResolvable): Promise<BushMessage>; + public delete(message: BushMessageResolvable): Promise<void>; + public edit(message: BushMessageResolvable, options: MessagePayload | MessageEditOptions): Promise<BushMessage>; + public fetch(message: Snowflake, options?: BaseFetchOptions): Promise<BushMessage>; + public fetch(options?: ChannelLogsQueryOptions, cacheOptions?: BaseFetchOptions): Promise<Collection<Snowflake, BushMessage>>; + public fetchPinned(cache?: boolean): Promise<Collection<Snowflake, BushMessage>>; + public react(message: BushMessageResolvable, emoji: EmojiIdentifierResolvable): Promise<void>; + public pin(message: BushMessageResolvable): Promise<void>; + public unpin(message: BushMessageResolvable): Promise<void>; } diff --git a/src/lib/extensions/discord.js/BushMessageReaction.ts b/src/lib/extensions/discord.js/BushMessageReaction.ts index 056e4e6..b56ae28 100644 --- a/src/lib/extensions/discord.js/BushMessageReaction.ts +++ b/src/lib/extensions/discord.js/BushMessageReaction.ts @@ -1,9 +1,6 @@ -import { MessageReaction, Partialize } from 'discord.js'; -import { RawMessageReactionData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuildEmoji } from './BushGuildEmoji'; -import { BushMessage } from './BushMessage'; -import { BushReactionEmoji } from './BushReactionEmoji'; +import { type BushClient, type BushGuildEmoji, type BushMessage, type BushReactionEmoji } from '@lib'; +import { MessageReaction, type Partialize } from 'discord.js'; +import { type RawMessageReactionData } from 'discord.js/typings/rawDataTypes'; export type PartialBushMessageReaction = Partialize<BushMessageReaction, 'count'>; diff --git a/src/lib/extensions/discord.js/BushNewsChannel.ts b/src/lib/extensions/discord.js/BushNewsChannel.ts index d770132..f30de3e 100644 --- a/src/lib/extensions/discord.js/BushNewsChannel.ts +++ b/src/lib/extensions/discord.js/BushNewsChannel.ts @@ -1,12 +1,7 @@ -import { AllowedThreadTypeForNewsChannel, Collection, NewsChannel, Snowflake } from 'discord.js'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushMessageManager } from './BushMessageManager'; -import { BushThreadManager } from './BushThreadManager'; +import { type BushGuild, type BushGuildMember, type BushMessageManager, type BushThreadManager } from '@lib'; +import { NewsChannel, type AllowedThreadTypeForNewsChannel, type Collection, type Snowflake } from 'discord.js'; export class BushNewsChannel extends NewsChannel { - public declare readonly client: BushClient; public declare threads: BushThreadManager<AllowedThreadTypeForNewsChannel>; public declare guild: BushGuild; public declare messages: BushMessageManager; diff --git a/src/lib/extensions/discord.js/BushPresence.ts b/src/lib/extensions/discord.js/BushPresence.ts index ff1937c..c5464a5 100644 --- a/src/lib/extensions/discord.js/BushPresence.ts +++ b/src/lib/extensions/discord.js/BushPresence.ts @@ -1,9 +1,6 @@ +import { type BushClient, type BushGuild, type BushGuildMember, type BushUser } from '@lib'; import { Presence } from 'discord.js'; -import { RawPresenceData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushUser } from './BushUser'; +import { type RawPresenceData } from 'discord.js/typings/rawDataTypes'; export class BushPresence extends Presence { public declare guild: BushGuild | null; diff --git a/src/lib/extensions/discord.js/BushReactionEmoji.ts b/src/lib/extensions/discord.js/BushReactionEmoji.ts index 3aee2fb..5dd3d92 100644 --- a/src/lib/extensions/discord.js/BushReactionEmoji.ts +++ b/src/lib/extensions/discord.js/BushReactionEmoji.ts @@ -1,10 +1,8 @@ +import { type BushMessageReaction } from '@lib'; import { ReactionEmoji } from 'discord.js'; -import { RawReactionEmojiData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushMessageReaction } from './BushMessageReaction'; +import { type RawReactionEmojiData } from 'discord.js/typings/rawDataTypes'; export class BushReactionEmoji extends ReactionEmoji { - public declare readonly client: BushClient; public declare reaction: BushMessageReaction; public constructor(reaction: BushMessageReaction, emoji: RawReactionEmojiData) { super(reaction, emoji); diff --git a/src/lib/extensions/discord.js/BushRole.ts b/src/lib/extensions/discord.js/BushRole.ts index 084b019..b610699 100644 --- a/src/lib/extensions/discord.js/BushRole.ts +++ b/src/lib/extensions/discord.js/BushRole.ts @@ -1,11 +1,8 @@ -import { Collection, Role, Snowflake } from 'discord.js'; -import { RawRoleData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; +import { type BushClient, type BushGuild, type BushGuildMember } from '@lib'; +import { Role, type Collection, type Snowflake } from 'discord.js'; +import { type RawRoleData } from 'discord.js/typings/rawDataTypes'; export class BushRole extends Role { - public declare readonly client: BushClient; public declare guild: BushGuild; public declare readonly members: Collection<Snowflake, BushGuildMember>; public constructor(client: BushClient, data: RawRoleData, guild: BushGuild) { diff --git a/src/lib/extensions/discord.js/BushSelectMenuInteraction.ts b/src/lib/extensions/discord.js/BushSelectMenuInteraction.ts index d4ebd4f..cffc099 100644 --- a/src/lib/extensions/discord.js/BushSelectMenuInteraction.ts +++ b/src/lib/extensions/discord.js/BushSelectMenuInteraction.ts @@ -1,13 +1,10 @@ -import { APIInteractionGuildMember } from 'discord-api-types/v9'; -import { CacheType, CacheTypeReducer, SelectMenuInteraction } from 'discord.js'; -import { RawMessageSelectMenuInteractionData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushTextBasedChannels } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushUser } from './BushUser'; +import { type BushClient, type BushGuild, type BushGuildMember, type BushTextBasedChannels, type BushUser } from '@lib'; +import { type APIInteractionGuildMember } from 'discord-api-types/v9'; +import { SelectMenuInteraction, type CacheType, type CacheTypeReducer } from 'discord.js'; +import { type RawMessageSelectMenuInteractionData } from 'discord.js/typings/rawDataTypes'; export class BushSelectMenuInteraction<Cached extends CacheType = CacheType> extends SelectMenuInteraction<Cached> { - public declare readonly channel: BushTextBasedChannels | null; + public declare readonly channel: CacheTypeReducer<Cached, BushTextBasedChannels | null>; public declare readonly guild: CacheTypeReducer<Cached, BushGuild, null>; public declare member: CacheTypeReducer<Cached, BushGuildMember, APIInteractionGuildMember>; public declare user: BushUser; diff --git a/src/lib/extensions/discord.js/BushStageChannel.ts b/src/lib/extensions/discord.js/BushStageChannel.ts index 4df64e8..a5b6b53 100644 --- a/src/lib/extensions/discord.js/BushStageChannel.ts +++ b/src/lib/extensions/discord.js/BushStageChannel.ts @@ -1,13 +1,8 @@ -import { Collection, Snowflake, StageChannel } from 'discord.js'; -import { RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushCategoryChannel } from './BushCategoryChannel'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushStageInstance } from './BushStageInstance'; +import { type BushCategoryChannel, type BushGuild, type BushGuildMember, type BushStageInstance } from '@lib'; +import { StageChannel, type Collection, type Snowflake } from 'discord.js'; +import { type RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; export class BushStageChannel extends StageChannel { - public declare readonly client: BushClient; public declare readonly instance: BushStageInstance | null; public declare readonly members: Collection<Snowflake, BushGuildMember>; public declare guild: BushGuild; diff --git a/src/lib/extensions/discord.js/BushStageInstance.ts b/src/lib/extensions/discord.js/BushStageInstance.ts index ab09863..4ebfc3c 100644 --- a/src/lib/extensions/discord.js/BushStageInstance.ts +++ b/src/lib/extensions/discord.js/BushStageInstance.ts @@ -1,11 +1,8 @@ +import { type BushClient, type BushGuild, type BushStageChannel } from '@lib'; import { StageInstance } from 'discord.js'; -import { RawStageInstanceData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushStageChannel } from './BushStageChannel'; +import { type RawStageInstanceData } from 'discord.js/typings/rawDataTypes'; export class BushStageInstance extends StageInstance { - public declare readonly client: BushClient; public declare readonly channel: BushStageChannel | null; public declare readonly guild: BushGuild | null; public constructor(client: BushClient, data: RawStageInstanceData, channel: BushStageChannel) { diff --git a/src/lib/extensions/discord.js/BushStoreChannel.ts b/src/lib/extensions/discord.js/BushStoreChannel.ts index 20bfeab..5b9def0 100644 --- a/src/lib/extensions/discord.js/BushStoreChannel.ts +++ b/src/lib/extensions/discord.js/BushStoreChannel.ts @@ -1,12 +1,8 @@ -import { Collection, Snowflake, StoreChannel } from 'discord.js'; -import { RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushCategoryChannel } from './BushCategoryChannel'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; +import { type BushCategoryChannel, type BushClient, type BushGuild, type BushGuildMember } from '@lib'; +import { StoreChannel, type Collection, type Snowflake } from 'discord.js'; +import { type RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; export class BushStoreChannel extends StoreChannel { - public declare readonly client: BushClient; public declare guild: BushGuild; public declare readonly members: Collection<Snowflake, BushGuildMember>; public declare readonly parent: BushCategoryChannel | null; diff --git a/src/lib/extensions/discord.js/BushTextChannel.ts b/src/lib/extensions/discord.js/BushTextChannel.ts index 1d4d7fe..5001ddb 100644 --- a/src/lib/extensions/discord.js/BushTextChannel.ts +++ b/src/lib/extensions/discord.js/BushTextChannel.ts @@ -1,12 +1,8 @@ -import { AllowedThreadTypeForTextChannel, TextChannel } from 'discord.js'; -import { RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushMessageManager } from './BushMessageManager'; -import { BushThreadManager } from './BushThreadManager'; +import { type BushGuild, type BushMessageManager, type BushThreadManager } from '@lib'; +import { TextChannel, type AllowedThreadTypeForTextChannel } from 'discord.js'; +import { type RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; export class BushTextChannel extends TextChannel { - public declare readonly client: BushClient; public declare guild: BushGuild; public declare messages: BushMessageManager; public declare threads: BushThreadManager<AllowedThreadTypeForTextChannel>; diff --git a/src/lib/extensions/discord.js/BushThreadChannel.ts b/src/lib/extensions/discord.js/BushThreadChannel.ts index b78aff7..9319651 100644 --- a/src/lib/extensions/discord.js/BushThreadChannel.ts +++ b/src/lib/extensions/discord.js/BushThreadChannel.ts @@ -1,12 +1,14 @@ -import { Collection, Snowflake, ThreadChannel } from 'discord.js'; -import { RawThreadChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushMessageManager } from './BushMessageManager'; -import { BushNewsChannel } from './BushNewsChannel'; -import { BushTextChannel } from './BushTextChannel'; -import { BushThreadMemberManager } from './BushThreadMemberManager'; +import { + type BushClient, + type BushGuild, + type BushGuildMember, + type BushMessageManager, + type BushNewsChannel, + type BushTextChannel, + type BushThreadMemberManager +} from '@lib'; +import { ThreadChannel, type Collection, type Snowflake } from 'discord.js'; +import { type RawThreadChannelData } from 'discord.js/typings/rawDataTypes'; export class BushThreadChannel extends ThreadChannel { public declare guild: BushGuild; diff --git a/src/lib/extensions/discord.js/BushThreadManager.d.ts b/src/lib/extensions/discord.js/BushThreadManager.d.ts index 027d532..86e85a9 100644 --- a/src/lib/extensions/discord.js/BushThreadManager.d.ts +++ b/src/lib/extensions/discord.js/BushThreadManager.d.ts @@ -1,25 +1,27 @@ import { - BaseFetchOptions, - CachedManager, - FetchArchivedThreadOptions, - FetchThreadsOptions, - Snowflake, - ThreadChannelResolvable, - ThreadCreateOptions + type BushThreadChannel +} from '@lib'; +import { + CachedManager, + FetchedThreads, + NewsChannel, + TextChannel, + ThreadChannel, + type BaseFetchOptions, + type FetchArchivedThreadOptions, + type FetchThreadsOptions, + type Snowflake, + type ThreadChannelResolvable, + type ThreadCreateOptions } from 'discord.js'; -import { RawThreadChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushFetchedThreads, BushThreadChannelResolvable } from '../discord-akairo/BushClient'; -import { BushNewsChannel } from './BushNewsChannel'; -import { BushTextChannel } from './BushTextChannel'; -import { BushThreadChannel } from './BushThreadChannel'; +import { type RawThreadChannelData } from 'discord.js/typings/rawDataTypes'; export class BushThreadManager<AllowedThreadType> extends CachedManager<Snowflake, BushThreadChannel, ThreadChannelResolvable> { - public constructor(channel: BushTextChannel | BushNewsChannel, iterable?: Iterable<RawThreadChannelData>); - public declare readonly client: BushClient; - public channel: BushTextChannel | BushNewsChannel; - public create(options: ThreadCreateOptions<AllowedThreadType>): Promise<BushThreadChannel>; - public fetch(options: BushThreadChannelResolvable, cacheOptions?: BaseFetchOptions): Promise<BushThreadChannel | null>; - public fetch(options?: FetchThreadsOptions, cacheOptions?: { cache?: boolean }): Promise<BushFetchedThreads>; - public fetchArchived(options?: FetchArchivedThreadOptions, cache?: boolean): Promise<BushFetchedThreads>; - public fetchActive(cache?: boolean): Promise<BushFetchedThreads>; -} + public constructor(channel: TextChannel | NewsChannel, iterable?: Iterable<RawThreadChannelData>); + public channel: TextChannel | NewsChannel; + public create(options: ThreadCreateOptions<AllowedThreadType>): Promise<ThreadChannel>; + public fetch(options: ThreadChannelResolvable, cacheOptions?: BaseFetchOptions): Promise<ThreadChannel | null>; + public fetch(options?: FetchThreadsOptions, cacheOptions?: { cache?: boolean }): Promise<FetchedThreads>; + public fetchArchived(options?: FetchArchivedThreadOptions, cache?: boolean): Promise<FetchedThreads>; + public fetchActive(cache?: boolean): Promise<FetchedThreads>; +}
\ No newline at end of file diff --git a/src/lib/extensions/discord.js/BushThreadMember.ts b/src/lib/extensions/discord.js/BushThreadMember.ts index 10c7e84..70bd26f 100644 --- a/src/lib/extensions/discord.js/BushThreadMember.ts +++ b/src/lib/extensions/discord.js/BushThreadMember.ts @@ -1,8 +1,6 @@ +import { type BushGuildMember, type BushThreadChannel, type BushUser } from '@lib'; import { ThreadMember } from 'discord.js'; -import { RawThreadMemberData } from 'discord.js/typings/rawDataTypes'; -import { BushGuildMember } from './BushGuildMember'; -import { BushThreadChannel } from './BushThreadChannel'; -import { BushUser } from './BushUser'; +import { type RawThreadMemberData } from 'discord.js/typings/rawDataTypes'; export class BushThreadMember extends ThreadMember { public declare readonly guildMember: BushGuildMember | null; diff --git a/src/lib/extensions/discord.js/BushThreadMemberManager.d.ts b/src/lib/extensions/discord.js/BushThreadMemberManager.d.ts index cbc28de..34346aa 100644 --- a/src/lib/extensions/discord.js/BushThreadMemberManager.d.ts +++ b/src/lib/extensions/discord.js/BushThreadMemberManager.d.ts @@ -1,14 +1,20 @@ -import { CachedManager, Collection, Snowflake, ThreadChannel, ThreadMember, UserResolvable } from 'discord.js'; -import { RawThreadMemberData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushThreadMemberResolvable } from '../discord-akairo/BushClient'; -import { BushThreadChannel } from './BushThreadChannel'; -import { BushThreadMember } from './BushThreadMember'; +import { type BushClient, type BushThreadChannel, type BushThreadMember, type BushThreadMemberResolvable } from '@lib'; +import { + CachedManager, + type BaseFetchOptions, + type Collection, + type Snowflake, + type UserResolvable +} from 'discord.js'; +import { type RawThreadMemberData } from 'discord.js/typings/rawDataTypes'; export class BushThreadMemberManager extends CachedManager<Snowflake, BushThreadMember, BushThreadMemberResolvable> { public constructor(thread: BushThreadChannel, iterable?: Iterable<RawThreadMemberData>); public declare readonly client: BushClient; - public thread: ThreadChannel; + public thread: BushThreadChannel; public add(member: UserResolvable | '@me', reason?: string): Promise<Snowflake>; - public fetch(cache?: boolean): Promise<Collection<Snowflake, ThreadMember>>; + public fetch(member?: UserResolvable, options?: BaseFetchOptions): Promise<BushThreadMember>; + /** @deprecated Use `fetch(member, options)` instead. */ + public fetch(cache?: boolean): Promise<Collection<Snowflake, BushThreadMember>>; public remove(id: Snowflake | '@me', reason?: string): Promise<Snowflake>; } diff --git a/src/lib/extensions/discord.js/BushUser.ts b/src/lib/extensions/discord.js/BushUser.ts index 15a0d03..6cfe6e9 100644 --- a/src/lib/extensions/discord.js/BushUser.ts +++ b/src/lib/extensions/discord.js/BushUser.ts @@ -1,7 +1,6 @@ -import { Partialize, User } from 'discord.js'; -import { RawUserData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushDMChannel } from './BushDMChannel'; +import { type BushClient, type BushDMChannel } from '@lib'; +import { User, type Partialize } from 'discord.js'; +import { type RawUserData } from 'discord.js/typings/rawDataTypes'; export type PartialBushUser = Partialize<BushUser, 'username' | 'tag' | 'discriminator' | 'isOwner' | 'isSuperUser'>; diff --git a/src/lib/extensions/discord.js/BushUserManager.d.ts b/src/lib/extensions/discord.js/BushUserManager.d.ts index 49fc680..f3fffac 100644 --- a/src/lib/extensions/discord.js/BushUserManager.d.ts +++ b/src/lib/extensions/discord.js/BushUserManager.d.ts @@ -1,8 +1,6 @@ -import { Snowflake } from 'discord-api-types'; -import { BaseFetchOptions, CachedManager } from 'discord.js'; -import { RawUserData } from 'discord.js/typings/rawDataTypes'; -import { BushClient, BushUserResolvable } from '../discord-akairo/BushClient'; -import { BushUser } from './BushUser'; +import { type BushClient, type BushUser, type BushUserResolvable } from '@lib'; +import { CachedManager, type BaseFetchOptions, type Snowflake } from 'discord.js'; +import { type RawUserData } from 'discord.js/typings/rawDataTypes'; export class BushUserManager extends CachedManager<Snowflake, BushUser, BushUserResolvable> { public constructor(client: BushClient, iterable?: Iterable<RawUserData>); diff --git a/src/lib/extensions/discord.js/BushVoiceChannel.ts b/src/lib/extensions/discord.js/BushVoiceChannel.ts index ab0da15..15a402f 100644 --- a/src/lib/extensions/discord.js/BushVoiceChannel.ts +++ b/src/lib/extensions/discord.js/BushVoiceChannel.ts @@ -1,8 +1,6 @@ -import { Collection, Snowflake, VoiceChannel } from 'discord.js'; -import { RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; -import { BushClient } from '../discord-akairo/BushClient'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; +import { type BushClient, type BushGuild, type BushGuildMember } from '@lib'; +import { VoiceChannel, type Collection, type Snowflake } from 'discord.js'; +import { type RawGuildChannelData } from 'discord.js/typings/rawDataTypes'; export class BushVoiceChannel extends VoiceChannel { public declare readonly client: BushClient; diff --git a/src/lib/extensions/discord.js/BushVoiceState.ts b/src/lib/extensions/discord.js/BushVoiceState.ts index d9570ad..7889f3b 100644 --- a/src/lib/extensions/discord.js/BushVoiceState.ts +++ b/src/lib/extensions/discord.js/BushVoiceState.ts @@ -1,11 +1,9 @@ +import { type BushGuild, type BushGuildMember, type BushStageChannel, type BushVoiceChannel } from '@lib'; import { VoiceState } from 'discord.js'; -import { RawVoiceStateData } from 'discord.js/typings/rawDataTypes'; -import { BushGuild } from './BushGuild'; -import { BushGuildMember } from './BushGuildMember'; -import { BushStageChannel } from './BushStageChannel'; -import { BushVoiceChannel } from './BushVoiceChannel'; +import { type RawVoiceStateData } from 'discord.js/typings/rawDataTypes'; export class BushVoiceState extends VoiceState { + // public declare readonly client: BushClient; public declare readonly channel: BushVoiceChannel | BushStageChannel | null; public declare guild: BushGuild; public declare readonly member: BushGuildMember | null; |