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