const { SlashCommandBuilder, EmbedBuilder, PermissionsBitField } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('mute') .setDescription('Egy felhasználó ideiglenes némítása meghatározott időre') .addUserOption(option => option.setName('felhasználó').setDescription('A megadott felhasználó némítva lesz').setRequired(true)) .addNumberOption(option => option.setName('idő').setDescription('A némítás ideje').setRequired(true)) .addStringOption(option => option.setName('idő-típus').setDescription('Az idő mértékegysége, mint pl. mp, p, ó, n').setRequired(true)) .addStringOption(option => option.setName('indoklás').setDescription('Indoklás megadása').setRequired(false)), async execute(interaction) { if (!interaction.member.permissions.has(PermissionsBitField.Flags.ModerateMembers)) { return await interaction.reply({ content: "Nincs jogosultságod ehhez!", ephemeral: true }); } const felhasznalo = interaction.options.getMember('felhasználó'); const felhasznaloNev = interaction.options.getUser('felhasználó'); let ido = interaction.options.getNumber('idő'); const tipus = interaction.options.getString('idő-típus') || 'mp'; const indoklas = interaction.options.getString('indoklás') || 'Nincs megadva indok'; if (felhasznaloNev.id === interaction.user.id) { return await interaction.reply({ content: 'Nem tudod magadat némítani', ephemeral: true }); } if (tipus === 'mp') ido *= 1000; if (tipus === 'p') ido *= 60000; if (tipus === 'ó') ido *= 3600000; if (tipus === 'n') ido *= 86400000; if (ido < 5000) { return await interaction.reply({ content: 'A némítás nem lehet kevesebb, mint 5 másodperc', ephemeral: true }); } if (ido > 2073600000) { // 24 nap milliszekundumban return await interaction.reply({ content: 'A némítás nem lehet hosszabb, mint 24 nap', ephemeral: true }); } const dmEmbed = new EmbedBuilder() .setColor('Aqua') .setTitle(`Némítva lettél a(z) ${interaction.guild.name} szerveren`) .addFields( { name: 'Szerver', value: `${interaction.guild.name}`, inline: true }, { name: 'Indoklás', value: indoklas, inline: true }, { name: 'Időtartam', value: `${interaction.options.getNumber('idő')}${tipus}`, inline: true } ) .setTimestamp(); const szerverEmbed = new EmbedBuilder() .setColor('Blue') .setTitle('Felhasználó némítva!') .addFields( { name: 'Felhasználó', value: `${felhasznaloNev.tag}`, inline: true }, { name: 'Indoklás', value: indoklas, inline: true }, { name: 'Időtartam', value: `${interaction.options.getNumber('idő')}${tipus}`, inline: true } ); try { await felhasznalo.timeout(ido, indoklas); await interaction.reply({ embeds: [szerverEmbed] }); await felhasznalo.send({ embeds: [dmEmbed] }).catch(err => { console.error('Nem sikerült privát üzenetet küldeni a felhasználónak:', err); }); } catch (err) { console.error('Nem sikerült némítani a felhasználót:', err); return interaction.reply({ content: 'Nem sikerült némítani ezt a tagot. Ellenőrizd a szerepkör pozíciómat és próbáld újra.', ephemeral: true }); } } };