⁨Alex Animate Mp4⁩ avatar
Alex Animate Mp4

Anti link avec warn

Un anti link activable/désactivable pour les liens discord uniquement ou touts les liens avec warn.

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

index.js

Raw
const Discord = require(`discord.js`);
const client = new Discord.Client();

const token = `TOKEN`;
const prefix = `+`;
const antilink = false;
const discordlinkonly = false;
const warnuserslist = new Object();
const warnlimit = 3;
const warnactions = `mute`; // mute;durée | kick | ban;durée

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`) {
        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]))) {
                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`)
                        .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];
                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`)
                    .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);