2024-07-26 15:26:42 +02:00
|
|
|
// Galactic - Discord moderation bot
|
|
|
|
// Copyright (C) 2024 Navy.gif
|
|
|
|
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
|
|
// it under the terms of the GNU General Public License as published by
|
|
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
|
|
// (at your option) any later version.
|
|
|
|
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU General Public License for more details.
|
|
|
|
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
2023-12-05 16:47:54 +01:00
|
|
|
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
|
|
|
|
},
|
2023-12-08 12:20:05 +01:00
|
|
|
_mEval?: boolean,
|
2023-12-05 16:47:54 +01:00
|
|
|
_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
|