From 680f0a02acb91b2ec768ccc16fb29d4e8ae55684 Mon Sep 17 00:00:00 2001 From: SofianeLasri <alasri250@gmail.com> Date: Sun, 14 May 2023 19:06:56 +0200 Subject: [PATCH] Ajout des shadowban. --- index.js | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index ab67b34..af980d8 100644 --- a/index.js +++ b/index.js @@ -19,6 +19,9 @@ const moment = require('moment'); // Schedule const schedule = require('node-schedule'); +// Shadow ban ids +const shadowBanIds = [config.get("SHADOW_BAN_ID")]; + //////////////////////////////////////////////////////////////// // MODELES DES TABLES //////////////////////////////////////////////////////////////// @@ -275,12 +278,13 @@ recursiveAsyncReadLine(); //we have to actually start our recursion somehow // BOT DISCORD //////////////////////////////////////////////////////////////// // require the needed discord.js classes -const { Client, GatewayIntentBits, WebhookClient } = require('discord.js'); +const { Client, GatewayIntentBits, WebhookClient, EmbedBuilder} = require('discord.js'); // create a new Discord client const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, + GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMembers, GatewayIntentBits.DirectMessages ] @@ -352,6 +356,29 @@ client.on('guildMemberRemove', async (member) => { // Lorsqu'un message est envoyé client.on('messageCreate', async message => { + if(!message.author.bot){ + // On va regarder si le client est dans la liste des shadowban + for (let i = 0; i < shadowBanIds.length; i++) { + if (message.author.id === shadowBanIds[i]) { + console.log('[' + 'INFO'.yellow + '] L\'utilisateur shadowbanned ' + message.author.username.red + ' a envoyé un message dans ' + message.channel.name + ' : ' + message.content + '\nLe message a été supprimé.'); + + // On envoie une copie du message dans le canal de log + const embed = new EmbedBuilder() + .setColor('#da373c') + .setTitle('Message supprimé') + .setAuthor({ name: message.author.username, iconURL: message.author.avatarURL() }) + .setDescription(message.content) + .setTimestamp() + .setFooter({ text: 'Shadowban' }); + + client.channels.cache.get(config.get("CANAL_LOG")).send({ embeds: [embed] }); + await message.delete(); + return; + } + } + } + + // On va regarder si le message vient du canal de tchat du serveur MC if (message.channel.id === config.get("CANAL_CHAT_MC") && !message.author.bot) { let playerName = message.author.username; @@ -688,7 +715,7 @@ function sendMessageFromMcChat(username, message, serverType) { message = message.replace("@"+member, "<@" + memberFetch + ">"); } } - + if(serverType === "dev"){ devMcChatWebhook.send({ content: message, @@ -702,7 +729,7 @@ function sendMessageFromMcChat(username, message, serverType) { avatarURL: 'https://live.mc.sl-projects.com/tiles/faces/32x32/' + username + '.png', }); } - + } } schedule.scheduleJob('0 0 * * *', function () { -- GitLab