const { Client, GatewayIntentBits, MessageAttachment, MessageCreate, MessageEmbed } = require('discord.js'); const { EmbedBuilder } = require('discord.js'); const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMessages, ], }); const fs = require('fs'); const token = ''; // Sostituisci con il tuo token const prefix = '/'; // Prefisso dei comandi const welcomeChannelID = ''; // Sostituisci con l'ID del canale di benvenuto const modLogChannelID = ''; // Sostituisci con l'ID del canale di moderazione client.on('ready', () => { console.log(`Il bot è online come ${client.user.tag}`); }); client.on('messageCreate', async (message) => { if (message.author.bot) return; if (message.content.startsWith(prefix)) { const args = message.content.slice(prefix.length).trim().split(/ +/); const command = args.shift().toLowerCase(); if (command === 'clear') { if (!args[0]) return message.reply('Specifica la quantità di messaggi da cancellare.'); const amount = parseInt(args[0]) + 1; if (isNaN(amount)) return message.reply('La quantità specificata non è valida.'); message.channel.bulkDelete(amount, true).catch((err) => { console.error(err); message.channel.send('Si è verificato un errore durante la cancellazione dei messaggi.'); }); console.log('Comando clear eseguito!'); } if (command === 'moderate') { const wordsToFilter = ['word', 'word', 'word', 'word', 'word', 'word']; for (const word of wordsToFilter) { if (message.content.toLowerCase().includes(word)) { message.delete(); message.reply('Il tuo messaggio contiene una parola vietata.'); message.member.ban({ reason: 'Parola vietata nel messaggio' }) .then((member) => { message.channel.send(`${member.user.tag} è stato bannato per utilizzo di parole vietate.`); logBan(member, message.author, 'Parola vietata nel messaggio'); }) .catch((error) => console.error(error)); break; } } } } if (command.roles) { const member = message.guild.member.cache.get(message.author.id); if (!member.roles.cache.some(r => r.name === command.role)) { return message.reply('Non puoi eseguire questo comando! ') } } }); client.on('messageCreate', async (message) => { // Resto del tuo codice per gestire i comandi, il filtro delle parole, ecc. }); client.on('guildMemberAdd', (member) => { const welcomeChannel = client.channels.cache.get(welcomeChannelID); const ruolo = member.guild.roles.cache.find(r => r.name === 'Utente👤'); member.roles.add(ruolo); welcomeChannel.messages.fetch({ limit: 1 }).then((messages) => { const lastMessage = messages.first(); if (lastMessage) { lastMessage.delete(); } }); if (welcomeChannel) { const welcomeEmbed = new EmbedBuilder() .setColor(ffa500) .setTitle('Benvenuto/a!') .setDescription(`Benvenuto/a su ${member.guild.name}, ${member}!`) .setThumbnail('image.png') .addFields( { name: 'Regular field title', value: 'Some value here' }, { name: '\u200B', value: '\u200B' }, { name: 'Inline field title', value: 'Some value here', inline: true }, { name: 'Inline field title', value: 'Some value here', inline: true }, { name: 'Inline field title', value: 'Some value here', inline: true } ) .setImage('image.png') .setTimestamp() .setFooter({ text: 'Some footer text here', iconURL: 'image.png' }); welcomeChannel.send({ embeds: [welcomeEmbed] }); } }); function logBan(member, executor, reason) { const modLogChannel = client.channels.cache.get(modLogChannelID); if (modLogChannel) { const logMessage = `${executor.tag} ha bannato ${member.user.tag} per il motivo: ${reason}`; modLogChannel.send(logMessage); } } client.login(token);