122 lines
2.9 KiB
TypeScript
122 lines
2.9 KiB
TypeScript
import { StreamType, VoiceConnection } from "@discordjs/voice";
|
|
import { Awaitable, BaseMessageOptions, Client, ClientEvents, ClientPresenceStatusData, CommandInteraction, Message, MessageCreateOptions, MessagePayload, User } from "discord.js";
|
|
import { EventEmitter } from "events";
|
|
import { Readable } from "node:stream";
|
|
|
|
export type RunFunkce = (message: Message, argumenty: string) => Awaitable<string | MessagePayload | MessageCreateOptions | void>;
|
|
export type InteractionRunFunkce = (interaction: CommandInteraction) => Awaitable<string | BaseMessageOptions | void>;
|
|
|
|
export type BaseKomandProps = {
|
|
als?: string[];
|
|
arg?: string;
|
|
};
|
|
|
|
export type KomandRaw = BaseKomandProps &
|
|
{
|
|
run: string | RunFunkce;
|
|
slashRun?: InteractionRunFunkce;
|
|
cd?: number;
|
|
hidden?: true;
|
|
DMUnsafe?: true;
|
|
};
|
|
|
|
|
|
export type ListenerFunkce = (...args: any[]) => void;
|
|
|
|
export type SuperListenerFunkce = (...args: any[]) => boolean;
|
|
|
|
interface SuperObject {
|
|
pos: number;
|
|
fun: SuperListenerFunkce;
|
|
}
|
|
|
|
type Eventy = keyof ClientEvents | "userPresenceUpdate";
|
|
|
|
export type EventSOn = `on_${Eventy}` | `super_on_${Eventy}`;
|
|
|
|
export type SRecord<T> = Record<string, T>;
|
|
|
|
export type Modul = {
|
|
more_komandy?: SRecord<RunFunkce | KomandRaw | string>;
|
|
client?: Client<boolean>;
|
|
} & { [key in `on_${Eventy}`]?: ListenerFunkce }
|
|
& { [key in `super_on_${Eventy}`]?: SuperObject | SuperListenerFunkce; };
|
|
|
|
export type Komand = {
|
|
run: string | RunFunkce;
|
|
slashRun?: InteractionRunFunkce;
|
|
cd?: number;
|
|
DMUnsafe?: true;
|
|
};
|
|
|
|
export interface Spinkackar {
|
|
spinkacek: boolean;
|
|
timeup: number | false;
|
|
}
|
|
|
|
export interface FakePresence {
|
|
status: "online" | "idle" | "dnd" | "offline";
|
|
clientStatus?: ClientPresenceStatusData;
|
|
}
|
|
|
|
export interface UserChange {
|
|
user: User;
|
|
ch?: "user" | "stat";
|
|
stat?: string;
|
|
}
|
|
|
|
export type StatusyINaFounu = "Online" | "OnlinePhone" | "Idle" | "IdlePhone" | "DND" | "DNDPhone" | "Offline";
|
|
|
|
export interface ZmenovejObjekt {
|
|
id: string;
|
|
nick?: string;
|
|
pfp?: string;
|
|
status?: string;
|
|
}
|
|
|
|
export interface MuzikaFace {
|
|
name: string | Readable;
|
|
volume: number;
|
|
type?: StreamType;
|
|
}
|
|
|
|
export type KomandNaExport = {
|
|
name: string;
|
|
custom?: true;
|
|
} & BaseKomandProps;
|
|
|
|
export interface JoinHovna {
|
|
conn: VoiceConnection;
|
|
prev: string | boolean;
|
|
}
|
|
|
|
export interface CUser extends User {
|
|
presence?: ClientPresenceStatusData;
|
|
}
|
|
|
|
export interface CustomKomandy {
|
|
cKomandy: SRecord<Komand>;
|
|
cAliasy: SRecord<string>;
|
|
emitter: EventEmitter;
|
|
naucse: RunFunkce;
|
|
zapomen: RunFunkce;
|
|
kohoje: RunFunkce;
|
|
naucsealias: RunFunkce;
|
|
zapomenalias: RunFunkce;
|
|
naSend: KomandNaExport[];
|
|
realKomandy: SRecord<Komand>;
|
|
realAliasy: SRecord<string>;
|
|
}
|
|
|
|
export interface HelpServer {
|
|
komandy: KomandNaExport[];
|
|
customKomandy: KomandNaExport[];
|
|
customAliasy: SRecord<string>;
|
|
}
|
|
|
|
export class CClient extends Client {
|
|
komandy!: SRecord<Komand>;
|
|
aliasy!: SRecord<string>;
|
|
slashCommandy!: SRecord<string>;
|
|
}
|