initial commit
Some checks failed
release-tag / release-image (push) Failing after 1m14s

This commit is contained in:
konchin
2024-10-11 19:49:58 +08:00
commit 2d7361e937
38 changed files with 4029 additions and 0 deletions

26
classes/command.ts Normal file
View File

@@ -0,0 +1,26 @@
import {
SlashCommandBuilder,
CommandInteraction,
PermissionFlagsBits,
} from 'discord.js';
export interface Component{
execute(interaction: unknown): Promise<void>;
build(): unknown;
};
export abstract class Command implements Component{
abstract get name(): string;
abstract get description(): string;
abstract execute(interaction: CommandInteraction): Promise<void>;
build():
SlashCommandBuilder | Omit<
SlashCommandBuilder,
"addSubcommand" | "addSubcommandGroup"
>{
return new SlashCommandBuilder()
.setName(this.name)
.setDescription(this.description)
.setDefaultMemberPermissions(PermissionFlagsBits.SendMessages);
}
};

22
classes/extendedclient.ts Normal file
View File

@@ -0,0 +1,22 @@
import {
Client,
Collection,
ClientOptions,
} from 'discord.js';
import {Command} from './command'
export function isExtendedClient(client: Client): client is ExtendedClient{
return (client as ExtendedClient).commands !== undefined;
}
export class ExtendedClient extends Client{
public commands: Collection<string, Command>;
constructor(
opts: ClientOptions,
cmds = new Collection<string, Command>()
){
super(opts);
this.commands = cmds;
}
};