import { SlashCommandBuilder, PermissionFlagsBits, ChatInputCommandInteraction } from 'discord.js'; import { SlashCommand } from '../../utils/types'; import { context } from '../../config/context'; const command: SlashCommand = { guildOnly: true, data: new SlashCommandBuilder() .setName('warn') .setDescription('Verwarnt einen Nutzer.') .addUserOption((opt) => opt.setName('user').setDescription('Nutzer').setRequired(true)) .addStringOption((opt) => opt.setName('reason').setDescription('Grund').setRequired(true)) .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers), async execute(interaction: ChatInputCommandInteraction) { if (!interaction.guild) return; const user = interaction.options.getUser('user', true); const reason = interaction.options.getString('reason', true); await context.modCases.recordCase(interaction.guild.id, user.id, 'warn', reason, interaction.user.id, interaction.user.tag); context.logging.logAction(user, 'Warn', reason, interaction.guild); context.watchlist.notifyIfWatched(interaction.guild, user.id, 'Verwarnt', reason); await user.send(`Du wurdest auf **${interaction.guild.name}** verwarnt. Grund: ${reason}`).catch(() => undefined); await interaction.reply({ content: `${user.tag} wurde verwarnt. Grund: ${reason}` }); } }; export default command;