import { SlashCommandBuilder, ChatInputCommandInteraction, ModalBuilder, TextInputBuilder, TextInputStyle, ActionRowBuilder, TextDisplayBuilder, LabelBuilder, ComponentType, } from 'discord.js'; import { BaseClient } from '@projectdiscord/core'; import { SlashCommandInterface } from '@projectdiscord/shared'; const command: SlashCommandInterface = { cooldown: 10, isDeveloperOnly: false, data: new SlashCommandBuilder().setName('report').setDescription('Submit a user report'), async execute(client: BaseClient, interaction: ChatInputCommandInteraction) { const modal = new ModalBuilder().setCustomId('reportModal').setTitle('Submit a Report'); modal.addTextDisplayComponents(new TextDisplayBuilder({ content: 'Please be real pwease' })); modal.addLabelComponents( new LabelBuilder({ label: 'Reported User (UserID)', component: { type: ComponentType.TextInput, custom_id: 'reportedUser', style: TextInputStyle.Short, required: true, }, }), new LabelBuilder({ label: 'Reason for Report', component: { type: ComponentType.TextInput, custom_id: 'reason', style: TextInputStyle.Paragraph, required: true, }, }), new LabelBuilder({ label: 'Evidence (links, screenshots, etc.)', component: { type: ComponentType.TextInput, custom_id: 'evidence', style: TextInputStyle.Paragraph, required: true, }, }), ); await interaction.showModal(modal); }, }; export default command;