feat: initial Papo bot scaffold

This commit is contained in:
Pascal.P
2025-11-30 11:04:41 +01:00
commit 000481a3b0
12168 changed files with 1584750 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
import { SlashCommandBuilder, PermissionFlagsBits, ChatInputCommandInteraction } from 'discord.js';
import { SlashCommand } from '../../utils/types.js';
import { context } from '../../config/context.js';
const command: SlashCommand = {
guildOnly: true,
data: new SlashCommandBuilder()
.setName('kick')
.setDescription('Kickt einen Nutzer vom Server.')
.addUserOption((opt) => opt.setName('user').setDescription('Nutzer').setRequired(true))
.addStringOption((opt) => opt.setName('reason').setDescription('Grund'))
.setDefaultMemberPermissions(PermissionFlagsBits.KickMembers),
async execute(interaction: ChatInputCommandInteraction) {
if (!interaction.guild) return;
const user = interaction.options.getUser('user', true);
const reason = interaction.options.getString('reason') ?? 'Kein Grund angegeben';
const member = await interaction.guild.members.fetch(user.id).catch(() => null);
if (!member) {
await interaction.reply({ content: 'Mitglied nicht gefunden.', ephemeral: true });
return;
}
await member.kick(reason);
await interaction.reply({ content: `${user.tag} wurde gekickt.` });
context.logging.logAction(user, 'Kick', reason);
}
};
export default command;