forked from Galactic/galactic-bot
Typings
This commit is contained in:
parent
8142312546
commit
9960211eee
454
@types/Client.ts
Normal file
454
@types/Client.ts
Normal file
@ -0,0 +1,454 @@
|
|||||||
|
import { LoggerClientOptions } from '@navy.gif/logger';
|
||||||
|
import {
|
||||||
|
Partials,
|
||||||
|
GatewayIntentBits,
|
||||||
|
Snowflake,
|
||||||
|
User,
|
||||||
|
ApplicationCommandType,
|
||||||
|
GuildMember,
|
||||||
|
Role,
|
||||||
|
BaseChannel,
|
||||||
|
TextChannel,
|
||||||
|
PermissionsString,
|
||||||
|
Channel,
|
||||||
|
APIEmbed,
|
||||||
|
OverwriteType,
|
||||||
|
Awaitable,
|
||||||
|
Message,
|
||||||
|
If,
|
||||||
|
GuildBan,
|
||||||
|
ThreadChannel,
|
||||||
|
APIEmbedField,
|
||||||
|
VoiceState,
|
||||||
|
Invite
|
||||||
|
} from 'discord.js';
|
||||||
|
import { InvokerWrapper, MemberWrapper, UserWrapper } from '../src/client/components/wrappers/index.js';
|
||||||
|
import GuildWrapper from '../src/client/components/wrappers/GuildWrapper.js';
|
||||||
|
import DiscordClient from '../src/client/DiscordClient.js';
|
||||||
|
import { CommandOption, Inhibitor } from '../src/client/interfaces/index.js';
|
||||||
|
import { MuteType } from './Settings.js';
|
||||||
|
import { ClientEvents } from './Events.js';
|
||||||
|
import { FilterResult } from './Utils.js';
|
||||||
|
import { GuildSettingTypes } from './Guild.js';
|
||||||
|
import { StorageManagerOptions } from './Storage.js';
|
||||||
|
|
||||||
|
export type ManagerEvalOptions = {
|
||||||
|
context?: object,
|
||||||
|
debug?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type DiscordStruct = {
|
||||||
|
id: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type FormatParams = {
|
||||||
|
[key: string]: string | number | boolean | undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
export type FormatOpts = {
|
||||||
|
code?: boolean,
|
||||||
|
language?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ClientOptions = {
|
||||||
|
rootDir: string,
|
||||||
|
prefix?: string,
|
||||||
|
developers?: string[],
|
||||||
|
developmentMode?: boolean,
|
||||||
|
invite: string,
|
||||||
|
slashCommands?: {
|
||||||
|
developerGuilds: string[]
|
||||||
|
},
|
||||||
|
libraryOptions: {
|
||||||
|
partials?: Partials[],
|
||||||
|
intents: GatewayIntentBits[],
|
||||||
|
invalidRequestWarningInterval?: number
|
||||||
|
},
|
||||||
|
storage: StorageManagerOptions,
|
||||||
|
logger: LoggerClientOptions
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ComponentType = 'command' | 'module' | 'observer' | 'inhibitor' | 'setting'
|
||||||
|
export type ComponentOptions = {
|
||||||
|
id: string,
|
||||||
|
type: ComponentType,
|
||||||
|
module?: string,
|
||||||
|
guarded?: boolean,
|
||||||
|
disabled?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ModuleOptions = {
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// type ComponentUpdate = (opts: { component: Component, type: 'ENABLE' | 'DISABLE' }) => void;
|
||||||
|
// export type EventHook = (...args: ClientEvents[keyof ClientEvents]) => Promise<void> | void // ((...args: unknown[]) => void) | ComponentUpdate;
|
||||||
|
export type EventHook<K extends keyof ClientEvents> = (...args: ClientEvents[K]) => Awaitable<unknown>;
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
|
export type GenericEventHook = (...args: any[]) => Awaitable<unknown>;
|
||||||
|
|
||||||
|
export type Hooks = [keyof ClientEvents, GenericEventHook][];
|
||||||
|
export type ObserverOptions = {
|
||||||
|
name?: string,
|
||||||
|
priority?: number,
|
||||||
|
hooks?: Hooks,
|
||||||
|
} & Partial<ComponentOptions>
|
||||||
|
|
||||||
|
export type InhibitorOptions = {
|
||||||
|
name?: string,
|
||||||
|
guild?: boolean
|
||||||
|
priority?: number,
|
||||||
|
silent?: boolean
|
||||||
|
} & Partial<ComponentOptions>
|
||||||
|
|
||||||
|
export type InhibitorResponse<T extends boolean = boolean> = {
|
||||||
|
error: T,
|
||||||
|
inhibitor: Inhibitor,
|
||||||
|
params: If<T, FormatParams>,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InfractionType =
|
||||||
|
| 'ADDROLE'
|
||||||
|
| 'BAN'
|
||||||
|
| 'KICK'
|
||||||
|
| 'LOCKDOWN'
|
||||||
|
| 'MUTE'
|
||||||
|
| 'NICKNAME'
|
||||||
|
| 'NOTE'
|
||||||
|
| 'PRUNE'
|
||||||
|
| 'REMOVEROLE'
|
||||||
|
| 'SLOWMODE'
|
||||||
|
| 'SOFTBAN'
|
||||||
|
| 'UNBAN'
|
||||||
|
| 'UNLOCKDOWN'
|
||||||
|
| 'UNMUTE'
|
||||||
|
| 'VCKICK'
|
||||||
|
| 'VCMUTE'
|
||||||
|
| 'VCUNMUTE'
|
||||||
|
| 'VCBAN'
|
||||||
|
| 'VCUNBAN'
|
||||||
|
| 'WARN'
|
||||||
|
| 'DELETE';
|
||||||
|
|
||||||
|
export enum CommandOptionType {
|
||||||
|
SUB_COMMAND = 1,
|
||||||
|
SUB_COMMAND_GROUP = 2,
|
||||||
|
ROLES = 3, // Note plurality, strings can parse users, roles, and channels.
|
||||||
|
MEMBERS = 3,
|
||||||
|
USERS = 3,
|
||||||
|
CHANNELS = 3,
|
||||||
|
TEXT_CHANNELS = 3,
|
||||||
|
VOICE_CHANNELS = 3,
|
||||||
|
TIME = 3, // timestring
|
||||||
|
DATE = 3,
|
||||||
|
COMPONENT = 3,
|
||||||
|
COMPONENTS = 3,
|
||||||
|
COMMAND = 3,
|
||||||
|
COMMANDS = 3,
|
||||||
|
MODULE = 3,
|
||||||
|
STRING = 3,
|
||||||
|
INTEGER = 4,
|
||||||
|
BOOLEAN = 5,
|
||||||
|
MEMBER = 6,
|
||||||
|
USER = 6,
|
||||||
|
TEXT_CHANNEL = 7,
|
||||||
|
VOICE_CHANNEL = 7,
|
||||||
|
CHANNEL = 7,
|
||||||
|
ROLE = 8,
|
||||||
|
MENTIONABLE = 9,
|
||||||
|
NUMBER = 10,
|
||||||
|
FLOAT = 10,
|
||||||
|
POINTS = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum ChannelTypes {
|
||||||
|
TEXT_CHANNEL = 0,
|
||||||
|
VOICE_CHANNEL = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
type CommandOptionChoice = {
|
||||||
|
name: string,
|
||||||
|
value: unknown
|
||||||
|
}
|
||||||
|
export type CommandOptionChoices = CommandOptionChoice[]
|
||||||
|
export type DependsOnMode = 'OR' | 'AND'
|
||||||
|
|
||||||
|
export type RawCommandOption = {
|
||||||
|
name: string,
|
||||||
|
type: CommandOptionType,
|
||||||
|
options: RawCommandOption[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CommandOptionShape = {
|
||||||
|
name: string,
|
||||||
|
description: string,
|
||||||
|
type: number,
|
||||||
|
required: boolean,
|
||||||
|
choices: CommandOptionChoice[],
|
||||||
|
options: CommandOptionShape[],
|
||||||
|
min_value?: number,
|
||||||
|
max_value?: number,
|
||||||
|
channel_types: number[] | null,
|
||||||
|
autocomplete: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CommandOptionParams = {
|
||||||
|
client?: DiscordClient,
|
||||||
|
guild?: GuildWrapper | null,
|
||||||
|
|
||||||
|
name: string | string[],
|
||||||
|
description?: string | string[]
|
||||||
|
type?: CommandOptionType | CommandOptionType[],
|
||||||
|
|
||||||
|
required?: boolean,
|
||||||
|
autocomplete?: boolean,
|
||||||
|
strict?: boolean,
|
||||||
|
showUsage?: boolean
|
||||||
|
|
||||||
|
choices?: CommandOptionChoices,
|
||||||
|
options?: CommandOptionParams[],
|
||||||
|
|
||||||
|
dependsOn?: string[],
|
||||||
|
dependsOnMode?: DependsOnMode,
|
||||||
|
|
||||||
|
minimum?: number,
|
||||||
|
maximum?: number,
|
||||||
|
// min?: number,
|
||||||
|
// max?: number,
|
||||||
|
|
||||||
|
slashOption?: boolean,
|
||||||
|
flag?: boolean,
|
||||||
|
valueOptional?: boolean,
|
||||||
|
valueAsAlias?: boolean,
|
||||||
|
|
||||||
|
value?: unknown,
|
||||||
|
defaultValue?: unknown,
|
||||||
|
rawValue?: string | string[] | null,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CommandOptions = {
|
||||||
|
name?: string,
|
||||||
|
description?: string,
|
||||||
|
tags?: string[],
|
||||||
|
aliases?: string[],
|
||||||
|
restricted?: boolean,
|
||||||
|
showUsage?: boolean,
|
||||||
|
guildOnly?: boolean,
|
||||||
|
archivable?: boolean
|
||||||
|
slash?: boolean,
|
||||||
|
clientPermissions?: PermissionsString[],
|
||||||
|
memberPermissions?: PermissionsString[],
|
||||||
|
options?: CommandOptionParams[],
|
||||||
|
module?: string
|
||||||
|
} & Partial<ComponentOptions>
|
||||||
|
|
||||||
|
export type CommandParams = { [key: string]: CommandOption | undefined }
|
||||||
|
|
||||||
|
export type SettingActionType = InfractionType | ''
|
||||||
|
export type SettingAction = {
|
||||||
|
[key: string]: unknown
|
||||||
|
type: SettingActionType,
|
||||||
|
duration: number | null,
|
||||||
|
points: number | null,
|
||||||
|
expiration: number | null,
|
||||||
|
force: boolean,
|
||||||
|
prune: boolean,
|
||||||
|
trigger: string | string[] | number
|
||||||
|
}
|
||||||
|
export type SettingMethod = 'add' | 'remove' | 'edit' | 'list' | 'reset'
|
||||||
|
export type SettingTypeResolve = 'USER' | 'GUILD';
|
||||||
|
export type SettingEmojiOption = {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
export type SettingApiDefinitions = {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
export type BaseSetting = object
|
||||||
|
export type SettingOptions = {
|
||||||
|
name?: string,
|
||||||
|
resolve?: SettingTypeResolve,
|
||||||
|
description?: string,
|
||||||
|
display?: string,
|
||||||
|
emoji?: SettingEmojiOption,
|
||||||
|
default?: GuildSettingTypes
|
||||||
|
definitions?: SettingApiDefinitions,
|
||||||
|
commandOptions?: CommandOptionParams[],
|
||||||
|
commandType?: CommandOptionType,
|
||||||
|
clientPermissions?: PermissionsString[],
|
||||||
|
memberPermissions?: PermissionsString[],
|
||||||
|
premium?: number
|
||||||
|
} & Partial<ComponentOptions>
|
||||||
|
|
||||||
|
export type FilterSettingHelperResponse = {
|
||||||
|
error: true,
|
||||||
|
index?: string,
|
||||||
|
content?: string,
|
||||||
|
embeds?: APIEmbed[],
|
||||||
|
params?: FormatParams
|
||||||
|
} | { content: string, error?: false };
|
||||||
|
|
||||||
|
export type SlashCommandOptions = {
|
||||||
|
commandType?: ApplicationCommandType
|
||||||
|
} & CommandOptions;
|
||||||
|
|
||||||
|
export type InfractionTargetType = 'USER' | 'CHANNEL';
|
||||||
|
|
||||||
|
export type InfractionArguments = {
|
||||||
|
[key: string]: CommandOption | undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
export type AdditionalInfractionData = {
|
||||||
|
muteType?: MuteType,
|
||||||
|
roles?: Role[]
|
||||||
|
roleIds?: Snowflake[],
|
||||||
|
roleNames?: string[],
|
||||||
|
oldPermissions?: {
|
||||||
|
[key: string]: {
|
||||||
|
type: OverwriteType,
|
||||||
|
permissions: {
|
||||||
|
SendMessages: boolean | null,
|
||||||
|
AddReactions: boolean | null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dehoist?: boolean,
|
||||||
|
oldName?: string,
|
||||||
|
name?: string,
|
||||||
|
removedRoles?: Snowflake[] | null,
|
||||||
|
muteRole?: Snowflake | null,
|
||||||
|
amount?: number,
|
||||||
|
message?: Snowflake,
|
||||||
|
seconds?: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InfractionFlags = {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InfractionChangeType =
|
||||||
|
| 'UNRESOLVE'
|
||||||
|
| 'RESOLVE'
|
||||||
|
| 'DURATION'
|
||||||
|
| 'EXPIRATION'
|
||||||
|
| 'POINTS'
|
||||||
|
| 'REASON'
|
||||||
|
|
||||||
|
export type InfractionChange = {
|
||||||
|
type: InfractionChangeType,
|
||||||
|
staff: string,
|
||||||
|
timestamp: number,
|
||||||
|
duration?: number | null,
|
||||||
|
reason?: string,
|
||||||
|
expiration?: number | null,
|
||||||
|
points?: number | null
|
||||||
|
}
|
||||||
|
|
||||||
|
export type BaseInfractionData = {
|
||||||
|
_id?: string,
|
||||||
|
type?: InfractionType,
|
||||||
|
case?: number,
|
||||||
|
arguments?: InfractionArguments,
|
||||||
|
targetType?: InfractionTargetType,
|
||||||
|
guild: GuildWrapper,
|
||||||
|
channel?: TextChannel,
|
||||||
|
invoker?: InvokerWrapper | null,
|
||||||
|
target?: MemberWrapper | UserWrapper | TextChannel,
|
||||||
|
executor?: MemberWrapper | UserWrapper
|
||||||
|
duration?: number | null,
|
||||||
|
reason?: string,
|
||||||
|
silent?: boolean,
|
||||||
|
points?: number,
|
||||||
|
expiration?: number,
|
||||||
|
data?: AdditionalInfractionData,
|
||||||
|
hyperlink?: string | null,
|
||||||
|
_callbacked?: boolean,
|
||||||
|
fetched?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InfractionJSON = {
|
||||||
|
id: string,
|
||||||
|
type: InfractionType,
|
||||||
|
case: number,
|
||||||
|
targetType: InfractionTargetType,
|
||||||
|
guild: Snowflake,
|
||||||
|
channel: Snowflake,
|
||||||
|
channelName: string,
|
||||||
|
target: Snowflake,
|
||||||
|
targetTag: string,
|
||||||
|
executor: Snowflake,
|
||||||
|
executorTag: string,
|
||||||
|
duration: number,
|
||||||
|
reason: string,
|
||||||
|
points: number,
|
||||||
|
expiration: number,
|
||||||
|
data: AdditionalInfractionData,
|
||||||
|
callback: number | null,
|
||||||
|
_callbacked?: boolean | null,
|
||||||
|
timestamp: number,
|
||||||
|
resolved: boolean,
|
||||||
|
changes: InfractionChange[],
|
||||||
|
flags: InfractionFlags,
|
||||||
|
modLogMessage: Snowflake,
|
||||||
|
modLogChannel: Snowflake
|
||||||
|
dmLogMessage: Snowflake,
|
||||||
|
message: Snowflake,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ModerationCallback = {
|
||||||
|
infraction: InfractionJSON,
|
||||||
|
timeout: NodeJS.Timeout
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InfractionData = {
|
||||||
|
//
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type MemberResolveable = Snowflake | GuildMember | MemberWrapper | User | UserWrapper | string;
|
||||||
|
export type UserResolveable = Snowflake | User | UserWrapper | MemberWrapper | GuildMember | string;
|
||||||
|
export type RoleResolveable = Snowflake | Role | string;
|
||||||
|
export type ChannelResolveable = Snowflake | BaseChannel | string;
|
||||||
|
// type Resolveable = MemberResolveable | UserResolveable | RoleResolveable | ChannelResolveable
|
||||||
|
|
||||||
|
export type MemberResolverFunction = (r: MemberResolveable, s: boolean, g: GuildWrapper | null) => Promise<GuildMember | null>
|
||||||
|
export type UserResolverFunction = (r: UserResolveable, s: boolean, g: GuildWrapper | null) => Promise<User | null>
|
||||||
|
export type RoleResolverFunction = (r: RoleResolveable, s: boolean, g: GuildWrapper | null) => Promise<Role | null>
|
||||||
|
export type ChannelResolverFunction = (r: ChannelResolveable, s: boolean, g: GuildWrapper | null) => Promise<Channel | null>
|
||||||
|
export type ResolverFunction =
|
||||||
|
| MemberResolverFunction
|
||||||
|
| UserResolverFunction
|
||||||
|
| RoleResolverFunction
|
||||||
|
| ChannelResolverFunction
|
||||||
|
|
||||||
|
export declare interface ExtendedMessage<InGuild extends boolean = boolean> extends Message<InGuild> {
|
||||||
|
guildWrapper: If<InGuild, GuildWrapper>;
|
||||||
|
filtered?: FilterResult
|
||||||
|
}
|
||||||
|
|
||||||
|
export declare interface ExtendedGuildBan extends GuildBan {
|
||||||
|
guildWrapper: GuildWrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
export declare interface ExtendedGuildMember extends GuildMember {
|
||||||
|
guildWrapper: GuildWrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
export declare interface ExtendedThreadChannel extends ThreadChannel {
|
||||||
|
guildWrapper: GuildWrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
export declare interface ExtendedAPIEmbedField extends APIEmbedField
|
||||||
|
{
|
||||||
|
_attachment?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export declare interface ExtendedAPIEmbed extends APIEmbed {
|
||||||
|
fields: ExtendedAPIEmbedField[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export declare interface ExtendedVoiceState extends VoiceState {
|
||||||
|
guildWrapper: GuildWrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
export declare interface ExtendedInvite extends Invite {
|
||||||
|
guildWrapper?: GuildWrapper
|
||||||
|
}
|
7
@types/Commands/Moderation.d.ts
vendored
Normal file
7
@types/Commands/Moderation.d.ts
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import { SlashCommandOptions } from '../Client.js';
|
||||||
|
|
||||||
|
export type ModerationCommandOptions = {
|
||||||
|
skipOptions?: string[],
|
||||||
|
overrideOptions?: boolean,
|
||||||
|
|
||||||
|
} & SlashCommandOptions
|
16
@types/Commands/Settings.ts
Normal file
16
@types/Commands/Settings.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { SlashCommandOptions } from '../Client.js';
|
||||||
|
import { ReplyOptions } from '../Wrappers.js';
|
||||||
|
|
||||||
|
export type SettingsCommandOptions = {
|
||||||
|
//
|
||||||
|
} & SlashCommandOptions
|
||||||
|
|
||||||
|
export type SettingResult = {
|
||||||
|
error?: boolean,
|
||||||
|
} & ReplyOptions
|
||||||
|
|
||||||
|
export type SettingModifyResult<T> = {
|
||||||
|
list: T[],
|
||||||
|
modified: T[],
|
||||||
|
skipped?: T[],
|
||||||
|
}
|
48
@types/Controller.d.ts
vendored
Normal file
48
@types/Controller.d.ts
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import { LoggerMasterOptions, LoggerClientOptions } from '@navy.gif/logger';
|
||||||
|
import { ClientOptions } from './Client.ts';
|
||||||
|
import { StorageManagerOptions } from './Storage.js';
|
||||||
|
|
||||||
|
// export type ClientOptions = {
|
||||||
|
// prefix: string,
|
||||||
|
// developers: string[],
|
||||||
|
// developmentMode: boolean,
|
||||||
|
// invite: string,
|
||||||
|
|
||||||
|
// slashCommands: {
|
||||||
|
// developerGuilds: string[]
|
||||||
|
// },
|
||||||
|
// libraryOptions: {
|
||||||
|
// partials: string[],
|
||||||
|
// intents: string[],
|
||||||
|
// invalidRequestWarningInterval: number
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
export type ControllerOptions = {
|
||||||
|
rootDir: string,
|
||||||
|
logger: LoggerMasterOptions,
|
||||||
|
shardOptions: {
|
||||||
|
totalShards: 'auto' | number,
|
||||||
|
shardList?: 'auto' | number[]
|
||||||
|
respawn?: boolean,
|
||||||
|
},
|
||||||
|
discord: ClientOptions,
|
||||||
|
storage: StorageManagerOptions,
|
||||||
|
api: {
|
||||||
|
load: boolean,
|
||||||
|
domain: string,
|
||||||
|
authCallback: string,
|
||||||
|
dashboardUrl: string,
|
||||||
|
logger: LoggerClientOptions,
|
||||||
|
debug: boolean,
|
||||||
|
shardCount: number,
|
||||||
|
|
||||||
|
discord: {
|
||||||
|
scope: string[],
|
||||||
|
token: string
|
||||||
|
}
|
||||||
|
http: {
|
||||||
|
port: number
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
23
@types/Events.d.ts
vendored
Normal file
23
@types/Events.d.ts
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { Component } from '../src/client/interfaces/index.ts';
|
||||||
|
import { ClientEvents as CE, InvalidRequestWarningData, RateLimitData, ResponseLike } from 'discord.js';
|
||||||
|
import { ExtendedGuildBan, ExtendedMessage } from './Client.ts';
|
||||||
|
import { APIRequest } from '@discordjs/rest';
|
||||||
|
import { AutomodErrorProps, LinkFilterWarnProps, LogErrorProps, MissingPermsProps, UtilityErrorProps, WordWatcherErrorProps } from './Moderation.js';
|
||||||
|
|
||||||
|
type ComponentUpdate = { component: Component, type: 'ENABLE' | 'DISABLE' | 'LOAD' | 'UNLOAD' | 'RELOAD' }
|
||||||
|
export interface ClientEvents extends CE {
|
||||||
|
componentUpdate: [data: ComponentUpdate],
|
||||||
|
rateLimit: [rateLimitInfo: RateLimitData];
|
||||||
|
invalidRequestWarning: [invalidRequestInfo: InvalidRequestWarningData];
|
||||||
|
built: [];
|
||||||
|
messageCreate: [message: ExtendedMessage];
|
||||||
|
apiResponse: [APIRequest, ResponseLike];
|
||||||
|
guildBanAdd: [ExtendedGuildBan];
|
||||||
|
guildBanRemove: [ExtendedGuildBan];
|
||||||
|
automodError: [AutomodErrorProps];
|
||||||
|
wordWatcherError: [WordWatcherErrorProps];
|
||||||
|
logError: [LogErrorProps];
|
||||||
|
utilityError: [UtilityErrorProps];
|
||||||
|
linkFilterWarn: [LinkFilterWarnProps];
|
||||||
|
filterMissingPermissions: [MissingPermsProps];
|
||||||
|
}
|
206
@types/Guild.d.ts
vendored
Normal file
206
@types/Guild.d.ts
vendored
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
import { ChannelType, Snowflake } from 'discord.js';
|
||||||
|
import {
|
||||||
|
AutomodSettings,
|
||||||
|
AutoroleSettings,
|
||||||
|
CommandSettings,
|
||||||
|
DMInfractionSettings,
|
||||||
|
ErrorLogSettings,
|
||||||
|
GrantableSettings,
|
||||||
|
IgnoreSettings,
|
||||||
|
IndexingSettings,
|
||||||
|
InviteFilterSettings,
|
||||||
|
LinkfilterSettings,
|
||||||
|
LocaleSettings,
|
||||||
|
MemberLogSettings,
|
||||||
|
MentionFilterSettings,
|
||||||
|
MessagesSettings,
|
||||||
|
ModerationPointsSettings,
|
||||||
|
ModerationSettings,
|
||||||
|
MuteSettings,
|
||||||
|
NicknameLogSettings,
|
||||||
|
PermissionSettings,
|
||||||
|
ProtectionSettings,
|
||||||
|
RaidprotectionSettings,
|
||||||
|
SelfroleSettings,
|
||||||
|
SilenceSettings,
|
||||||
|
StaffSettings,
|
||||||
|
StickyRoleSettings,
|
||||||
|
TextCommandsSettings,
|
||||||
|
VoiceSettings,
|
||||||
|
WelcomerSettings,
|
||||||
|
WordFilterSettings,
|
||||||
|
WordWatcherSettings
|
||||||
|
} from './Settings.js';
|
||||||
|
import { ObjectId } from 'mongodb';
|
||||||
|
|
||||||
|
export type GuildSettingTypes =
|
||||||
|
| AutomodSettings
|
||||||
|
| AutoroleSettings
|
||||||
|
| CommandSettings
|
||||||
|
| DMInfractionSettings
|
||||||
|
| ErrorLogSettings
|
||||||
|
| GrantableSettings
|
||||||
|
| IgnoreSettings
|
||||||
|
| IndexingSettings
|
||||||
|
| InviteFilterSettings
|
||||||
|
| LinkfilterSettings
|
||||||
|
| MemberLogSettings
|
||||||
|
| MentionFilterSettings
|
||||||
|
| MessagesSettings
|
||||||
|
| ModerationPointsSettings
|
||||||
|
| ModerationSettings
|
||||||
|
| MuteSettings
|
||||||
|
| NicknameLogSettings
|
||||||
|
| PermissionSettings
|
||||||
|
| ProtectionSettings
|
||||||
|
| SelfroleSettings
|
||||||
|
| SilenceSettings
|
||||||
|
| StaffSettings
|
||||||
|
| StickyRoleSettings
|
||||||
|
| TextCommandsSettings
|
||||||
|
| VoiceSettings
|
||||||
|
| WelcomerSettings
|
||||||
|
| WordFilterSettings
|
||||||
|
| WordWatcherSettings
|
||||||
|
| LocaleSettings
|
||||||
|
|
||||||
|
export type PartialGuildSettings = Partial<GuildSettings>
|
||||||
|
// {
|
||||||
|
// [key: string]: unknown
|
||||||
|
// }
|
||||||
|
|
||||||
|
export type GuildSettings = {
|
||||||
|
[key: string]: GuildSettingTypes,
|
||||||
|
locale: LocaleSettings,
|
||||||
|
textcommands: TextCommandsSettings,
|
||||||
|
wordfilter: WordFilterSettings
|
||||||
|
moderation: ModerationSettings,
|
||||||
|
dminfraction: DMInfractionSettings,
|
||||||
|
protection: ProtectionSettings,
|
||||||
|
modpoints: ModerationPointsSettings,
|
||||||
|
automod: AutomodSettings,
|
||||||
|
permissions: PermissionSettings,
|
||||||
|
grantable: GrantableSettings,
|
||||||
|
mute: MuteSettings,
|
||||||
|
silent: SilenceSettings,
|
||||||
|
ignore: IgnoreSettings,
|
||||||
|
commands: CommandSettings,
|
||||||
|
indexing: IndexingSettings,
|
||||||
|
errors: ErrorLogSettings,
|
||||||
|
messages: MessagesSettings,
|
||||||
|
staff: StaffSettings,
|
||||||
|
voice: VoiceSettings,
|
||||||
|
selfrole: SelfroleSettings,
|
||||||
|
members: MemberLogSettings,
|
||||||
|
nicknames: NicknameLogSettings,
|
||||||
|
stickyrole: StickyRoleSettings,
|
||||||
|
autorole: AutoroleSettings,
|
||||||
|
welcomer: WelcomerSettings,
|
||||||
|
wordwatcher: WordWatcherSettings,
|
||||||
|
linkfilter: LinkfilterSettings,
|
||||||
|
invitefilter: InviteFilterSettings,
|
||||||
|
mentionfilter: MentionFilterSettings,
|
||||||
|
raidprotection: RaidprotectionSettings,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type PermissionSet = {
|
||||||
|
global: string[],
|
||||||
|
channels: {
|
||||||
|
[id: Snowflake]: string[]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export type GuildPermissions = {
|
||||||
|
guildId: Snowflake,
|
||||||
|
[roleId: Snowflake]: PermissionSet | Snowflake
|
||||||
|
}
|
||||||
|
|
||||||
|
export type GuildData = {
|
||||||
|
[key: string]: unknown
|
||||||
|
caseId?: number,
|
||||||
|
settings?: GuildSettings,
|
||||||
|
premium?: number,
|
||||||
|
_version?: string,
|
||||||
|
_imported?: {
|
||||||
|
[key: string]: boolean | undefined,
|
||||||
|
modlogs?: boolean,
|
||||||
|
settings?: boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CallbackData = {
|
||||||
|
type: string,
|
||||||
|
created: number,
|
||||||
|
time: number,
|
||||||
|
id: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type PollData = {
|
||||||
|
user: string,
|
||||||
|
duration: number,
|
||||||
|
message: string,
|
||||||
|
channel: string,
|
||||||
|
startedIn: string,
|
||||||
|
questions: string[],
|
||||||
|
multiChoice?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ReminderData = {
|
||||||
|
user: string,
|
||||||
|
channel: string,
|
||||||
|
reminder: string,
|
||||||
|
time: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ChannelJSON = {
|
||||||
|
id: Snowflake,
|
||||||
|
type: ChannelType,
|
||||||
|
name: string,
|
||||||
|
parent: Snowflake | null
|
||||||
|
}
|
||||||
|
|
||||||
|
export type RoleJSON = {
|
||||||
|
id: Snowflake,
|
||||||
|
name: string,
|
||||||
|
position: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type GuildJSON = {
|
||||||
|
channels: ChannelJSON[],
|
||||||
|
roles: RoleJSON[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type AttachmentData = {
|
||||||
|
size: number,
|
||||||
|
attachmentId: string,
|
||||||
|
name: string,
|
||||||
|
index: ObjectId,
|
||||||
|
id: string,
|
||||||
|
extension: string,
|
||||||
|
buffer: { buffer: Buffer }
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MessageLogEntry = {
|
||||||
|
attachments: AttachmentData[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type RoleCacheEntry = {
|
||||||
|
member: string,
|
||||||
|
guild: string,
|
||||||
|
roles: string[],
|
||||||
|
timestamp: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export type WordWatcherEntry = {
|
||||||
|
message: string,
|
||||||
|
target: string,
|
||||||
|
channel: string,
|
||||||
|
timestamp: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export type WebhookEntry = {
|
||||||
|
feature: string,
|
||||||
|
guild: string,
|
||||||
|
hookId: string,
|
||||||
|
token: string
|
||||||
|
}
|
100
@types/Infractions.d.ts
vendored
Normal file
100
@types/Infractions.d.ts
vendored
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
import { GuildTextBasedChannel } from 'discord.js';
|
||||||
|
import { MemberWrapper } from '../src/client/components/wrappers/index.ts';
|
||||||
|
import { BaseInfractionData } from './Client.ts';
|
||||||
|
import { Infraction } from '../src/client/interfaces/index.ts';
|
||||||
|
|
||||||
|
export type ResolveResult = {
|
||||||
|
result?: void,
|
||||||
|
message?: string | null,
|
||||||
|
error?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InfractionFail = {
|
||||||
|
error: true,
|
||||||
|
infraction: Infraction,
|
||||||
|
reason: string,
|
||||||
|
fatal: boolean,
|
||||||
|
formatted: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InfractionSuccess = {
|
||||||
|
error: false,
|
||||||
|
infraction: Infraction
|
||||||
|
}
|
||||||
|
|
||||||
|
export type AddRoleData = {
|
||||||
|
target: MemberWrapper,
|
||||||
|
executor: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type BanData = {
|
||||||
|
executor: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type KickData = {
|
||||||
|
target: MemberWrapper,
|
||||||
|
executor: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type LockdownData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: GuildTextBasedChannel
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type MuteData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type NicknameData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type NoteData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type PruneData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: GuildTextBasedChannel
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type RemoveRoleData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type SlowmodeData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: GuildTextBasedChannel
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type UnbanData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type SoftbanData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type UnlockdownData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: GuildTextBasedChannel
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type UnmuteData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type VcKickData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
||||||
|
|
||||||
|
export type WarnData = {
|
||||||
|
executor: MemberWrapper,
|
||||||
|
target: MemberWrapper
|
||||||
|
} & BaseInfractionData
|
91
@types/Moderation.d.ts
vendored
Normal file
91
@types/Moderation.d.ts
vendored
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
import { GuildBasedChannel, Message, TextChannel } from 'discord.js';
|
||||||
|
import { GuildWrapper, InvokerWrapper, MemberWrapper, UserWrapper } from '../src/client/components/wrappers/index.ts';
|
||||||
|
import { CommandOption, Infraction } from '../src/client/interfaces/index.ts';
|
||||||
|
import { FormatParams, InfractionType } from './Client.ts';
|
||||||
|
|
||||||
|
export type ModerationTarget = UserWrapper | MemberWrapper | TextChannel
|
||||||
|
export type ModerationTargets = ModerationTarget[]
|
||||||
|
|
||||||
|
export type InfractionHandlerOptions = {
|
||||||
|
targets: ModerationTargets,
|
||||||
|
args: { [key: string]: CommandOption | undefined },
|
||||||
|
data?: object
|
||||||
|
}
|
||||||
|
|
||||||
|
export type HandleAutomodOptions = {
|
||||||
|
prune: boolean,
|
||||||
|
channel: TextChannel
|
||||||
|
}
|
||||||
|
|
||||||
|
export type HandleTargetData = {
|
||||||
|
reason?: string,
|
||||||
|
force: boolean,
|
||||||
|
guild: GuildWrapper,
|
||||||
|
points?: number | null,
|
||||||
|
expiration?: number | null,
|
||||||
|
invoker?: InvokerWrapper,
|
||||||
|
arguments?: { [key: string]: CommandOption | undefined },
|
||||||
|
channel: TextChannel,
|
||||||
|
executor: MemberWrapper,
|
||||||
|
duration?: number | null,
|
||||||
|
data: object,
|
||||||
|
silent: boolean,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EscalationResult = {
|
||||||
|
threshold: number,
|
||||||
|
type: InfractionType,
|
||||||
|
length: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// export type AutomodAction = {
|
||||||
|
// points: number | undefined;
|
||||||
|
// expiration: number | undefined;
|
||||||
|
// prune: boolean;
|
||||||
|
// type: string,
|
||||||
|
// trigger: string | number,
|
||||||
|
// duration: number | null
|
||||||
|
// }
|
||||||
|
|
||||||
|
export type AutomodErrorProps = {
|
||||||
|
fatal: boolean,
|
||||||
|
reason: string,
|
||||||
|
infraction: Infraction
|
||||||
|
}
|
||||||
|
|
||||||
|
export type WordWatcherErrorProps = {
|
||||||
|
message: Message,
|
||||||
|
guild: GuildWrapper,
|
||||||
|
warning: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type LogErrorProps = {
|
||||||
|
guild: GuildWrapper,
|
||||||
|
reason: string,
|
||||||
|
params: FormatParams,
|
||||||
|
logger: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UtilityErrorProps = {
|
||||||
|
guild: GuildWrapper,
|
||||||
|
reason: string,
|
||||||
|
params: FormatParams,
|
||||||
|
utility: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type LinkFilterWarnProps = {
|
||||||
|
guild: GuildWrapper,
|
||||||
|
message: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MissingPermsProps = {
|
||||||
|
guild: GuildWrapper,
|
||||||
|
filter: string,
|
||||||
|
permissions: string[],
|
||||||
|
channel: GuildBasedChannel
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InfractionEditResult = {
|
||||||
|
error: true,
|
||||||
|
index: string
|
||||||
|
} | undefined;
|
195
@types/Settings.ts
Normal file
195
@types/Settings.ts
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
import { Snowflake } from 'discord.js';
|
||||||
|
import { InfractionType, SettingAction } from './Client.js';
|
||||||
|
|
||||||
|
export type UserSettings = {
|
||||||
|
prefix?: string,
|
||||||
|
locale?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Setting = {
|
||||||
|
[key: string]: any
|
||||||
|
enabled: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type TextCommandsSettings = {
|
||||||
|
prefix: string,
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type FilterSetting = {
|
||||||
|
bypass: string[],
|
||||||
|
whitelist: string[],
|
||||||
|
ignore: string[],
|
||||||
|
silent: boolean,
|
||||||
|
actions: SettingAction[]
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type WordFilterSettings = {
|
||||||
|
explicit: string[],
|
||||||
|
fuzzy: string[],
|
||||||
|
regex: string[],
|
||||||
|
} & FilterSetting
|
||||||
|
|
||||||
|
export type ModerationSettings = {
|
||||||
|
channel: Snowflake | null,
|
||||||
|
infractions: InfractionType[],
|
||||||
|
anonymous: boolean,
|
||||||
|
enabled: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type DMInfractionSettings = {
|
||||||
|
anonymous: boolean,
|
||||||
|
infractions: InfractionType[],
|
||||||
|
messages: {
|
||||||
|
[key: string]: string
|
||||||
|
}
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type ProtectionType = 'position' | 'role'
|
||||||
|
export type ProtectionSettings = {
|
||||||
|
type: ProtectionType,
|
||||||
|
roles: Snowflake[]
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type ModerationPointsSettings = {
|
||||||
|
points: { [key in InfractionType]: number },
|
||||||
|
expirations: { [key in InfractionType]: number },
|
||||||
|
associations: { [key: string]: number },
|
||||||
|
multiplier: boolean
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type AutomodSettings = {
|
||||||
|
usePrevious: boolean;
|
||||||
|
thresholds: {
|
||||||
|
[key: number]: {
|
||||||
|
type?: InfractionType,
|
||||||
|
length?: number
|
||||||
|
}
|
||||||
|
},
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type PermissionType = 'discord' | 'grant' | 'both';
|
||||||
|
export type PermissionSettings = {
|
||||||
|
type: PermissionType
|
||||||
|
}
|
||||||
|
|
||||||
|
export type GrantableSettings = {
|
||||||
|
roles: Snowflake[]
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
// export type MuteType = 1 | 2 | 3;
|
||||||
|
export enum MuteType {
|
||||||
|
Add = 0,
|
||||||
|
Replace = 1,
|
||||||
|
Remove = 2,
|
||||||
|
Timeout = 3
|
||||||
|
}
|
||||||
|
export type MuteSettings = {
|
||||||
|
[key: string]: any// MuteType | Snowflake | number | boolean | null
|
||||||
|
type: MuteType,
|
||||||
|
role: Snowflake | null,
|
||||||
|
permanent: boolean,
|
||||||
|
default: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type SilenceSettings = {
|
||||||
|
//
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type IgnoreSettings = {
|
||||||
|
[key: string]: Snowflake[]
|
||||||
|
channels: Snowflake[],
|
||||||
|
bypass: Snowflake[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CommandSettings = {
|
||||||
|
disabled: string[],
|
||||||
|
custom: object
|
||||||
|
}
|
||||||
|
|
||||||
|
export type IndexingSettings = {
|
||||||
|
description: string | null
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type ErrorLogSettings = {
|
||||||
|
types: string[]
|
||||||
|
channel: string | null
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MessagesSettings = {
|
||||||
|
channel: string | null,
|
||||||
|
bypass: string[],
|
||||||
|
ignore: string[],
|
||||||
|
attachments: boolean,
|
||||||
|
webhook: string | null,
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type StaffSettings = {
|
||||||
|
role: string | null,
|
||||||
|
rule: string | null
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type VoiceSettings = {
|
||||||
|
channel: string | null
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type SelfroleSettings = {
|
||||||
|
text: string | null,
|
||||||
|
roles: string[],
|
||||||
|
message: string | null,
|
||||||
|
channel: string | null,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MemberLogSettings = {
|
||||||
|
channel: string | null,
|
||||||
|
join: string | null,
|
||||||
|
leave: string | null
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type NicknameLogSettings = {
|
||||||
|
channel: string | null
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type StickyRoleSettings = {
|
||||||
|
roles: string[]
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type AutoroleSettings = {
|
||||||
|
roles: string[]
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type WelcomerSettings = {
|
||||||
|
message: string | null
|
||||||
|
} & Setting
|
||||||
|
|
||||||
|
export type WordWatcherSettings = {
|
||||||
|
[key: string]: any// SettingAction[] | string[] | string | null
|
||||||
|
words: string[],
|
||||||
|
regex: string[],
|
||||||
|
bypass: string[],
|
||||||
|
ignore: string[],
|
||||||
|
channel: string | null,
|
||||||
|
actions: SettingAction[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type LinkfilterSettings = {
|
||||||
|
blacklist: string[],
|
||||||
|
greylist: string[]
|
||||||
|
whitelistMode: boolean,
|
||||||
|
} & FilterSetting
|
||||||
|
|
||||||
|
export type InviteFilterSettings = {
|
||||||
|
//
|
||||||
|
} & FilterSetting
|
||||||
|
|
||||||
|
export type MentionFilterSettings = {
|
||||||
|
unique: boolean,
|
||||||
|
limit: number
|
||||||
|
} & FilterSetting
|
||||||
|
|
||||||
|
export type LocaleSettings = {
|
||||||
|
language: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type RaidprotectionSettings = {
|
||||||
|
//
|
||||||
|
} & Setting
|
30
@types/Shard.d.ts
vendored
Normal file
30
@types/Shard.d.ts
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import { ClientOptions } from './Client.ts';
|
||||||
|
|
||||||
|
export type ShardingOptions = {
|
||||||
|
shardList?: 'auto' | number[],
|
||||||
|
totalShards?: 'auto' | number,
|
||||||
|
mode?: 'worker' | 'process',
|
||||||
|
respawn?: boolean,
|
||||||
|
shardArgs?: string[],
|
||||||
|
execArgv?: string[],
|
||||||
|
token?: string,
|
||||||
|
path?: string,
|
||||||
|
clientOptions?: ClientOptions
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ShardOptions = {
|
||||||
|
file: string,
|
||||||
|
token?: string,
|
||||||
|
execArgv?: string[],
|
||||||
|
args?: string[];
|
||||||
|
respawn?: boolean,
|
||||||
|
clientOptions: ClientOptions
|
||||||
|
totalShards: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export type BroadcastEvalOptions = {
|
||||||
|
shard?: number,
|
||||||
|
context?: object
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ShardMethod = 'eval' | 'fetchClientValue'
|
76
@types/Shared.d.ts
vendored
Normal file
76
@types/Shared.d.ts
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
import { WriteOptions, LoggerClient } from '@navy.gif/logger';
|
||||||
|
import { ClientOptions } from './Client.ts';
|
||||||
|
|
||||||
|
export type CommandOption = {
|
||||||
|
[key: string]: unknown
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Command = {
|
||||||
|
name: string,
|
||||||
|
options: {
|
||||||
|
[key: string]: CommandOption
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CommandsDef = {
|
||||||
|
type: 'global' | 'guild',
|
||||||
|
commands: Command[],
|
||||||
|
guilds: string[],
|
||||||
|
clientId: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type IPCMessage = {
|
||||||
|
id?: string,
|
||||||
|
_start?: ClientOptions,
|
||||||
|
_ready?: boolean,
|
||||||
|
_disconnect?: boolean,
|
||||||
|
_reconnecting?: boolean,
|
||||||
|
_fetchProp?: string,
|
||||||
|
_sFetchProp?: string,
|
||||||
|
_sFetchPropShard?: number,
|
||||||
|
_sEval?: string,
|
||||||
|
_sEvalShard?: number,
|
||||||
|
_eval?: string,
|
||||||
|
_result?: unknown,
|
||||||
|
_error?: Error,
|
||||||
|
_sRespawnAll?: {
|
||||||
|
shardDelay: number,
|
||||||
|
respawnDelay: number,
|
||||||
|
timeout: number
|
||||||
|
},
|
||||||
|
_mEval?: string,
|
||||||
|
_mEvalResult?: boolean
|
||||||
|
_logger?: boolean,
|
||||||
|
_api?: boolean,
|
||||||
|
_commands?: CommandsDef,
|
||||||
|
_shutdown?: boolean,
|
||||||
|
_fatal?: boolean,
|
||||||
|
success?: boolean
|
||||||
|
script?: string,
|
||||||
|
debug?: boolean,
|
||||||
|
type?: string,
|
||||||
|
data?: unknown,
|
||||||
|
shards?: number[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type PlainError = {
|
||||||
|
name: string;
|
||||||
|
message: string;
|
||||||
|
stack?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type EnvObject = {
|
||||||
|
[key: string]: unknown,
|
||||||
|
SHARDING_MANAGER: boolean
|
||||||
|
SHARD_ID: number
|
||||||
|
SHARD_COUNT: number
|
||||||
|
DISCORD_TOKEN: string | null
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Loggable<T> = {
|
||||||
|
createLogger: (comp: object, options?: WriteOptions) => LoggerClient
|
||||||
|
} & T;
|
||||||
|
|
||||||
|
export type Hookable<T> = {
|
||||||
|
ready: boolean
|
||||||
|
} & T
|
63
@types/Storage.d.ts
vendored
Normal file
63
@types/Storage.d.ts
vendored
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import { MongoClientOptions } from 'mongodb';
|
||||||
|
import { PoolClusterConfig, PoolConfig } from 'mysql';
|
||||||
|
|
||||||
|
export type MariaError = {
|
||||||
|
code: string,
|
||||||
|
errno: number,
|
||||||
|
fatal: boolean,
|
||||||
|
sql: string,
|
||||||
|
sqlState: string,
|
||||||
|
sqlMessage:string
|
||||||
|
} & Error
|
||||||
|
|
||||||
|
export type Credentials = {
|
||||||
|
user: string,
|
||||||
|
password: string,
|
||||||
|
host: string,
|
||||||
|
port: number,
|
||||||
|
database: string
|
||||||
|
}
|
||||||
|
|
||||||
|
type DBOptions = {
|
||||||
|
load?: boolean,
|
||||||
|
tables: string[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MongoDBOptions = {
|
||||||
|
client?: MongoClientOptions,
|
||||||
|
} & DBOptions
|
||||||
|
|
||||||
|
export type MariaDBOptions = {
|
||||||
|
cluster?: PoolClusterConfig,
|
||||||
|
client?: PoolConfig,
|
||||||
|
} & DBOptions
|
||||||
|
|
||||||
|
export type StorageManagerOptions = {
|
||||||
|
[key: string]: MariaDBOptions | MongoDBOptions
|
||||||
|
mongodb: MongoDBOptions,
|
||||||
|
mariadb: MariaDBOptions
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MongoDBClientOptions = {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MariaDBClientOptions = {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ProviderOptions = {
|
||||||
|
tables: string[],
|
||||||
|
}
|
||||||
|
|
||||||
|
export type TableOptions = {
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MongoDBTableOptions = {
|
||||||
|
//
|
||||||
|
} & TableOptions
|
||||||
|
|
||||||
|
export type MariaDBTableOptions = {
|
||||||
|
//
|
||||||
|
} & TableOptions
|
19
@types/Utils.d.ts
vendored
Normal file
19
@types/Utils.d.ts
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
export type FilterType = 'explicit' | 'regex' | 'fuzzy'
|
||||||
|
|
||||||
|
export type FilterResult = {
|
||||||
|
filter?: string,
|
||||||
|
match?: string,
|
||||||
|
matcher?: string,
|
||||||
|
matched?: boolean,
|
||||||
|
_matcher?: string,
|
||||||
|
type?: FilterType
|
||||||
|
word?: string,
|
||||||
|
raw?: string,
|
||||||
|
sim?: number,
|
||||||
|
threshold?: number,
|
||||||
|
sanctioned?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Nullable<T> = {
|
||||||
|
[K in keyof T]: T[K] | null
|
||||||
|
}
|
44
@types/Wrappers.d.ts
vendored
Normal file
44
@types/Wrappers.d.ts
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import { APIEmbed, ActionRowData, Attachment, AttachmentBuilder, AttachmentPayload, ChannelSelectMenuInteraction, EmbedBuilder, MentionableSelectMenuInteraction, MessageActionRowComponentBuilder, MessageActionRowComponentData, MessageComponent, MessageComponentType, RoleSelectMenuInteraction, StringSelectMenuInteraction, UserSelectMenuInteraction } from 'discord.js';
|
||||||
|
import { FormatOpts, FormatParams } from './Client.ts';
|
||||||
|
|
||||||
|
export type MessageOptions = {
|
||||||
|
index?: string,
|
||||||
|
content?: string,
|
||||||
|
params?: FormatParams,
|
||||||
|
formatOpts?: FormatOpts,
|
||||||
|
emoji?: string,
|
||||||
|
embed?: APIEmbed | EmbedBuilder | null,
|
||||||
|
embeds?: (APIEmbed | EmbedBuilder)[],
|
||||||
|
files?: (Attachment | AttachmentBuilder | AttachmentPayload)[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type PromptMessageOptions = {
|
||||||
|
files?: Buffer[],
|
||||||
|
editReply?: boolean,
|
||||||
|
delete?: boolean,
|
||||||
|
time?: number,
|
||||||
|
// disableMentions?: Mention
|
||||||
|
} & MessageOptions
|
||||||
|
|
||||||
|
export type PromptInteractionOptions = {
|
||||||
|
components: ActionRowData<MessageActionRowComponentData | MessageActionRowComponentBuilder>[]
|
||||||
|
componentType?: MessageComponentType
|
||||||
|
} & ReplyOptions
|
||||||
|
|
||||||
|
export type ReplyOptions = {
|
||||||
|
edit?: boolean,
|
||||||
|
dm?: boolean,
|
||||||
|
ephemeral?: boolean,
|
||||||
|
// _edit?: boolean,
|
||||||
|
} & MessageOptions
|
||||||
|
|
||||||
|
export type EditReplyOptions = {
|
||||||
|
components?: ActionRowData<MessageActionRowComponentData | MessageActionRowComponentBuilder>[]
|
||||||
|
} & ReplyOptions
|
||||||
|
|
||||||
|
export type SelectMenuInteraction =
|
||||||
|
| StringSelectMenuInteraction
|
||||||
|
| UserSelectMenuInteraction
|
||||||
|
| RoleSelectMenuInteraction
|
||||||
|
| MentionableSelectMenuInteraction
|
||||||
|
| ChannelSelectMenuInteraction
|
Loading…
Reference in New Issue
Block a user