yaejunyang/packages/bot/command.ts
2026-05-21 18:21:38 +00:00

47 lines
1.1 KiB
TypeScript

import {
ChatInputCommandInteraction,
SlashCommandBuilder,
type SlashCommandOptionsOnlyBuilder,
SlashCommandSubcommandBuilder,
} from "discord.js";
import { AdminUsers } from "./admin";
export const commandExecuteNameHashMap = [];
export type DiscordCommandData =
| SlashCommandBuilder
| SlashCommandOptionsOnlyBuilder
| SlashCommandSubcommandBuilder;
export type DiscordCommandExecute = (
interaction: ChatInputCommandInteraction,
) => Promise<any>;
export interface DiscordCommand {
data: DiscordCommandData;
execute: DiscordCommandExecute;
}
export function defineCommand(
data: DiscordCommandData,
execute: DiscordCommandExecute,
isAdminCommand = false,
): DiscordCommand {
if (isAdminCommand) {
return {
data: data,
execute: async (
interaction: ChatInputCommandInteraction,
): Promise<any> => {
if (AdminUsers.includes(interaction.user.id)) {
execute(interaction);
} else {
interaction.reply("당신은 어드민이 아닙니다");
}
},
};
}
return {
data: data,
execute: execute,
};
}