Revisions for ⁨Anti link avec warn⁩

View the changes made to this paste.

public ⁨1⁩ ⁨file⁩ 2021-01-21 00:54:55 UTC

index.js

@@ -79,7 +79,7 @@ client.on(`ready`, () => {

 });
 
 client.on(`message`, async (message) => {
-    if (message.author.bot && message.channel.type != `text`) return;
+    if (message.author.bot || message.channel.type != `text`) return;
     const args = message.content.slice(prefix.length).trim().split(/ +/g);
     const command = args.shift().toLowerCase();
     if (antilink == true) {

index.js

@@ -1,6 +1,7 @@

 const Discord = require(`discord.js`);
 const client = new Discord.Client();
 
+const token = `TOKEN`;
 const prefix = `+`;
 const antilink = false;
 const discordlinkonly = false;

@@ -195,4 +196,4 @@ client.on(`message`, async (message) => {

     };
 });
 
-client.login(`TOKEN`);
\ No newline at end of file
+client.login(token);
\ No newline at end of file

index.js

@@ -89,6 +89,19 @@ client.on(`message`, async (message) => {

     };
     if (message.content.indexOf(prefix) != 0) return;
     if (command == `warn-delete`) {
+        if (!message.member.hasPermission(`ADMINISTRATOR`)) {
+            const embed = new Discord.MessageEmbed()
+                .setColor(`#0099FF`)
+                .setAuthor(message.author.username, message.author.displayAvatarURL({
+                    dynamic: true
+                }))
+                .setTitle(`Vous n'avez pas les permissions !`)
+                .setTimestamp()
+                .setFooter(client.user.username, client.user.displayAvatarURL({
+                    dynamic: true
+                }));
+            return message.channel.send(embed);
+        };    
         let target = message.mentions.users.first() || message.author;
         if (USERISWARN(target.id)) {
             if (args[0] && (/^-?\d+$/.test(args[0]))) {

index.js

@@ -94,6 +94,8 @@ client.on(`message`, async (message) => {

             if (args[0] && (/^-?\d+$/.test(args[0]))) {
                 if (args[0] > warnuserslist[target.id].length) {
                     delete warnuserslist[target.id];
+                    let muteRole = message.guild.roles.cache.find(x => x.name == `Muet`);
+                    if (message.member.roles.cache.has(muteRole.id)) message.member.roles.remove(muteRole);
                     console.log(`${target.username} n'as plus de warn !`);
                     const embed = new Discord.MessageEmbed()
                         .setColor(`#0099FF`)

@@ -123,6 +125,8 @@ client.on(`message`, async (message) => {

                 };
             } else {
                 delete warnuserslist[target.id];
+                let muteRole = message.guild.roles.cache.find(x => x.name == `Muet`);
+                if (message.member.roles.cache.has(muteRole.id)) message.member.roles.remove(muteRole);
                 console.log(`${target.username} n'as plus de warn !`);
                 const embed = new Discord.MessageEmbed()
                     .setColor(`#0099FF`)

index.js

@@ -6,7 +6,7 @@ const antilink = false;

 const discordlinkonly = false;
 const warnuserslist = new Object();
 const warnlimit = 3;
-const warnactions = `mute`;
+const warnactions = `mute`; // mute;durée | kick | ban;durée
 
 function USERISWARN(id) {
     if (!warnuserslist[id]) {

index.js

@@ -0,0 +1,181 @@

+const Discord = require(`discord.js`);
+const client = new Discord.Client();
+
+const prefix = `+`;
+const antilink = false;
+const discordlinkonly = false;
+const warnuserslist = new Object();
+const warnlimit = 3;
+const warnactions = `mute`;
+
+function USERISWARN(id) {
+    if (!warnuserslist[id]) {
+        return false;
+    } else if (warnuserslist[id]) {
+        return true;
+    };
+};
+
+function WARNUSER(message) {
+    message.delete().then(async (msg) => {
+        if (!USERISWARN(msg.member.id)) warnuserslist[msg.member.id] = 1;
+        else if (USERISWARN(msg.member.id)) warnuserslist[msg.member.id] += 1;
+        if (warnuserslist[msg.member.id] >= warnlimit) {
+            const actions = [`mute`, `kick`, `ban`]; // KICK ET BAN NON TESTER !!!
+            if (!actions.some(action => warnactions.toLocaleLowerCase().includes(action))) return;
+            else if (actions.some(action => warnactions.toLocaleLowerCase().includes(action)) && warnactions.toLocaleLowerCase().includes(`mute`)) {
+                let muteRole = msg.guild.roles.cache.find(x => x.name == `Muet`);
+                if (!muteRole) {
+                    try {
+                        muteRole = await msg.guild.roles.create({
+                            data: {
+                                name: `Muet`,
+                                color: `#514f48`,
+                                hoist: true,
+                                permissions: []
+                            }
+                        });
+                        msg.guild.channels.cache.forEach(async (channel) => {
+                            await channel.overwritePermissions([{
+                                id: muteRole.id,
+                                deny: [`SEND_MESSAGES`, `SEND_TTS_MESSAGES`, `ATTACH_FILES`, `ADD_REACTIONS`, `SPEAK`, `STREAM`]
+                            }]);
+                        });
+                    } catch (error) {
+                        if (msg.guild.roles.cache.find(x => x.name == `Muet`)) msg.guild.roles.cache.find(x => x.name == `Muet`).delete();
+                        return console.error(error);
+                    };
+                };
+                if (!msg.member.roles.cache.has(muteRole.id)) {
+                    console.log(`${msg.member.displayName} est muet !`);
+                    if ((/^-?\d+$/.test(warnactions.toLocaleLowerCase().split(`;`)[1]))) {
+                        msg.member.roles.add(muteRole);
+                        return setTimeout(() => {
+                            console.log(`${msg.member.displayName} n'est plus muet !`);
+                            return msg.member.roles.remove(muteRole);
+                        }, warnactions.toLocaleLowerCase().split(`;`)[1] * 1000);
+                    } else return msg.member.roles.add(muteRole);
+                };
+            } else if (actions.some(action => warnactions.toLocaleLowerCase().includes(action)) && warnactions.toLocaleLowerCase().includes(`kick`)) {
+                console.log(`${msg.member.displayName} est kick !`);
+                return msg.member.kick();
+            } else if (actions.some(action => warnactions.toLocaleLowerCase().includes(action)) && warnactions.toLocaleLowerCase().includes(`ban`)) {
+                console.log(`${msg.member.displayName} est ban !`);
+                if ((/^-?\d+$/.test(warnactions.toLocaleLowerCase().split(`;`)[1]))) {
+                    msg.guild.members.ban(msg.member.id);
+                    return setTimeout(() => {
+                        console.log(`${msg.member.displayName} n'est plus ban !`);
+                        return msg.guild.members.unban(msg.member.id);
+                    }, warnactions.toLocaleLowerCase().split(`;`)[1] * 1000);
+                } else return msg.guild.members.ban(msg.member.id);
+            };
+        };
+    });
+};
+
+client.on(`ready`, () => {
+    console.log(`${client.user.username} est en ligne !`);
+});
+
+client.on(`message`, async (message) => {
+    if (message.author.bot && message.channel.type != `text`) return;
+    const args = message.content.slice(prefix.length).trim().split(/ +/g);
+    const command = args.shift().toLowerCase();
+    if (antilink == true) {
+        const discordlink = [`discord.gg`, `discordapp.com/invite`, `canary.discord.com/invite`, `ptb.discord.com/invite`];
+        const matchesurl = message.content.toLocaleLowerCase().match(/(https?:\/\/[^\s]+)/g) ? message.content.toLocaleLowerCase().match(/(https?:\/\/[^\s]+)/g) : undefined;
+        if (matchesurl ? discordlink.some(link => matchesurl.some(url => url.includes(link))) == true || discordlink.some(link => message.content.toLocaleLowerCase().includes(link)) && discordlinkonly == true : discordlink.some(link => message.content.toLocaleLowerCase().includes(link)) == true && discordlinkonly == true) return WARNUSER(message);
+        else if (matchesurl && discordlinkonly == false) return WARNUSER(message);
+    };
+    if (message.content.indexOf(prefix) != 0) return;
+    if (command == `warn-delete`) {
+        let target = message.mentions.users.first() || message.author;
+        if (USERISWARN(target.id)) {
+            if (args[0] && (/^-?\d+$/.test(args[0]))) {
+                if (args[0] > warnuserslist[target.id].length) {
+                    delete warnuserslist[target.id];
+                    console.log(`${target.username} n'as plus de warn !`);
+                    const embed = new Discord.MessageEmbed()
+                        .setColor(`#0099FF`)
+                        .setAuthor(message.author.username, message.author.displayAvatarURL({
+                            dynamic: true
+                        }))
+                        .setTitle(target.id == message.author.id ? `Vous n'avez plus de warn !` : `${target.username} n'as plus warn !`)
+                        .setTimestamp()
+                        .setFooter(client.user.username, client.user.displayAvatarURL({
+                            dynamic: true
+                        }));
+                    return message.channel.send(embed);
+                } else {
+                    warnuserslist[target.id] -= args[0];
+                    console.log(`${target.username} à maintenant ${warnuserslist[target.id]} warn !`);
+                    const embed = new Discord.MessageEmbed()
+                        .setColor(`#0099FF`)
+                        .setAuthor(message.author.username, message.author.displayAvatarURL({
+                            dynamic: true
+                        }))
+                        .setTitle(target.id == message.author.id ? `Vous avez maintenant ${warnuserslist[target.id]} warn !` : `${target.username} à maintenant ${warnuserslist[target.id]} warn !`)
+                        .setTimestamp()
+                        .setFooter(client.user.username, client.user.displayAvatarURL({
+                            dynamic: true
+                        }));
+                    return message.channel.send(embed);
+                };
+            } else {
+                delete warnuserslist[target.id];
+                console.log(`${target.username} n'as plus de warn !`);
+                const embed = new Discord.MessageEmbed()
+                    .setColor(`#0099FF`)
+                    .setAuthor(message.author.username, message.author.displayAvatarURL({
+                        dynamic: true
+                    }))
+                    .setTitle(target.id == message.author.id ? `Vous n'avez plus de warn !` : `${target.username} n'as plus warn !`)
+                    .setTimestamp()
+                    .setFooter(client.user.username, client.user.displayAvatarURL({
+                        dynamic: true
+                    }));
+                return message.channel.send(embed);
+            };
+        } else if (!USERISWARN(target.id)) {
+            const embed = new Discord.MessageEmbed()
+                .setColor(`#0099FF`)
+                .setAuthor(message.author.username, message.author.displayAvatarURL({
+                    dynamic: true
+                }))
+                .setTitle(target.id == message.author.id ? `Vous n'avez aucun warn !` : `${target.username} n'as aucun warn !`)
+                .setTimestamp()
+                .setFooter(client.user.username, client.user.displayAvatarURL({
+                    dynamic: true
+                }));
+            return message.channel.send(embed);
+        };
+    } else if (command == `warn-info`) {
+        let target = message.mentions.users.first() || message.author;
+        const embed = new Discord.MessageEmbed()
+            .setColor(`#0099FF`)
+            .setAuthor(message.author.username, message.author.displayAvatarURL({
+                dynamic: true
+            }))
+            .addField(`⚠️ • __Nombres de warn__`, `\`${warnuserslist[target.id] || `Aucun Warn`}\``)
+            .setTimestamp()
+            .setFooter(client.user.username, client.user.displayAvatarURL({
+                dynamic: true
+            }));
+        return message.channel.send(embed);
+    } else if (command == `warn-help`) { // STATIQUE HELP
+        const embed = new Discord.MessageEmbed()
+            .setColor(`#0099FF`)
+            .setAuthor(message.author.username, message.author.displayAvatarURL({
+                dynamic: true
+            }))
+            .addField(`🗑 • __warn-delete__`, `\`Supprime les warns d'un membre.\`\n__Utilisation:__ *[nombres de warn ou rien] [mention d'un membre ou rien]*\n***Note: une valeur supérieure au nombre de warn ou rien supprime tous les warns !***`)
+            .addField(`❔ • __warn-info__`, `\`Affiche si un membre a un warn et combien il en a.\`\n__Utilisation:__ *[mention d'un membre ou rien]*`)
+            .setTimestamp()
+            .setFooter(client.user.username, client.user.displayAvatarURL({
+                dynamic: true
+            }));
+        return message.channel.send(embed);
+    };
+});
+
+client.login(`TOKEN`);
\ No newline at end of file