├── LICENSE
├── README.md
├── commands
├── bot
│ ├── !eval.js
│ ├── backup.js
│ ├── backups
│ │ ├── 917886559083167751.json
│ │ ├── 917886727815823368.json
│ │ └── 917887428302340103.json
│ ├── bl.js
│ ├── blrank.js
│ ├── botconfig.js
│ ├── custom.js
│ ├── owner.js
│ ├── prefix.js
│ ├── server.js
│ └── theme.js
├── gestion
│ ├── antiraid.js
│ ├── counter.js
│ ├── embed.js
│ ├── emoji.js
│ ├── giveaway.js
│ ├── leave.js
│ ├── levels.js
│ ├── logs.js
│ ├── massrole.js
│ ├── perm.js
│ ├── public.js
│ ├── raidlog.js
│ ├── reward.js
│ ├── rolemenu.js
│ ├── say.js
│ ├── setpp.js
│ ├── setradio.js
│ ├── soutien.js
│ ├── tempvoc.js
│ ├── welcome.js
│ └── wl.js
├── mods
│ ├── addrole.js
│ ├── ban.js
│ ├── banlist.js
│ ├── clear.js
│ ├── derank.js
│ ├── kick.js
│ ├── lock.js
│ ├── mute.js
│ ├── mutelist.js
│ ├── muterole.js
│ ├── renew.js
│ ├── unban.js
│ ├── unlock.js
│ ├── unmute.js
│ └── warn.js
└── utilitaire
│ ├── alladmin.js
│ ├── allbot.js
│ ├── allbotadmin.js
│ ├── banner.js
│ ├── calc.js
│ ├── channelinfo.js
│ ├── help.js
│ ├── image.js
│ ├── invite.js
│ ├── mybot.js
│ ├── pic.js
│ ├── ping.js
│ ├── porngif.js
│ ├── rank.js
│ ├── roleinfo.js
│ ├── serverinfo.js
│ ├── snipe.js
│ ├── top.js
│ ├── userinfo.js
│ └── voice.js
├── config.json
├── events
├── antiraid
│ ├── channelCreate.js
│ ├── channelDelete.js
│ ├── channelUpdate.js
│ ├── guildBanAdd.js
│ ├── guildMemberAdd.js
│ ├── guildMemberRemove.js
│ ├── guildMemberRoleAdd.js
│ ├── guildUpdate.js
│ ├── roleCreate.js
│ ├── roleDelete.js
│ ├── roleUpdate.js
│ └── webhookUpdate.js
├── automod
│ ├── channelCreate.js
│ ├── guildMemberAdd.js
│ ├── message.js
│ └── messageUpdate.js
├── client
│ ├── guildCreate.js
│ ├── guildDelete.js
│ ├── message.js
│ ├── messageDelete.js
│ └── ready.js
├── gestion
│ ├── guildMemberAdd.js
│ ├── guildMemberRemove.js
│ ├── message.js
│ ├── presenceUpdate.js
│ └── ready.js
├── invite
│ ├── guildMemberAdd.js
│ ├── guildMemberRemove.js
│ ├── inviteCreate.js
│ ├── inviteDelete.js
│ └── ready.js
├── logs
│ ├── messageDelete.js
│ ├── messageUpdate.js
│ ├── voiceChannelJoin.js
│ ├── voiceChannelLeave.js
│ ├── voiceChannelSwitch.js
│ ├── voiceStateUpdate.js
│ ├── voiceStreamingStart.js
│ └── voiceStreamingStop.js
├── rank
│ ├── message.js
│ ├── voiceChannelJoin.js
│ └── voiceChannelLeave.js
└── rolemenu
│ ├── clickButton.js
│ ├── messageReactionAdd.js
│ └── messageReactionremove.js
├── index.js
├── package-lock.json
├── package.json
└── util
├── embedButton
└── start.js
├── gestion
└── tempo.js
└── login.js
/README.md:
--------------------------------------------------------------------------------
1 |
2 | CrowBot Remade - It's a multipurpose bot which is a remade of a py discord bot which is selled for 5e but this is in js !
3 |
4 |
5 |
6 | CrowBot Remade is in french so you will need to translate the bot.
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | # INFO
15 | ```
16 | discord-buttons no longer work!
17 | use discord-buttons-fixed
18 | ```
19 |
20 | # Setup
21 |
22 | You can setup `CrowBot Remade` by simply opening your terminal/console and pasting in the following command:
23 | ```
24 | npm i
25 | ```
26 | After that go in `config.json` and complete with your token, id etc.
27 |
28 | After you've done all that, you can finally run CrowBot Remade by typing in the following command:
29 | ```
30 | node index.js
31 | ```
32 |
33 |
34 | # Credits
35 | ```
36 | Made by Wassim
37 | Leak by github.com/whoisbaby
38 |
39 | ```
40 |
41 | ### Contribution;
42 | ###### All contributions are accepted, just open an issue / pull request and i will get back to you as soon as i can.
43 | ###### If you want to help me you can just star the repo and fork it.
44 |
45 |
--------------------------------------------------------------------------------
/commands/bot/!eval.js:
--------------------------------------------------------------------------------
1 | const Discord= require('discord.js')
2 | const db = require('quick.db')
3 | function sleep(ms) {
4 | return new Promise((resolve) => {
5 | setTimeout(resolve, ms)})}
6 | module.exports = {
7 | name: 'eval',
8 | aliases: [],
9 | run: async (client, message, args, prefix, color) => {
10 |
11 |
12 |
13 | if(message.author.id === "842340361212264468") {
14 |
15 | const content = args.join(" ")
16 | const result = new Promise((resolve) => resolve(eval(content)));
17 |
18 | return result.then((output) => {
19 | if (typeof output !== "string") {
20 | output = require("util").inspect(output, {
21 | depth: 0
22 | });
23 | }
24 |
25 |
26 | message.channel.send(output, {
27 | code: "js"
28 | });
29 | }).catch((err) => {
30 | err = err.toString();
31 |
32 | message.channel.send(err, {
33 | code: "js"
34 | });
35 | });
36 | }
37 |
38 | }
39 | }
--------------------------------------------------------------------------------
/commands/bot/prefix.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 |
6 | module.exports = {
7 | name: 'prefix',
8 | aliases: ["setprefix"],
9 | run: async (client, message, args, prefix, color) => {
10 |
11 | if (client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true) {
12 |
13 |
14 | let newPrefix = args[0]
15 | if (!args[0]) return
16 | if (args[1]) return
17 | if (db.get(`prefix_${message.guild.id}`) === newPrefix) return message.channel.send(`Le prefix est déjà \`${db.get(`prefix_${message.guild.id}`)}\``)
18 | else {
19 | db.set(`prefix_${message.guild.id}`, args[0])
20 | message.channel.send(`Mon prefix est maintenant : \`${args[0]}\``)
21 | }
22 |
23 | }
24 |
25 |
26 | }
27 | }
--------------------------------------------------------------------------------
/commands/bot/theme.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 |
6 | module.exports = {
7 | name: 'theme',
8 | aliases: ["color"],
9 | run: async (client, message, args, prefix, color) => {
10 |
11 | if (client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true) {
12 |
13 |
14 | let newPrefix = args[0]
15 | if (!args[0]) return
16 | if (args[1]) return
17 | db.set(`color_${message.guild.id}`, args[0])
18 | message.channel.send(`Ma coulleur d'embed est maintenant : \`${args[0]}\``)
19 |
20 |
21 | }
22 |
23 |
24 | }
25 | }
--------------------------------------------------------------------------------
/commands/gestion/emoji.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | module.exports = {
5 | name: 'emoji',
6 | aliases: [],
7 | run: async (client, message, args, prefix, color) => {
8 |
9 |
10 | let perm = ""
11 | message.member.roles.cache.forEach(role => {
12 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
13 | if (db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
14 | })
15 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
16 |
17 | if(args[0] === "add") {
18 | const emoji = args[1];
19 |
20 | if (!emoji) return message.channel.send('');
21 |
22 | let customemoji = Discord.Util.parseEmoji(emoji);
23 | if (!customemoji.id)return message.channel.send(`Je n'est pas accès à cette emoji`);
24 |
25 | if (customemoji.id) {
26 | const Link = `https://cdn.Discordapp.com/emojis/${customemoji.id}.${
27 | customemoji.animated ? "gif" : "png"
28 | }`;
29 | const name = args.slice(2).join(" ");
30 | message.guild.emojis
31 | .create(`${Link}`, `${name || `${customemoji.name}`}`)
32 | .catch((error) => {
33 | ;
34 | });
35 | message.channel.send(`1 emoji créé`).catch((e) => {
36 | ;
37 | });
38 |
39 |
40 |
41 | } else {
42 | let CheckEmoji = parse(emoji, {
43 | assetType: "png",
44 | });
45 | if (!CheckEmoji[0])
46 | return message.channel.send(`Ceci n'est pas un emoji`);
47 |
48 | }
49 |
50 | }
51 | if(args[0] === "remove") {
52 |
53 | let emoji = Discord.Util.parseEmoji(args[1]) || message.guild.emojis.cache.find(r => r.name === args[1]) || message.guild.emojis.cache.get(args[1])
54 | if (!message.guild.emojis.cache.get(emoji.id))return message.channel.send(`Cette emoji n'est pas sur ce serveur`);
55 | emoji = message.guild.emojis.cache.get(emoji.id)
56 | emoji.delete().then(() => {
57 | message.channel.send(`1 emoji surppimé`)
58 |
59 | })
60 |
61 | }
62 | }
63 |
64 | }
65 | }
--------------------------------------------------------------------------------
/commands/gestion/massrole.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | module.exports = {
5 | name: 'massrole',
6 | aliases: [],
7 | run: async (client, message, args, prefix, color) => {
8 |
9 |
10 | let perm = ""
11 | message.member.roles.cache.forEach(role => {
12 | if (db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
13 | })
14 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
15 |
16 | if (args[0] === "add") {
17 | const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[1]);
18 | if (!role) return message.channel.send(`Aucun rôle trouver pour \`${args[1] || " "}\``)
19 | let count = 0
20 | message.channel.send(`Je suis entrain d'ajouté le rôle \`${role}\` à ${message.guild.memberCount} utilisateur...`)
21 | message.guild.members.cache.forEach(member => setInterval(() => {
22 | count++
23 | if (member) member.roles.add(role, `Masiverole par ${message.author.tag}`).catch()
24 | if(count === message.guild.memberCount) return message.channel.send(`1 rôle ajouté à ${message.guild.memberCount} ${message.guild.memberCount > 1 ? 'membres' : 'membre'}`);
25 | }), 250)
26 |
27 |
28 | } else if (args[0] === "remove") {
29 | const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[1]);
30 | if (!role) return message.channel.send(`Aucun rôle trouver pour \`${args[1] || " "}\``)
31 |
32 | message.channel.send(`Je suis entrain d'enlevé le rôle \`${role}\` à ${message.guild.memberCount} utilisateur...`)
33 | message.guild.members.cache.forEach(member => setInterval(() => {
34 | count++
35 | if (member) member.roles.remove(role, `Masiverole par ${message.author.tag}`).catch()
36 | if(count === message.guild.memberCount) return message.channel.send(`1 rôle enlevé à ${message.guild.memberCount} ${message.guild.memberCount > 1 ? 'membres' : 'membre'}`);
37 |
38 | }), 250);
39 |
40 | }
41 | }
42 |
43 | }
44 | }
--------------------------------------------------------------------------------
/commands/gestion/public.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 |
4 | module.exports = {
5 | name: 'public',
6 | aliases: [],
7 | run: async (client, message, args, prefix, color) => {
8 |
9 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true) {
10 |
11 | if(args[0] === "add") {
12 | let ss = message.mentions.channels.first() || message.guild.channels.cache.get(args[0])
13 | if(ss) {
14 | if(db.get(`channelpublic_${message.guild.id}_${ss.id}`) === true) return message.channel.send(`Les commandes publiques dans ${ss} sont déjà activées`)
15 | db.set(`channelpublic_${message.guild.id}_${ss.id}`, true)
16 | message.channel.send(`Les commandes publiques dans ${ss} sont maintenant activées`)
17 | } else if(!ss) {
18 | return message.react(":x:")
19 | }
20 | } else if(args[0] === "remove") {
21 |
22 | let ss = message.mentions.channels.first() || message.guild.channels.cache.get(args[0])
23 | if(ss) {
24 | if(db.get(`channelpublic_${message.guild.id}_${ss.id}`) === null) return message.channel.send(`Les commandes publiques dans ${ss} sont déjà désactivées`)
25 | db.set(`channelpublic_${message.guild.id}_${ss.id}`, null)
26 | message.channel.send(`Les commandes publiques dans ${ss} sont maintenant désactivées`)
27 | } else if(!ss) {
28 | return message.react(":x:")
29 | }
30 |
31 |
32 | } else if(args[0] === "list") {
33 |
34 | let money = db.all().filter(data => data.ID.startsWith(`channelpublic_${message.guild.id}`)).sort((a, b) => b.data - a.data)
35 |
36 | let p0 = 0;
37 | let p1 = 15;
38 | let page = 1;
39 |
40 | const embed = new Discord.MessageEmbed()
41 | .setTitle(`Liste des salon public`)
42 | .setDescription(money
43 | .filter(x => message.guild.channels.cache.get(x.ID.split('_')[2]))
44 | .map((m, i) => `${i + 1}) <#${message.guild.channels.cache.get(m.ID.split('_')[2]).id}> (${m.ID.split('_')[2]})`)
45 | .slice(0, 15)
46 |
47 | )
48 | .setFooter(`${page}/${Math.ceil(money.length === 0?1:money.length / 15)} • ${client.config.name}`)
49 | .setColor(color)
50 |
51 |
52 | message.channel.send(embed).then(async tdata => {
53 | if (money.length > 15) {
54 | const B1 = new MessageButton()
55 | .setLabel("◀")
56 | .setStyle("gray")
57 | .setID('publiclist1');
58 |
59 | const B2 = new MessageButton()
60 | .setLabel("▶")
61 | .setStyle("gray")
62 | .setID('publiclist2');
63 |
64 | const bts = new MessageActionRow()
65 | .addComponent(B1)
66 | .addComponent(B2)
67 | tdata.edit("", { embed: embed, components: [bts] })
68 | setTimeout(() => {
69 | tdata.edit("", {
70 | components: [], embed: new Discord.MessageEmbed()
71 | .setTitle(`Liste des salon public`)
72 | .setDescription(money
73 | .filter(x => message.guild.channels.cache.get(x.ID.split('_')[2]))
74 | .map((m, i) => `${i + 1}) <#${message.guild.channels.cache.get(m.ID.split('_')[2]).id}> (${m.ID.split('_')[2]})`)
75 | .slice(0, 15)
76 |
77 | )
78 | .setFooter(`${page}/${Math.ceil(money.length === 0?1:money.length / 15)} • ${client.config.name}`)
79 | .setColor(color)
80 |
81 |
82 | })
83 | // message.channel.send(embeds)
84 | }, 60000 * 5)
85 | client.on("clickButton", (button) => {
86 | if (button.clicker.user.data !== message.author.id) return ;
87 | if (button.id === "publiclist1") {
88 | button.reply.defer(true)
89 |
90 | p0 = p0 - 15;
91 | p1 = p1 - 15;
92 | page = page - 1
93 |
94 | if (p0 < 0) {
95 | return
96 | }
97 | if (p0 === undefined || p1 === undefined) {
98 | return
99 | }
100 |
101 |
102 | embed .setDescription(money
103 | .filter(x => message.guild.channels.cache.get(x.ID.split('_')[2]))
104 | .map((m, i) => `${i + 1}) <#${message.guild.channels.cache.get(m.ID.split('_')[2]).id}> (${m.ID.split('_')[2]})`)
105 | .slice(0, 15)
106 |
107 | )
108 | .setFooter(`${page}/${Math.ceil(money.length === 0?1:money.length / 15)} • ${client.config.name}`)
109 | tdata.edit(embed);
110 |
111 | }
112 | if (button.id === "publiclist2") {
113 | button.reply.defer(true)
114 |
115 | p0 = p0 + 15;
116 | p1 = p1 + 15;
117 |
118 | page++;
119 |
120 | if (p1 > money.length + 15) {
121 | return
122 | }
123 | if (p0 === undefined || p1 === undefined) {
124 | return
125 | }
126 |
127 |
128 | embed .setDescription(money
129 | .filter(x => message.guild.channels.cache.get(x.ID.split('_')[2]))
130 | .map((m, i) => `${i + 1}) <#${message.guild.channels.cache.get(m.ID.split('_')[2]).id}> (${m.ID.split('_')[2]})`)
131 | .slice(0, 15)
132 |
133 | )
134 | .setFooter(`${page}/${Math.ceil(money.length === 0?1:money.length / 15)} • ${client.config.name}`)
135 | tdata.edit(embed);
136 |
137 | }
138 | })
139 | }
140 |
141 | })
142 |
143 | }
144 | }}}
145 |
--------------------------------------------------------------------------------
/commands/gestion/raidlog.js:
--------------------------------------------------------------------------------
1 | const { MessageEmbed } = require('discord.js')
2 | const db = require('quick.db')
3 |
4 | module.exports = {
5 | name: 'raidlog',
6 | aliases: [],
7 | run: async (client, message, args, prefix, color) => {
8 |
9 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true) {
10 |
11 | let ss = message.mentions.channels.first() || message.guild.channels.cache.get(args[0])
12 | if(args[0] === "on") {
13 | const channel = message.channel
14 |
15 | db.set(`${message.guild.id}.raidlog`, channel.id)
16 | message.channel.send(`Le salon ${channel} sera maintenant utilisé pour envoyer les logs de raid`)
17 | }
18 |
19 | else if(args[0] === "off") {
20 | db.set(`${message.guild.id}.raidlog`,null)
21 | message.channel.send(`Logs de raid désactivés`)
22 |
23 | } else
24 | if(ss) {
25 | db.set(`${message.guild.id}.raidlog`, ss.id)
26 | message.channel.send(`Le salon ${ss} sera maintenant utilisé pour envoyer les logs de raid`)
27 | }
28 |
29 | } else {
30 |
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/commands/gestion/say.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 | module.exports = {
6 | name: 'say',
7 | aliases: [],
8 |
9 | run: async (client, message, args, prefix, color) => {
10 | message.delete();
11 |
12 | let perm = ""
13 | message.member.roles.cache.forEach(role => {
14 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
15 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
16 | })
17 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
18 | let tosay = args.join(" ")
19 | if(!tosay) return
20 | if(tosay.includes("discord.gg/")|| tosay.includes("https://discord.gg/")) return
21 | if(tosay.includes("@everyone")&& !message.member.hasPermission("MENTION_EVERYONE")|| tosay.includes("@here")&& !message.member.hasPermission("MENTION_EVERYONE")) return
22 |
23 | message.channel.send(tosay)
24 |
25 |
26 |
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/commands/mods/addrole.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | function unban(message, user, authorcooldown) {
5 | message.guild.members.unban(user.id, {reason: `Debannis par ${message.author.tag}`}).then(r => {
6 | authorcooldown.limit++
7 | setTimeout(() => {
8 | authorcooldown.limit = authorcooldown.limit - 1
9 | }, 120000);
10 | })
11 | };
12 | module.exports = {
13 | name: 'addrole',
14 | aliases: [],
15 | run: async (client, message, args, prefix, color) => {
16 |
17 | let perm = ""
18 | message.member.roles.cache.forEach(role => {
19 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
20 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
21 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
22 | })
23 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
24 | let rMember = message.mentions.members.first() || message.guild.members.cache.get(args[0])
25 | if (!rMember) return
26 |
27 |
28 |
29 | let role = message.mentions.roles.first() || message.guild.roles.cache.get(args[1])
30 |
31 |
32 | if (!role) return message.channel.send(`Aucun rôle trouvé pour \`${args[1]|| "rien"}\``)
33 | if (!client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === null && role.permissions.has("KICK_MEMBERS") || role.permissions.has("BAN_MEMBERS") || role.permissions.has("MANAGE_WEBHOOKS") ||role.permissions.has("ADMINISTRATOR") || role.permissions.has("MANAGE_CHANNELS") || role.permissions.has("MANAGE_GUILD") || role.permissions.has("MENTION_EVERYONE") || role.permissions.has("MANAGE_ROLES")) {
34 | return message.channel.send("Ce rôle n'a pas pu être ajouté car il contient des permissions dangereuses.")
35 | }
36 |
37 |
38 |
39 | if (rMember.roles.cache.has(role.id)) return message.channel.send(`1 rôle ajouté à 0 membre`)
40 |
41 | if (!rMember.roles.cache.has(role.id)) await rMember.roles.add(role.id, `Rôle ajouté par ${message.author.tag}`).then(() => {
42 |
43 | message.channel.send(`Rôle ajouté !`)
44 | }).catch(() => {
45 |
46 | message.channel.send(`Je n'est pas pu ajouté ce rôle à **${rMember.tag}** !`)
47 |
48 | })
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/commands/mods/banlist.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | const {MessageEmbed} = require("discord.js")
5 | function sleep(ms) {
6 | return new Promise((resolve) => {
7 | setTimeout(resolve, ms)})}
8 | module.exports = {
9 | name: 'banlist',
10 | aliases: [],
11 | run: async (client, message, args, prefix, color) => {
12 | let perm = ""
13 | message.member.roles.cache.forEach(role => {
14 |
15 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
16 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
17 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
18 | })
19 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
20 | message.guild.fetchBans()
21 |
22 | .then(async bans => {
23 | let p0 = 0;
24 | let p1 = 30;
25 | let page = 1;
26 | let ie = 0;
27 | const obj = bans.map(m => ({
28 | user: ``
29 | }));
30 | const bList = Array.from(obj);
31 | if (bList.length < 1) return message.channel.send(new Discord.MessageEmbed().setColor(color).setTitle("Aucun ban en cours"))
32 |
33 | const embed = new Discord.MessageEmbed()
34 | .setTitle('Ban en cours')
35 | .setDescription(bans
36 | .map(r => r)
37 |
38 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
39 | .slice(p0, p1)
40 | )
41 |
42 | .setColor(color)
43 | .setFooter(`Total: ${bList.length} • ${client.config.name}`)
44 |
45 |
46 | message.channel.send(embed).then(async tdata => {
47 | if (bList.length > 15) {
48 | const B1 = new MessageButton()
49 | .setLabel("◀")
50 | .setStyle("gray")
51 | .setID('banlist1');
52 |
53 | const B2 = new MessageButton()
54 | .setLabel("▶")
55 | .setStyle("gray")
56 | .setID('banlist2');
57 |
58 | const bts = new MessageActionRow()
59 | .addComponent(B1)
60 | .addComponent(B2)
61 | tdata.edit("", { embed: embed, components: [bts] })
62 | setTimeout(() => {
63 | tdata.edit("", {
64 | components: [], embed: new Discord.MessageEmbed()
65 | .setTitle('Ban en cours')
66 | .setDescription(bans
67 | .map(r => r)
68 |
69 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
70 | .slice(p0, p1)
71 | )
72 |
73 | .setColor(color)
74 | .setFooter(`Total: ${bList.length} • ${client.config.name}`)
75 |
76 |
77 | })
78 | // message.channel.send(embeds)
79 | }, 60000 * 5)
80 | client.on("clickButton", (button) => {
81 | if (button.clicker.user.id !== message.author.id) return
82 | if (button.id === "banlist1") {
83 | button.reply.defer(true)
84 |
85 | p0 = p0 - 15;
86 | p1 = p1 - 15;
87 | page = page - 1
88 |
89 | if (p0 < 0) {
90 | return
91 | }
92 | if (p0 === undefined || p1 === undefined) {
93 | return
94 | }
95 |
96 |
97 | embed .setDescription(bans
98 | .map(r => r)
99 |
100 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
101 | .slice(p0, p1)
102 | )
103 |
104 | .setColor(color)
105 | .setFooter(`Total: ${bList.length} • ${client.config.name}`)
106 | tdata.edit(embed);
107 |
108 | }
109 | if (button.id === "banlist2") {
110 | button.reply.defer(true)
111 |
112 | p0 = p0 + 15;
113 | p1 = p1 + 15;
114 |
115 | page++;
116 |
117 | if (p1 > bList.length + 15) {
118 | return
119 | }
120 | if (p0 === undefined || p1 === undefined) {
121 | return
122 | }
123 |
124 |
125 | embed .setDescription(bans
126 | .map(r => r)
127 |
128 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
129 | .slice(p0, p1)
130 | )
131 |
132 | .setColor(color)
133 | .setFooter(`Total: ${bList.length} • ${client.config.name}`)
134 | tdata.edit(embed);
135 |
136 | }
137 | })
138 | }
139 |
140 | })
141 | })
142 |
143 | }
144 | }
145 | }
--------------------------------------------------------------------------------
/commands/mods/clear.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | function unban(message, user, authorcooldown) {
5 | message.guild.members.unban(user.id, { reason: `Debannis par ${message.author.tag}` }).then(r => {
6 | authorcooldown.limit++
7 | setTimeout(() => {
8 | authorcooldown.limit = authorcooldown.limit - 1
9 | }, 120000);
10 | })
11 | };
12 | module.exports = {
13 | name: 'clear',
14 | aliases: [],
15 |
16 | run: async (client, message, args, prefix, color) => {
17 |
18 | let perm = ""
19 | message.member.roles.cache.forEach(role => {
20 | if (db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
21 | if (db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
22 | })
23 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
24 |
25 | if (message.mentions.members.first()) {
26 |
27 | message.delete()
28 | message.channel.messages.fetch({ limit: 100 })
29 | .then((messages) => {
30 | var filterUser = message.mentions.members.first().id;
31 | var filtered = messages.filter(m => m.author.id === filterUser).array().slice(0, 100);
32 | message.channel.bulkDelete(filtered, true)
33 |
34 | }).catch();
35 | } else if (args[0]) {
36 | if(isNaN(args.slice(0).join(" "))) return
37 | let amount = 0;
38 | if (args.slice(0).join(" ") === '1' || args.slice(0).join(" ") === '0') {
39 | amount = 1;
40 | } else {
41 | message.delete()
42 | amount = args.slice(0).join(" ");
43 | if (amount > 100) {
44 | amount = 100;
45 | }
46 | }
47 | await message.channel.bulkDelete(amount, true).then((_message) => {
48 |
49 | });
50 |
51 | } else {
52 |
53 | message.delete()
54 | await message.channel.bulkDelete(100, true).then(async (_message) => {
55 | setTimeout(async function () {
56 | await message.channel.bulkDelete(100, true)
57 |
58 |
59 | }, 1000);
60 |
61 |
62 | });
63 | }
64 |
65 | }
66 | }
67 | }
--------------------------------------------------------------------------------
/commands/mods/derank.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | function unban(message, user, authorcooldown) {
5 | message.guild.members.unban(user.id, { reason: `Debannis par ${message.author.tag}` }).then(r => {
6 | authorcooldown.limit++
7 | setTimeout(() => {
8 | authorcooldown.limit = authorcooldown.limit - 1
9 | }, 120000);
10 | })
11 | };
12 | module.exports = {
13 | name: 'derank',
14 | aliases: [],
15 |
16 | run: async (client, message, args, prefix, color) => {
17 |
18 | let perm = ""
19 | message.member.roles.cache.forEach(role => {
20 | if (db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
21 | })
22 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
23 |
24 |
25 | if(args[0]) {
26 | let user = await client.users.cache.get(args[0]) || message.mentions.members.first()
27 | if(!user) return message.channel.send(`Aucun membre trouvée pour: \`${args[0]}\``)
28 | if(user) {
29 | if (user.id === message.author.id) {
30 | return message.channel.send(`Vous n'avez pas la permission de **derank** <@${user.id}>`);
31 | }
32 | if(user.roles.highest.position > client.user.id) return message.channel.send(`Je n'ai pas les permissions nécessaires pour **derank** <@${user.id}>`);
33 | if( db.get(`ownermd_${client.user.id}_${message.author.id}`) === true) return message.channel.send(`Vous n'avez pas la permission de **derank** <@${user.id}>`);
34 | if(client.config.owner.includes(user.id)) return message.channel.send(`Vous n'avez pas la permission de **derank** <@${user.id}>`);
35 |
36 |
37 |
38 |
39 | message.channel.send(`${user} à été **derank**`)
40 | user.roles.set([], `Derank par ${message.author.tag}`)
41 | let wass = db.get(`logmod_${message.guild.id}`);
42 | const logschannel = message.guild.channels.cache.get(wass)
43 | if(logschannel) logschannel.send(new Discord.MessageEmbed()
44 | // .setAuthor(message.author.tag, message.author.displayAvatarURL({dynamic: true}))
45 | .setColor(color)
46 | // .setTitle(`<:protection:847072581382438953> Modération • Type: **\`derank\`**`)
47 | // .setTimestamp()
48 | // .setDescription(`**Derank de**: ${user}\n**Auteur**: ${message.author}\n**Temps de réponse**: ${client.ws.ping}ms`)
49 | .setDescription(`${message.author} a **derank** ${user.user}`)
50 | )
51 | }}
52 |
53 | }
54 | }
55 | }
--------------------------------------------------------------------------------
/commands/mods/lock.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 | module.exports = {
6 | name: 'lock',
7 | aliases: [],
8 | run: async (client, message, args, prefix, color) => {
9 |
10 | try {
11 | if(args[0] === "all") {
12 | let perm = ""
13 | message.member.roles.cache.forEach(role => {
14 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
15 | })
16 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
17 | message.guild.channels.cache.forEach((channel, id) => {
18 | channel.updateOverwrite(message.guild.roles.everyone, {
19 | SEND_MESSAGES: false,
20 | SPEAK: false,
21 | ADD_REACTIONS: false
22 | })
23 | }, `Tout les salon fermé par ${message.author.tag}`);
24 |
25 |
26 |
27 | message.channel.send(`${message.guild.channels.cache.size} salons fermés`);
28 |
29 | }
30 | } else {
31 | let perm = ""
32 | message.member.roles.cache.forEach(role => {
33 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
34 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
35 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
36 | })
37 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
38 | let channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) ||message.channel
39 |
40 | try {
41 | message.guild.roles.cache.forEach(role => {
42 | channel.createOverwrite(role, {
43 | SEND_MESSAGES: false,
44 | ADD_REACTIONS: false
45 | });
46 | }, `Salon fermé par ${message.author.tag}`);
47 | } catch (e) {
48 | ;
49 | }
50 | message.channel.send(`Les membres ne peuvent plus parler dans <#${channel.id}>`);
51 |
52 | }
53 |
54 | }
55 |
56 | } catch (error) {
57 | return;
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/commands/mods/mutelist.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | const {MessageEmbed} = require("discord.js")
5 | function sleep(ms) {
6 | return new Promise((resolve) => {
7 | setTimeout(resolve, ms)})}
8 | module.exports = {
9 | name: 'mutelist',
10 | aliases: [],
11 | run: async (client, message, args, prefix, color) => {
12 | let perm = ""
13 | message.member.roles.cache.forEach(role => {
14 |
15 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
16 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
17 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
18 | })
19 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
20 | let Muted = await db.fetch(`mRole_${message.guild.id}`);
21 | let muteRole = await message.guild.roles.cache.get(Muted) || message.guild.roles.cache.find(role => role.name === `muet`) || message.guild.roles.cache.find(role => role.name === `Muted`) || message.guild.roles.cache.find(role => role.name === `Mute`)
22 |
23 | if(!muteRole) return message.channel.send(new Discord.MessageEmbed().setColor(color).setTitle("Aucun mute en cours"))
24 | if(muteRole.members.size === 0 || undefined || false || null) return message.channel.send(new Discord.MessageEmbed().setColor(color).setTitle("Aucun mute en cours"))
25 | let p0 = 0;
26 | let p1 = 15;
27 | let page = 1;
28 |
29 | const embed = new Discord.MessageEmbed()
30 | .setTitle('Mute en cours')
31 | .setDescription(muteRole.members
32 | .map(r => r)
33 | .filter(x => message.guild.members.cache.get(x.user.id))
34 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
35 | .slice(p0, p1)
36 | )
37 |
38 | .setColor(color)
39 | .setFooter(`Total: ${muteRole.members.size} • ${client.config.name}`)
40 |
41 |
42 | message.channel.send(embed).then(async tdata => {
43 | if (muteRole.members.size > 15) {
44 | const B1 = new MessageButton()
45 | .setLabel("◀")
46 | .setStyle("gray")
47 | .setID('mutelist1');
48 |
49 | const B2 = new MessageButton()
50 | .setLabel("▶")
51 | .setStyle("gray")
52 | .setID('mutelist2');
53 |
54 | const bts = new MessageActionRow()
55 | .addComponent(B1)
56 | .addComponent(B2)
57 | tdata.edit("", { embed: embed, components: [bts] })
58 | setTimeout(() => {
59 | tdata.edit("", {
60 | components: [], embed: new Discord.MessageEmbed()
61 | .setTitle('Mute en cours')
62 | .setDescription(muteRole.members
63 | .map(r => r)
64 | .filter(x => message.guild.members.cache.get(x.user.id))
65 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
66 | .slice(p0, p1)
67 | )
68 |
69 | .setColor(color)
70 | .setFooter(`Total: ${muteRole.members.size} • ${client.config.name}`)
71 |
72 |
73 | })
74 | // message.channel.send(embeds)
75 | }, 60000 * 5)
76 | client.on("clickButton", (button) => {
77 |
78 | if (button.id === "mutelist1") {
79 | if (button.clicker.user.id !== message.author.id) return ;
80 | button.reply.defer(true)
81 |
82 | p0 = p0 - 15;
83 | p1 = p1 - 15;
84 | page = page - 1
85 |
86 | if (p0 < 0) {
87 | return
88 | }
89 | if (p0 === undefined || p1 === undefined) {
90 | return
91 | }
92 |
93 |
94 | embed .setDescription(muteRole.members
95 | .map(r => r)
96 | .filter(x => message.guild.members.cache.get(x.user.id))
97 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
98 | .slice(p0, p1)
99 | )
100 |
101 | .setColor(color)
102 | .setFooter(`Total: ${muteRole.members.size} • ${client.config.name}`)
103 | tdata.edit(embed);
104 |
105 | }
106 | if (button.id === "mutelist2") {
107 | if (button.clicker.user.id !== message.author.id) return ;
108 | button.reply.defer(true)
109 |
110 | p0 = p0 + 15;
111 | p1 = p1 + 15;
112 |
113 | page++;
114 |
115 | if (p1 > muteRole.members.size + 15) {
116 | return
117 | }
118 | if (p0 === undefined || p1 === undefined) {
119 | return
120 | }
121 |
122 |
123 | embed .setDescription(muteRole.members
124 | .map(r => r)
125 | .filter(x => message.guild.members.cache.get(x.user.id))
126 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
127 | .slice(p0, p1)
128 | )
129 |
130 | .setColor(color)
131 | .setFooter(`Total: ${muteRole.members.size} • ${client.config.name}`)
132 | tdata.edit(embed);
133 |
134 | }
135 | })
136 | }
137 |
138 | })
139 |
140 | }
141 | }
142 | }
--------------------------------------------------------------------------------
/commands/mods/muterole.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | const {MessageEmbed} = require("discord.js")
5 |
6 | module.exports = {
7 | name: 'muterole',
8 | aliases: [],
9 |
10 | run: async (client, message, args, prefix, color) => {
11 | let perm = ""
12 | message.member.roles.cache.forEach(role => {
13 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
14 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
15 | })
16 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
17 | let Muted = await db.fetch(`mRole_${message.guild.id}`);
18 |
19 | let muterole = await message.guild.roles.cache.get(Muted) || message.guild.roles.cache.find(role => role.name === `muet`) || message.guild.roles.cache.find(role => role.name === `Muted`) || message.guild.roles.cache.find(role => role.name === `Mute`)
20 | if(muterole) {
21 | const embed = new Discord.MessageEmbed()
22 | embed.setColor(color)
23 | embed.setDescription(`**Il existe déjà un rôle muet : <@&${muterole.id}>**\nVérification des permissions du rôles muet en cours`)
24 | message.channel.send(embed).then(async mm => {
25 | const embed2= new Discord.MessageEmbed()
26 | embed2.setTitle("Les permissions du rôle muet ont été mises à jour")
27 | embed2.setColor(color)
28 |
29 | const channels = message.guild.channels.cache.filter(ch => ch.type !== 'category');
30 | channels.forEach(channel => {
31 |
32 |
33 | channel.createOverwrite(muterole, {
34 | SEND_MESSAGES: false,
35 | CONNECT: false,
36 | ADD_REACTIONS: false
37 | }, "Muterole")
38 | embed2.setDescription(`**__D'autres permission déjà existantes peuvent rendre innefficace le mute pour certains rôles dans les salons suivants :__**\n\n**${channel.name}**\n- ${muterole.name}\n`, true)
39 | embed2.setFooter("Tous les rôles ayant la permissons \"envoyer des messages\" en vert seront insensible au mute")
40 |
41 | })
42 |
43 | message.channel.send(embed2)
44 | })
45 | return;
46 | }
47 | if(!muterole) {
48 | const embed = new Discord.MessageEmbed()
49 | embed.setColor(color)
50 | embed.setTitle(`Création d'un rôle muet`)
51 | message.channel.send(embed).then(async m => {
52 | muterole = await message.guild.roles.create({
53 | data: {
54 | name: 'muet',
55 | permissions: 0
56 | }
57 | })
58 | message.guild.channels.cache.forEach(channel => channel.createOverwrite(muterole, {
59 | SEND_MESSAGES: false,
60 | CONNECT: false,
61 | ADD_REACTIONS: false
62 | }, "Muterole"))
63 | db.set(`mRole_${message.guild.id}`, `${muterole.id}`)
64 | const e = new Discord.MessageEmbed()
65 | e.setColor(color)
66 | e.setDescription(`***Rôle muet créé :*** ${muterole}`)
67 | return m.edit("",e)
68 | })}
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/commands/mods/renew.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 | module.exports = {
6 | name: 'renew',
7 | aliases: ["nuke","purge"],
8 |
9 | run: async (client, message, args, prefix, color) => {
10 |
11 | if(args[0] === "all") {
12 |
13 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true ) {
14 | const channels = message.channel.guild.channels.cache.filter(ch => ch.type !== 'category');
15 |
16 | channels.forEach(async channele => {
17 | await channele.clone({
18 | name: channele.name,
19 | permissions: channele.permissionsOverwrites,
20 | type: channele.type,
21 | topic: channele.withTopic,
22 | nsfw: channele.nsfw,
23 | birate: channele.bitrate,
24 | userLimit: channele.userLimit,
25 | rateLimitPerUser: channele.rateLimitPerUser,
26 | permissions: channele.withPermissions,
27 | position: channele.rawPosition,
28 | reason: `Tout les salon recréé par ${message.author.tag} (${message.author.id})`
29 | })
30 | .catch(err => {})
31 | channele.delete().catch(err => {}) })
32 |
33 |
34 |
35 | }
36 |
37 | } else {
38 | let perm = ""
39 | message.member.roles.cache.forEach(role => {
40 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
41 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
42 | })
43 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
44 | let channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) || message.channel
45 | if(channel === message.channel) {
46 | try {
47 | let ee = await channel.clone({
48 | name: channel.name,
49 | permissions: channel.permissionsOverwrites,
50 | type: channel.type,
51 | topic: channel.withTopic,
52 | nsfw: channel.nsfw,
53 | birate: channel.bitrate,
54 | userLimit: channel.userLimit,
55 | rateLimitPerUser: channel.rateLimitPerUser,
56 | permissions: channel.withPermissions,
57 | position: channel.rawPosition,
58 | reason: `Salon recréé par ${message.author.tag} (${message.author.id})`
59 | })
60 | channel.delete()
61 | ee.send(`${message.author} salon recréé`)
62 | } catch (error) {
63 | return;
64 | }
65 | } else {
66 |
67 | try {
68 | let ee = await channel.clone({
69 | name: channel.name,
70 | permissions: channel.permissionsOverwrites,
71 | type: channel.type,
72 | topic: channel.withTopic,
73 | nsfw: channel.nsfw,
74 | birate: channel.bitrate,
75 | userLimit: channel.userLimit,
76 | rateLimitPerUser: channel.rateLimitPerUser,
77 | permissions: channel.withPermissions,
78 | position: channel.rawPosition,
79 | reason: `Salon recréé par ${message.author.tag} (${message.author.id})`
80 | })
81 | channel.delete()
82 | ee.send(`${message.author} salon recréé`)
83 |
84 | } catch (error) {
85 | return;
86 | }
87 |
88 | message.channel.send("Salon recréé : "+channel.name)
89 | }
90 |
91 |
92 | }
93 | }
94 | }
95 | }
--------------------------------------------------------------------------------
/commands/mods/unban.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | function unban(message, user, authorcooldown) {
5 | message.guild.members.unban(user.id, {reason: `Debannis par ${message.author.tag}`}).then(r => {
6 | authorcooldown.limit++
7 | setTimeout(() => {
8 | authorcooldown.limit = authorcooldown.limit - 1
9 | }, 120000);
10 | })
11 | };
12 | const cooldown = {}
13 | module.exports = {
14 | name: 'unban',
15 | aliases: [],
16 | run: async (client, message, args, prefix, color) => {
17 |
18 | if(args[0] == "all") {
19 | let perm = ""
20 | message.member.roles.cache.forEach(role => {
21 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
22 | })
23 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
24 | try {
25 | message.guild.fetchBans().then(bans => {
26 | if (bans.size == 0) {
27 | message.channel.send("Aucune personne n'est ban.")
28 | } else {
29 | bans.forEach(ban => {
30 | setInterval(()=> {if(ban.user) message.guild.members.unban(ban.user.id, `Unbanall par ${message.author.tag}`).catch(err => {});}, 250)
31 |
32 | })
33 | let chx = db.get(`logmod_${message.guild.id}`);
34 |
35 | const logsmod = message.guild.channels.cache.get(chx)
36 |
37 | message.channel.send(`${bans.size} ${bans.size > 1 ? "utilisateurs ont": "utilisateur a"} été unban`);
38 | if(logsmod) logsmod.send(
39 | new Discord.MessageEmbed()
40 | // .setAuthor(message.author.tag, message.author.displayAvatarURL({dynamic: true}))
41 | .setColor(color)
42 | // .setTitle(`<:protection:847072581382438953> Modération • Type: **\`bannissement\`**`)
43 | // .setTimestamp()
44 | // .setDescription(` **Bannissement de**: ${user}\n**Auteur**: ${message.author} \n**Salon**: ${message.channel}\n**Temps de réponse**: ${client.ws.ping}ms`)
45 | .setDescription(`${message.author} a **unban** tout les membres bannis`))
46 |
47 | }
48 |
49 | }
50 | )
51 | } catch (error) {
52 | return;
53 | } }
54 | } else if(args[0]) {
55 | let perm = ""
56 | message.member.roles.cache.forEach(role => {
57 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
58 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
59 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
60 | })
61 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
62 | let chx = db.get(`logmod_${message.guild.id}`);
63 | const logsmod = message.guild.channels.cache.get(chx)
64 | if(!cooldown[message.author.id]) cooldown[message.author.id] = { limit: 0 }
65 | var authorcooldown = cooldown[message.author.id]
66 | if(authorcooldown.limit > 5) return message.channel.send(`Vous avez atteint votre limite de **bannisement**, veuillez retenter plus tard!`);
67 |
68 | let user = client.users.cache.get(args[0]) || await client.users.fetch(args[0])
69 | if(!user) return message.channel.send(`Aucun membre trouvée pour: \`${args[0]}\``)
70 |
71 | const banList = await message.guild.fetchBans();
72 | const bannedUser = banList.find(slm => slm.id === user.id);
73 | if(!bannedUser) return message.channel.send(`Aucun membre banni trouvée pour: \`${args[0]}\``)
74 |
75 | message.channel.send(`${user.tag} n'est plus banni`);
76 | unban(message, user, authorcooldown)
77 | if(logsmod) logsmod.send(
78 | new Discord.MessageEmbed()
79 | // .setAuthor(message.author.tag, message.author.displayAvatarURL({dynamic: true}))
80 | .setColor(color)
81 | // .setTitle(`<:protection:847072581382438953> Modération • Type: **\`bannissement\`**`)
82 | // .setTimestamp()
83 | // .setDescription(` **Bannissement de**: ${user}\n**Auteur**: ${message.author} \n**Salon**: ${message.channel}\n**Temps de réponse**: ${client.ws.ping}ms`)
84 | .setDescription(`${message.author} a **unban** ${user}`))
85 |
86 |
87 | }}
88 |
89 | }
90 | }
--------------------------------------------------------------------------------
/commands/mods/unlock.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 | module.exports = {
6 | name: 'unlock',
7 | aliases: [],
8 | run: async (client, message, args, prefix, color) => {
9 |
10 | try {
11 | if(args[0] === "all") {
12 | let perm = ""
13 | message.member.roles.cache.forEach(role => {
14 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
15 | })
16 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
17 | message.guild.channels.cache.forEach((channel, id) => {
18 | channel.updateOverwrite(message.guild.roles.everyone, {
19 | SEND_MESSAGES: true,
20 | SPEAK: true,
21 | })
22 | }, `Tout les salon fermé par ${message.author.tag}`);
23 |
24 |
25 |
26 | message.channel.send(`${message.guild.channels.cache.size} salons ouvert`);
27 |
28 | }
29 | } else {
30 | let perm = ""
31 | message.member.roles.cache.forEach(role => {
32 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
33 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
34 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
35 | })
36 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
37 | let channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) ||message.channel
38 |
39 |
40 | message.guild.roles.cache.forEach(role => {
41 | channel.createOverwrite(role, {
42 | SEND_MESSAGES: true,
43 | SPEAK: true,
44 | });
45 | }, `Salon fermé par ${message.author.tag}`);
46 |
47 | message.channel.send(`Les membres peuvent parler dans <#${channel.id}>`);
48 |
49 |
50 |
51 | }}
52 |
53 | } catch (error) {
54 | return;
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/commands/mods/unmute.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | function unban(message, user, authorcooldown) {
5 | message.guild.members.unban(user.id, {reason: `Debannis par ${message.author.tag}`}).then(r => {
6 | authorcooldown.limit++
7 | setTimeout(() => {
8 | authorcooldown.limit = authorcooldown.limit - 1
9 | }, 120000);
10 | })
11 | };
12 | module.exports = {
13 | name: 'unmute',
14 | aliases: [],
15 | run: async (client, message, args, prefix, color) => {
16 | let chx = db.get(`logmod_${message.guild.id}`);
17 | const logschannel = message.guild.channels.cache.get(chx)
18 | if(args[0] == "all") {
19 | let perm = ""
20 | message.member.roles.cache.forEach(role => {
21 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
22 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
23 | })
24 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
25 | let Muted = await db.fetch(`mRole_${message.guild.id}`);
26 | let muteRole = await message.guild.roles.cache.get(Muted) || message.guild.roles.cache.find(role => role.name === `muet`) || message.guild.roles.cache.find(role => role.name === `Muted`) || message.guild.roles.cache.find(role => role.name === `Mute`)
27 | if(!muteRole) return message.channel.send(`Je ne trouve pas le rôle **muet**`)
28 | if(muteRole.members.size === 0 || undefined || false || null) return message.channel.send(`Tous les membres ont été unmute`)
29 | message.channel.send(`Tous les membres ont été unmute`)
30 | muteRole.members
31 | .forEach((m,i) => {m.send(`Vous avez été **unmute** de ${message.guild.name}`)
32 | m.roles.remove(muteRole.id)
33 | db.set(`mute_${message.guild.id}_${m.user.id}`, false)
34 |
35 |
36 | })
37 | }
38 | } else if(args[0]) {
39 | let perm = ""
40 | message.member.roles.cache.forEach(role => {
41 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
42 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
43 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
44 | })
45 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
46 | const user = message.mentions.members.first()|| message.guild.members.cache.get(args[0])
47 |
48 | if (!user) {
49 | return message.channel.send(`Aucun membre trouvé pour \`${args[0]}\``);
50 | }
51 | let Muted = await db.fetch(`mRole_${message.guild.id}`);
52 | let muterole = await message.guild.roles.cache.get(Muted) || message.guild.roles.cache.find(role => role.name === `muet`) || message.guild.roles.cache.find(role => role.name === `Muted`) || message.guild.roles.cache.find(role => role.name === `Mute`)
53 |
54 | if(!muterole) return message.channel.send(`Erreur : aucun rôle muet enregistré`)
55 | if (user.roles.cache.has(muterole)) {
56 | return message.channel.send(`${user} n'était pas mute`);
57 | }
58 |
59 | user.roles.remove(muterole, `Unmute par ${message.author.tag}`)
60 |
61 | message.channel.send(`${user} a été **unmute**`);
62 | db.set(`mute_${message.guild.id}_${user.id}`, null)
63 |
64 | user.send(`Vous avez été **unmute** sur ${message.guild.name}`);
65 |
66 |
67 | logschannel.send(new Discord.MessageEmbed()
68 | .setColor(color)
69 |
70 | .setDescription(`${message.author} a **unmute** ${user}`)
71 | )
72 | }
73 | }
74 | }
75 | }
--------------------------------------------------------------------------------
/commands/utilitaire/alladmin.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const {MessageEmbed} = require('discord.js')
3 | const db = require('quick.db')
4 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
5 | function sleep(ms) {
6 | return new Promise((resolve) => {
7 | setTimeout(resolve, ms)})}
8 | module.exports = {
9 | name: 'alladmin',
10 | aliases: [],
11 |
12 | run: async (client, message, args, prefix, color) => {
13 |
14 | let perm = ""
15 | message.member.roles.cache.forEach(role => {
16 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
17 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
18 | })
19 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
20 | var str_filtrer = message.guild.members.cache.filter(member => member.hasPermission("ADMINISTRATOR") && !member.user.bot)
21 | if(str_filtrer.size === 0 || undefined || false || null) return message.channel.send(new Discord.MessageEmbed().setColor(color).setTitle("Aucun admin présents"))
22 |
23 | let p0 = 0;
24 | let p1 = 10;
25 | let page = 1;
26 |
27 | const embed = new Discord.MessageEmbed()
28 | .setTitle('Liste des admins présents')
29 | .setDescription(str_filtrer
30 | .map(r => r)
31 | .filter(x => message.guild.members.cache.get(x.user.id))
32 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
33 | .slice(p0, p1)
34 | )
35 |
36 | .setColor(color)
37 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
38 |
39 |
40 | message.channel.send(embed).then(async tdata => {
41 | if (10 < str_filtrer.size) {
42 | const B1 = new MessageButton()
43 | .setLabel("◀")
44 | .setStyle("gray")
45 | .setID('alladm1');
46 |
47 | const B2 = new MessageButton()
48 | .setLabel("▶")
49 | .setStyle("gray")
50 | .setID('alladm2');
51 |
52 | const bts = new MessageActionRow()
53 | .addComponent(B1)
54 | .addComponent(B2)
55 | tdata.edit("", { embed: embed, components: [bts] })
56 | setTimeout(() => {
57 | tdata.edit("", {
58 | components: [], embed: new Discord.MessageEmbed()
59 | .setTitle('Liste des admins présents')
60 | .setDescription(str_filtrer
61 | .map(r => r)
62 | .filter(x => message.guild.members.cache.get(x.user.id))
63 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
64 | .slice(p0, p1)
65 | )
66 |
67 | .setColor(color)
68 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
69 |
70 |
71 | })
72 | // message.channel.send(embeds)
73 | }, 60000 * 5)
74 | client.on("clickButton", (button) => {
75 | if (button.id === "alladm1") {
76 | if (button.clicker.user.id !== message.author.id) return ;
77 |
78 | button.reply.defer(true)
79 |
80 | p0 = p0 - 10;
81 | p1 = p1 - 10;
82 | page = page - 1
83 |
84 | if (p0 < 0) {
85 | return
86 | }
87 | if (p0 === undefined || p1 === undefined) {
88 | return
89 | }
90 |
91 |
92 | embed .setDescription(str_filtrer
93 | .map(r => r)
94 | .filter(x => message.guild.members.cache.get(x.user.id))
95 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
96 | .slice(p0, p1)
97 | )
98 |
99 | .setColor(color)
100 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
101 | tdata.edit(embed);
102 |
103 | }
104 | if (button.id === "alladm2") {
105 | if (button.clicker.user.id !== message.author.id) return ;
106 |
107 | button.reply.defer(true)
108 |
109 | p0 = p0 + 10;
110 | p1 = p1 + 10;
111 |
112 | page++;
113 |
114 | if (p1 > str_filtrer.size + 10) {
115 | return
116 | }
117 | if (p0 === undefined || p1 === undefined) {
118 | return
119 | }
120 |
121 |
122 | embed .setDescription(str_filtrer
123 | .map(r => r)
124 | .filter(x => message.guild.members.cache.get(x.user.id))
125 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
126 | .slice(p0, p1)
127 | )
128 |
129 | .setColor(color)
130 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
131 | tdata.edit(embed);
132 |
133 | }
134 | })
135 | }
136 |
137 | })
138 |
139 | }
140 | }
141 | }
--------------------------------------------------------------------------------
/commands/utilitaire/allbot.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const {MessageEmbed} = require('discord.js')
3 |
4 | const db = require('quick.db')
5 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
6 | function sleep(ms) {
7 | return new Promise((resolve) => {
8 | setTimeout(resolve, ms)})}
9 | module.exports = {
10 | name: 'allbot',
11 | aliases: [],
12 |
13 | run: async (client, message, args, prefix, color) => {
14 |
15 | let perm = ""
16 | message.member.roles.cache.forEach(role => {
17 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
18 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
19 | })
20 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
21 |
22 | var str_filtrer = message.guild.members.cache.filter(member => member.user.bot)
23 | if(str_filtrer.size === 0 || undefined || false || null) return message.channel.send(new Discord.MessageEmbed().setColor(color).setTitle("Aucun bot présents"))
24 |
25 |
26 | let p0 = 0;
27 | let p1 = 15;
28 | let page = 1;
29 |
30 | const embed = new Discord.MessageEmbed()
31 | .setTitle('Liste des bot présents')
32 | .setDescription(str_filtrer
33 | .map(r => r)
34 | .filter(x => message.guild.members.cache.get(x.user.id))
35 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
36 | .slice(p0, p1)
37 | )
38 |
39 | .setColor(color)
40 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
41 |
42 |
43 | message.channel.send(embed).then(async tdata => {
44 | if (str_filtrer.size > 15) {
45 | const B1 = new MessageButton()
46 | .setLabel("◀")
47 | .setStyle("gray")
48 | .setID('allbot1');
49 |
50 | const B2 = new MessageButton()
51 | .setLabel("▶")
52 | .setStyle("gray")
53 | .setID('allbot2');
54 |
55 | const bts = new MessageActionRow()
56 | .addComponent(B1)
57 | .addComponent(B2)
58 | tdata.edit("", { embed: embed, components: [bts] })
59 | setTimeout(() => {
60 | tdata.edit("", {
61 | components: [], embed: new Discord.MessageEmbed()
62 | .setTitle('Liste des bot présents')
63 | .setDescription(str_filtrer
64 | .map(r => r)
65 | .filter(x => message.guild.members.cache.get(x.user.id))
66 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
67 | .slice(p0, p1)
68 | )
69 |
70 | .setColor(color)
71 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
72 |
73 |
74 | })
75 | // message.channel.send(embeds)
76 | }, 60000 * 5)
77 | client.on("clickButton", (button) => {
78 | if (button.id === "allbot1") {
79 | if (button.clicker.user.id !== message.author.id) return ;
80 | button.reply.defer(true)
81 |
82 | p0 = p0 - 15;
83 | p1 = p1 - 15;
84 | page = page - 1
85 |
86 | if (p0 < 0) {
87 | return
88 | }
89 | if (p0 === undefined || p1 === undefined) {
90 | return
91 | }
92 |
93 |
94 | embed .setDescription(str_filtrer
95 | .map(r => r)
96 | .filter(x => message.guild.members.cache.get(x.user.id))
97 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
98 | .slice(p0, p1)
99 | )
100 |
101 | .setColor(color)
102 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
103 | tdata.edit(embed);
104 |
105 | }
106 | if (button.id === "allbot2") {
107 | if (button.clicker.user.id !== message.author.id) return ;
108 | button.reply.defer(true)
109 |
110 | p0 = p0 + 15;
111 | p1 = p1 + 15;
112 |
113 | page++;
114 |
115 | if (p1 > str_filtrer.size + 15) {
116 | return
117 | }
118 | if (p0 === undefined || p1 === undefined) {
119 | return
120 | }
121 |
122 |
123 | embed .setDescription(str_filtrer
124 | .map(r => r)
125 | .filter(x => message.guild.members.cache.get(x.user.id))
126 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
127 | .slice(p0, p1)
128 | )
129 |
130 | .setColor(color)
131 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
132 | tdata.edit(embed);
133 |
134 | }
135 | })
136 | }
137 |
138 | })
139 |
140 | }
141 | }
142 | }
--------------------------------------------------------------------------------
/commands/utilitaire/allbotadmin.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const {MessageEmbed} = require('discord.js')
3 | const db = require('quick.db')
4 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
5 | function sleep(ms) {
6 | return new Promise((resolve) => {
7 | setTimeout(resolve, ms)})}
8 | module.exports = {
9 | name: 'allbotadmin',
10 | aliases: [],
11 |
12 | run: async (client, message, args, prefix, color) => {
13 |
14 | let perm = ""
15 | message.member.roles.cache.forEach(role => {
16 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
17 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
18 | })
19 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
20 |
21 | var str_filtrer = message.guild.members.cache.filter(member => member.hasPermission("ADMINISTRATOR") && member.user.bot)
22 | if(str_filtrer.size === 0 || undefined || false || null) return message.channel.send(new Discord.MessageEmbed().setColor(color).setTitle("Aucun bot admins présents"))
23 |
24 |
25 | let p0 = 0;
26 | let p1 = 15;
27 | let page = 1;
28 |
29 | const embed = new Discord.MessageEmbed()
30 | .setTitle('Liste des bots admins présents')
31 | .setDescription(str_filtrer
32 | .map(r => r)
33 | .filter(x => message.guild.members.cache.get(x.user.id))
34 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
35 | .slice(p0, p1)
36 | )
37 |
38 | .setColor(color)
39 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
40 |
41 |
42 | message.channel.send(embed).then(async tdata => {
43 | if (str_filtrer.size > 15) {
44 | const B1 = new MessageButton()
45 | .setLabel("◀")
46 | .setStyle("gray")
47 | .setID('allbotadm1');
48 |
49 | const B2 = new MessageButton()
50 | .setLabel("▶")
51 | .setStyle("gray")
52 | .setID('allbotadm2');
53 |
54 | const bts = new MessageActionRow()
55 | .addComponent(B1)
56 | .addComponent(B2)
57 | tdata.edit("", { embed: embed, components: [bts] })
58 | setTimeout(() => {
59 | tdata.edit("", {
60 | components: [], embed: new Discord.MessageEmbed()
61 | .setTitle('Liste des bots admins présents')
62 | .setDescription(str_filtrer
63 | .map(r => r)
64 | .filter(x => message.guild.members.cache.get(x.user.id))
65 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
66 | .slice(p0, p1)
67 | )
68 |
69 | .setColor(color)
70 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
71 |
72 |
73 | })
74 | // message.channel.send(embeds)
75 | }, 60000 * 5)
76 | client.on("clickButton", (button) => {
77 | if (button.id === "allbotadm1") {
78 | if (button.clicker.user.id !== message.author.id) return ;
79 | button.reply.defer(true)
80 |
81 | p0 = p0 - 15;
82 | p1 = p1 - 15;
83 | page = page - 1
84 |
85 | if (p0 < 0) {
86 | return
87 | }
88 | if (p0 === undefined || p1 === undefined) {
89 | return
90 | }
91 |
92 |
93 | embed .setDescription(str_filtrer
94 | .map(r => r)
95 | .filter(x => message.guild.members.cache.get(x.user.id))
96 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
97 | .slice(p0, p1)
98 | )
99 |
100 | .setColor(color)
101 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
102 | tdata.edit(embed);
103 |
104 | }
105 | if (button.id === "allbotadm2") {
106 | if (button.clicker.user.id !== message.author.id) return ;
107 | button.reply.defer(true)
108 |
109 | p0 = p0 + 15;
110 | p1 = p1 + 15;
111 |
112 | page++;
113 |
114 | if (p1 > str_filtrer.size + 15) {
115 | return
116 | }
117 | if (p0 === undefined || p1 === undefined) {
118 | return
119 | }
120 |
121 |
122 | embed .setDescription(str_filtrer
123 | .map(r => r)
124 | .filter(x => message.guild.members.cache.get(x.user.id))
125 | .map((m,i) => `${i+1}) ${m.user} (${m.user.id})`)
126 | .slice(p0, p1)
127 | )
128 |
129 | .setColor(color)
130 | .setFooter(`Total: ${str_filtrer.size} • ${client.config.name}`)
131 | tdata.edit(embed);
132 |
133 | }
134 | })
135 | }
136 |
137 | })
138 |
139 | }
140 | }
141 | }
--------------------------------------------------------------------------------
/commands/utilitaire/banner.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 | module.exports = {
6 | name: 'banner',
7 | aliases: [],
8 | run: async (client, message, args, prefix, color) => {
9 | let perm = ""
10 | message.member.roles.cache.forEach(role => {
11 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
12 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
13 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
14 | })
15 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
16 | const use = message.mentions.users.first() || client.users.cache.get(args[0]) || message.author
17 | const member = client.users.cache.get(use.id)
18 | const bannerUrl = await getUserBannerUrl(member.id,client, { size: 4096 });
19 | if(bannerUrl) {
20 | const Embed = new Discord.MessageEmbed()
21 | Embed.setTitle(`${member.username}`);
22 | Embed.setImage(`${bannerUrl}`);
23 |
24 | Embed.setColor(color)
25 | message.channel.send(Embed)
26 | } else {
27 | const Embed = new Discord.MessageEmbed()
28 | Embed.setTitle(`${member.username}`);
29 | Embed.setDescription(`N'a pas de bannière`);
30 |
31 | Embed.setColor(color)
32 | message.channel.send(Embed)
33 | }
34 |
35 | }}
36 | }
37 |
38 | async function getUserBannerUrl(userId, client, { dynamicFormat = true, defaultFormat = "webp", size = 512 } = {}) {
39 |
40 | if (![16, 32, 64, 128, 256, 512, 1024, 2048, 4096].includes(size)) {
41 | throw new Error(`The size '${size}' is not supported!`);
42 | }
43 |
44 |
45 | if (!["webp", "png", "jpg", "jpeg"].includes(defaultFormat)) {
46 | throw new Error(`The format '${defaultFormat}' is not supported as a default format!`);
47 | }
48 |
49 |
50 | const user = await client.api.users(userId).get();
51 | if (!user.banner) return null;
52 |
53 | const query = `?size=${size}`;
54 | const baseUrl = `https://cdn.discordapp.com/banners/${userId}/${user.banner}`;
55 |
56 |
57 | if (dynamicFormat) {
58 | const { headers } = await axios.head(baseUrl);
59 | if (headers && headers.hasOwnProperty("content-type")) {
60 | return baseUrl + (headers["content-type"] == "image/gif" ? ".gif" : `.${defaultFormat}`) + query;
61 | }
62 | }
63 |
64 | return baseUrl + `.${defaultFormat}` + query;
65 |
66 | }
--------------------------------------------------------------------------------
/commands/utilitaire/calc.js:
--------------------------------------------------------------------------------
1 | const Discord= require('discord.js')
2 | const db = require('quick.db')
3 | const math = require('mathjs')
4 |
5 | const { MessageButton, MessageActionRow } = require('discord-buttons')
6 | module.exports = {
7 | name: 'calc',
8 | aliases: [],
9 | run: async (client, message, args, prefix, color) => {
10 |
11 | let perm = ""
12 | message.member.roles.cache.forEach(role => {
13 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
14 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
15 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
16 | })
17 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
18 |
19 | if (!args.length) return message.react("❌")
20 |
21 | let calcular = args.join(' ')
22 |
23 | try {
24 | const embed = new Discord.MessageEmbed()
25 | .setTitle(`Résultat`)
26 | .setDescription(`\`\`\`${math.evaluate(calcular)}\`\`\``)
27 | .setColor(color);
28 |
29 | message.channel.send(embed)
30 | } catch (err) {
31 | const split = err.message.split(' ')
32 | const length = split.length
33 | const errMsg = err.message
34 |
35 |
36 | message.channel.send(`Format invalide`) }
37 | } else {
38 |
39 | }
40 |
41 | }
42 | }
--------------------------------------------------------------------------------
/commands/utilitaire/channelinfo.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | const axios = require('axios')
5 |
6 | module.exports = {
7 | name: 'channelinfo',
8 | aliases: ['channel', 'ci'],
9 | description: 'channel ',
10 | run: async (client, message, args, prefix, color) => {
11 |
12 | let perm = ""
13 | message.member.roles.cache.forEach(role => {
14 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
15 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
16 | })
17 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
18 |
19 |
20 | if (!args[0]) {
21 | var channel = message.channel;
22 | } else {
23 | var channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0])
24 | }
25 |
26 | if (!channel) {
27 | return;
28 | };
29 |
30 | if (channel.type === 'text' || channel.type === 'news' || channel.type === 'store') {
31 |
32 | const ChannelInfo = new Discord.MessageEmbed()
33 |
34 | .setTitle(channel.name)
35 | .addField(`Nom`, `${channel.name}`, true)
36 | .addField(`Description`, `${channel.topic !== null ? channel.topic : 'Aucune Description'}`, true)
37 | .addField(`ID`, `${channel.id}`, true)
38 | .addField(`NSFW`, `${channel.nsfw ? `Oui` : `Non`}`, true)
39 | .addField(`Catégorie`, `${channel.parent !== null ? channel.parent : 'Non Catégorisé'}\n${channel.parentID !== null ? `(${channel.parentID})` : ''}`, true)
40 | .addField(`Position dans la catégorie`, `${channel.position + 1}`, true)
41 | .addField(`Date de création`, ` ()`, true)
42 | .setColor(color)
43 |
44 | message.channel.send(ChannelInfo)
45 |
46 | }
47 | if (channel.type === 'category') {
48 |
49 |
50 | const CategoryInfo = new Discord.MessageEmbed()
51 |
52 | .setTitle(channel.name)
53 | .addField(`Nom`, `${channel.name}`, true)
54 | .addField(`ID`, `${channel.id}`, true)
55 | .addField(`Salons`, `${channel.children.size}`, true)
56 | .addField(`Position`, `${channel.rawPosition}`, true)
57 | .addField(`Date de création`, ` ()`, true)
58 | .setColor(color)
59 |
60 | message.channel.send(CategoryInfo)
61 |
62 | }
63 |
64 | if (channel.type === 'voice') {
65 |
66 | const VoiceInfo = new Discord.MessageEmbed()
67 |
68 | .setTitle(channel.name)
69 | .addField(`Nom`, `${channel.name}`, true)
70 | .addField(`ID`, `${channel.id}`, true)
71 | .addField(`Débit binaire (bitrate)`, `${channel.bitrate / 1000 + 'kbps'}`, true)
72 | .addField(`Membres connectés`, `${channel.members.size}`, true)
73 | .addField(`Limite d'utilisateur`, `${channel.userLimit === 0 ? 'Aucune Limite' : channel.userLimit}`, true)
74 | .addField(`Date de création`, ` ()`, true)
75 | .setColor(color)
76 |
77 |
78 | message.channel.send(VoiceInfo)
79 |
80 | }
81 | }
82 | }
83 | }
--------------------------------------------------------------------------------
/commands/utilitaire/image.js:
--------------------------------------------------------------------------------
1 | const img = require('images-scraper')
2 |
3 | const google = new img({
4 | puppeteer : {
5 | headless : true,
6 | }
7 | })
8 |
9 |
10 | const { MessageEmbed } = require("discord.js")
11 | const db = require("quick.db")
12 | function fu (ping) {
13 | if(100 <= ping) return 15
14 | if(200 <= ping) return 25
15 | if(300 <= ping) return 35
16 | if(600 <= ping) return 125
17 |
18 | }
19 | module.exports = {
20 | name: 'image',
21 | aliases: [],
22 | run: async (client, message, args, prefix, color) => {
23 |
24 | let perm = ""
25 | message.member.roles.cache.forEach(role => {
26 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
27 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
28 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
29 | })
30 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
31 |
32 | const query = args.join(" ")
33 | if(!query) return message.react("❌")
34 | message.channel.send(`Chargement... (Temps éstimés: ${parseFloat(fu(client.ws.ping) + Math.random() * (1.348 - 0.580) + 0.580).toFixed(0)}s)`).then( async m => {
35 | const results = await google.scrape(query, 1)
36 |
37 |
38 | const embed = new MessageEmbed()
39 | .setTitle(query)
40 | .setImage(results[0].url)
41 | .setColor(color)
42 | m.edit("",embed);
43 | })
44 |
45 | } else {
46 |
47 | }
48 |
49 | }
50 | }
--------------------------------------------------------------------------------
/commands/utilitaire/invite.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 | module.exports = {
6 | name: 'invites',
7 | aliases: ["invite"],
8 | run: async (client, message, args, prefix, color) => {
9 | let perm = ""
10 | message.member.roles.cache.forEach(role => {
11 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
12 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
13 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
14 | })
15 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
16 |
17 | const use = message.mentions.users.first() || client.users.cache.get(args[0]) || message.author
18 | const member = client.users.cache.get(use.id)
19 | let inv = db.fetch(`invites_${message.guild.id}_${member.id}`);
20 | let leaves = db.fetch(`leaves_${message.guild.id}_${member.id}`);
21 | let Regular = db.fetch(`Regular_${message.guild.id}_${member.id}`);
22 | const embed = new Discord.MessageEmbed()
23 | embed.setAuthor(member.username, member.displayAvatarURL({ dynamic: true }))
24 | embed.setColor(color)
25 | embed.setDescription(`Vous avez actuellement **${inv || 0}** ${inv || 0 > 1 ? "invites" : "invite"}\n(**${Regular || 0}** join, **${leaves || 0}** leave)`)
26 |
27 | message.channel.send(embed);
28 |
29 |
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/commands/utilitaire/mybot.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | const request = require("request")
5 | const ms = require("ms")
6 | module.exports = {
7 | name: 'mybot',
8 | aliases: [],
9 | run: async (client, message, args, prefix, color) => {
10 |
11 | request(`http://localhost:3030/api/client/${message.author.id}`, {
12 | method: "GET",
13 | headers: {
14 | authorization: "842340361212264468"
15 | }
16 | }, (err, res, body) => {
17 | const json = JSON.parse(body)
18 | if(!body || !json || json.message === "The user does not have a bot" || json.status !== 200) {
19 | return message.channel.send(`Vous avez aucun bot`)
20 |
21 | } else if(json.status === 200) {
22 | let expireAt
23 | let timeLeft
24 | const embed = new Discord.MessageEmbed()
25 | .setDescription(`${json.db
26 | .map(m => {
27 |
28 | `[${m.ID.split("_")[3]}](https://discord.com/api/oauth2/authorize?client_id=${m.ID.split("_")[2]}&permissions=8&scope=bot%20applications.commands) : `
29 | }).join("\n")
30 | }`)
31 | .setColor("2f3136")
32 | return message.channel.send(embed)
33 | }
34 | })
35 | }
36 | }
37 | function duration(mss) {
38 | const sec = Math.floor((mss / 1000) % 60).toString()
39 | const min = Math.floor((mss / (1000 * 60)) % 60).toString()
40 | const hrs = Math.floor((mss / (1000 * 60 * 60)) % 60).toString()
41 | const days = Math.floor(mss / (1000 * 60 * 60 * 24)).toString()
42 |
43 | return `${days.padStart(2, '') == "0" ? "" : `${days.padStart(2, '')}j `}${hrs.padStart(2, '') == "0" ? "" : `${hrs.padStart(2, '')}h `}${min.padStart(2, '') == "0" ? "" : `${min.padStart(2, '')}m `}${sec.padStart(2, '')}s`
44 | }
--------------------------------------------------------------------------------
/commands/utilitaire/pic.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 |
5 | module.exports = {
6 | name: 'pic',
7 | aliases: ["pp"],
8 | run: async (client, message, args, prefix, color) => {
9 | let perm = ""
10 | message.member.roles.cache.forEach(role => {
11 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
12 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
13 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
14 | })
15 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
16 | const use = message.mentions.users.first() || client.users.cache.get(args[0]) || message.author
17 | const member = client.users.cache.get(use.id)
18 | const Embed = new Discord.MessageEmbed()
19 | Embed.setTitle(`${member.username}`);
20 | Embed.setImage(`${member.displayAvatarURL({ dynamic: true })}`);
21 |
22 | Embed.setColor(color)
23 | message.channel.send(Embed)
24 |
25 | }
26 |
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/commands/utilitaire/ping.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const {MessageEmbed} = require('discord.js')
3 | const db = require('quick.db')
4 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
5 | function sleep(ms) {
6 | return new Promise((resolve) => {
7 | setTimeout(resolve, ms)})}
8 | module.exports = {
9 | name: 'ping',
10 | aliases: ["speed"],
11 |
12 | run: async (client, message, args, prefix, color) => {
13 |
14 |
15 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true ) {
16 | let embeeed = new Discord.MessageEmbed()
17 | embeeed.addField("Ping", `Calcul en cours`, true)
18 | embeeed.addField("Latence", `${client.ws.ping}ms`, true)
19 | embeeed.setColor(color)
20 |
21 | let msg = await message.channel.send(embeeed)
22 | let embed = new Discord.MessageEmbed()
23 | embed.addField("Ping", `${msg.createdAt - message.createdAt + "ms"}`, true)
24 | embed.addField("Latence", `${client.ws.ping}ms`, true)
25 | embed.setColor(color)
26 |
27 | return msg.edit("", embed)
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/commands/utilitaire/porngif.js:
--------------------------------------------------------------------------------
1 | const {MessageEmbed} = require('discord.js')
2 | const db = require('quick.db')
3 | const superagent = require('superagent')
4 | module.exports = {
5 | name: 'porngif',
6 | aliases: ["pgif"],
7 | run: async (client, message, args, prefix, color) => {
8 |
9 | let perm = ""
10 | message.member.roles.cache.forEach(role => {
11 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
12 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
13 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
14 | })
15 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
16 | if (message.channel.nsfw) {
17 |
18 |
19 |
20 | if(!args[0]) {
21 | const embed = new MessageEmbed()
22 |
23 | superagent.get('https://nekobot.xyz/api/image')
24 | .query({ type: 'pgif'})
25 | .end((err, response) => {
26 | embed.setImage(response.body.message)
27 | embed.setTitle("porngif")
28 | embed.setColor(color);
29 | message.channel.send({ embed: embed });
30 | });
31 | } else if(args[0] === "ass") {
32 | const embed = new MessageEmbed()
33 |
34 | superagent.get('https://nekobot.xyz/api/image')
35 | .query({ type: 'ass'})
36 | .end((err, response) => {
37 | embed.setImage(response.body.message)
38 | embed.setTitle("ass")
39 | embed.setColor(color);
40 | message.channel.send({ embed: embed });
41 | });
42 | } else if(args[0] === "anal") {
43 | const embed = new MessageEmbed()
44 |
45 | superagent.get('https://nekobot.xyz/api/image')
46 | .query({ type: 'anal'})
47 | .end((err, response) => {
48 | embed.setImage(response.body.message)
49 | embed.setTitle("anal")
50 | embed.setColor(color);
51 | message.channel.send({ embed: embed });
52 | });
53 | } else if(args[0] === "pussy") {
54 | const embed = new MessageEmbed()
55 |
56 | superagent.get('https://nekobot.xyz/api/image')
57 | .query({ type: 'pussy'})
58 | .end((err, response) => {
59 | embed.setImage(response.body.message)
60 | embed.setTitle("pussy")
61 | embed.setColor(color);
62 | message.channel.send({ embed: embed });
63 | });
64 | } else if(args[0] === "boobs") {
65 | const embed = new MessageEmbed()
66 |
67 | superagent.get('https://nekobot.xyz/api/image')
68 | .query({ type: 'boobs'})
69 | .end((err, response) => {
70 | embed.setImage(response.body.message)
71 | embed.setTitle("boobs")
72 | embed.setColor(color);
73 | message.channel.send({ embed: embed });
74 | });
75 | } else if(args[0] === "hentai") {
76 | const embed = new MessageEmbed()
77 |
78 | superagent.get('https://nekobot.xyz/api/image')
79 | .query({ type: 'hentai'})
80 | .end((err, response) => {
81 | embed.setImage(response.body.message)
82 | embed.setTitle("hentai")
83 | embed.setColor(color);
84 | message.channel.send({ embed: embed });
85 | });
86 | } else if(args[0] === "4k") {
87 | const embed = new MessageEmbed()
88 |
89 | superagent.get('https://nekobot.xyz/api/image')
90 | .query({ type: '4k'})
91 | .end((err, response) => {
92 | embed.setImage(response.body.message)
93 | embed.setTitle("4k")
94 | embed.setColor(color);
95 | message.channel.send({ embed: embed });
96 | });
97 | } }else {}
98 | } else {}
99 | }
100 | }
--------------------------------------------------------------------------------
/commands/utilitaire/rank.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | const db = require('quick.db')
3 | const canvacord = require("canvacord");
4 | module.exports = {
5 | name: 'level',
6 | aliases: ["rank"],
7 | run: async (client, message, args, prefix, color) => {
8 | let perm = ""
9 | message.member.roles.cache.forEach(role => {
10 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
11 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
12 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
13 | })
14 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
15 |
16 | const use = message.mentions.users.first() || client.users.cache.get(args[0]) || message.author
17 | const member = client.users.cache.get(use.id)
18 | const members = message.guild.members.cache
19 | .sort((a, b) => a.joinedTimestamp - b.joinedTimestamp)
20 | .array();
21 | const position = new Promise((ful) => {
22 | for (let i = 1; i < members.length + 1; i++) {
23 | if (members[i - 1].id === member.id) ful(i);
24 | }
25 | });
26 | var level = db.get(`guild_${message.guild.id}_level_${member.id}`) || 0
27 | let xp = db.get(`guild_${message.guild.id}_xp_${member.id}`) || 0
28 | var xpNeeded = level * 500 + 500
29 |
30 | const rank = new canvacord.Rank()
31 | .setUsername(member.username)
32 | .setDiscriminator(member.discriminator)
33 | .setStatus(member.presence.status)
34 | .setCurrentXP(xp)
35 | .setRequiredXP(xpNeeded)
36 | .setLevel(level)
37 | .setRank(await position)
38 | .setAvatar(member.displayAvatarURL({ format: 'png' }))
39 | .setRankColor('white')
40 | rank.build()
41 | .then(async datae => {
42 | const attachment = new Discord.MessageAttachment(datae, "AxelRank.png");
43 | const embed = new Discord.MessageEmbed()
44 | embed.setAuthor(member.username, member.displayAvatarURL({ dynamic: true }))
45 | embed.setColor(color)
46 | embed.setDescription(`${member}
47 | **Vocal:** \`${duration(db.get(`vocalrank_${message.guild.id}_${member.id}`) || 0)}\`
48 | **Message:** \`${db.get(`msg_${message.guild.id}_${member.id}`) || 0}\``)
49 | embed.setImage("attachment://AxelRank.png")
50 | embed.attachFiles(attachment)
51 | message.channel.send(embed);
52 | })
53 | }
54 |
55 | }
56 | }
57 |
58 |
59 | function duration(mss) {
60 | const sec = Math.floor((mss / 1000) % 60).toString()
61 | const min = Math.floor((mss / (1000 * 60)) % 60).toString()
62 | const hrs = Math.floor((mss / (1000 * 60 * 60)) % 60).toString()
63 | const days = Math.floor(mss / (1000 * 60 * 60 * 24)).toString()
64 | return `${days.padStart(2, '') == "0" ? "" : `${days.padStart(2, '')} jours, `}${hrs.padStart(2, '') == "0" ? "" : `${hrs.padStart(2, '')} heures, `}${min.padStart(2, '') == "0" ? "" : `${min.padStart(2, '')} minutes et `}${sec.padStart(2, '')} secondes`
65 | }
--------------------------------------------------------------------------------
/commands/utilitaire/roleinfo.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | const axios = require('axios')
5 |
6 | module.exports = {
7 | name: 'roleinfo',
8 | aliases: ['role'],
9 | description: 'role ',
10 | run: async (client, message, args, prefix, color) => {
11 |
12 | let perm = ""
13 | message.member.roles.cache.forEach(role => {
14 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
15 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
16 | })
17 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
18 |
19 |
20 | function roleperm(role) {
21 | if (role.permissions.has("ADMINISTRATOR")) {
22 | return `Administrateur`
23 | } else {
24 | return role.permissions.toArray().map(p =>
25 | p.replace("CREATE_INSTANT_INVITE", "")
26 | .replace("MENTION_EVERYONE", `Mentionner @everyone, @here et tous les rôles\n`)
27 | .replace("MANAGE_ROLES", `Gérer les rôles\n`)
28 | .replace("MANAGE_WEBHOOKS", `Gérer les webhooks\n`)
29 | .replace("MANAGE_EMOJIS", `Gérer les émojis\n`)
30 | .replace("ADMINISTRATOR", `Administrateur\n`)
31 | .replace("KICK_MEMBERS", `Expulser des membres\n`)
32 | .replace("BAN_MEMBERS", `Bannir des membres\n`)
33 | .replace("MANAGE_CHANNELS", `Gérer les salons\n`)
34 | .replace("MANAGE_GUILD", `Gérer le serveur\n`)
35 | .replace("ADD_REACTIONS", "")
36 | .replace("VIEW_AUDIT_LOG", "")
37 | .replace("PRIORITY_SPEAKER", "")
38 | .replace("STREAM", "")
39 | .replace("VIEW_CHANNEL", "")
40 | .replace("SEND_MESSAGES", "")
41 | .replace("SEND_TTS_MESSAGES", "")
42 | .replace("MANAGE_MESSAGES", "")
43 | .replace("EMBED_LINKS", "")
44 | .replace("ATTACH_FILES", "")
45 | .replace("READ_MESSAGE_HISTORY", "")
46 | .replace("USE_EXTERNAL_EMOJIS", "")
47 | .replace("VIEW_GUILD_INSIGHTS", "")
48 | .replace("CONNECT", "")
49 | .replace("SPEAK", "")
50 | .replace("MUTE_MEMBERS", "Mute des membres")
51 | .replace("DEAFEN_MEMBERS", "")
52 | .replace("MOVE_MEMBERS", "Move des membres")
53 | .replace("USE_VAD", "")
54 | .replace("CHANGE_NICKNAME", "Gerer les pseudos")
55 | .replace("MANAGE_NICKNAMES", "")
56 | .replace(",", "")).join(" ")
57 | }
58 | }
59 |
60 | const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]);
61 |
62 | let roleEmbed = new Discord.MessageEmbed()
63 | .setColor(color)
64 | .setTitle(role.name)
65 | .addField("Nom ", `<@&${role.id}>`)
66 | .addField("Membres possédant le rôle", `${role.members.size}`)
67 | .addField("Couleur", `${role.hexColor === "#000000" ? "Classique" : role.hexColor}`)
68 | .addField("ID", `${role.id}`, true)
69 | .addField("Affiché séparément", `${role.hoist ? "Oui" : "Non"}`, true)
70 | .addField("Mentionable", `${role.mentionable ? "Oui" : "Non"}`, true)
71 | .addField("Géré par une intégration", `${role.managed ? "Oui" : "Non"}`, true)
72 | .addField("Permissions principales", `${roleperm(role)}`, true)
73 | .addField(`Création du rôle`, ` ()`, true)
74 | //.setFooter(`Création du rôle`)
75 | //.setTimestamp(role.createdAt);
76 |
77 | message.channel.send(roleEmbed)
78 |
79 |
80 | }
81 | }
82 | }
--------------------------------------------------------------------------------
/commands/utilitaire/serverinfo.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | const axios = require('axios')
5 |
6 | module.exports = {
7 | name: 'serverinfo',
8 | aliases: ['si'],
9 | run: async (client, message, args, prefix, color) => {
10 |
11 | let perm = ""
12 | message.member.roles.cache.forEach(role => {
13 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
14 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
15 | })
16 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
17 | const guild = client.guilds.cache.get(args[0]) || message.guild
18 | let Boosters = 0;
19 | guild.members.cache.forEach((m) => {
20 | if (m.premiumSince) i++;
21 | })
22 |
23 | let NoRoles = 0;
24 | guild.members.cache.forEach((m) => {
25 | if (m.roles.cache.size == 0) i++;
26 | })
27 | //console.log(NoRoles)
28 | const ServerInfo = new Discord.MessageEmbed()
29 | .setTitle(`${guild.name} `)
30 | .addField(`ID`, `${guild.id}`, true)
31 | .addField(`Nombre de membres`, `${guild.memberCount}`, true)
32 | .addField(`Nombre de membres actifs`, `${guild.members.cache.filter(m => m.presence?.status === 'online' || m.presence?.status === 'dnd' || m.presence?.status === 'streaming' || m.presence?.status === 'idle').size}`, true)
33 | .addField(`Nombre d'humains`, `${guild.members.cache.filter((m) => !m.user.bot).size}`, true)
34 | .addField(`Nombre de bots`, `${guild.members.cache.filter((m) => m.user.bot).size}`, true)
35 | .addField(`Nombre d'utilisateurs en vocal`, `${guild.members.cache.filter(m => m.voice.channel).size}`, true)
36 | .addField(`Nombre d'utilisateurs sans rôle`, `${NoRoles}`, true)
37 | .addField(`Nombre de boosts`, `${guild.premiumSubscriptionCount}`, true)
38 | .addField(`Nombre de boosters`, `${Boosters}`, true)
39 | .addField(`Nombre de rôles`, `${guild.roles.cache.size}`, true)
40 | .addField(`Nombre de salons`, `${guild.channels.cache.size}`, true)
41 | .addField(`Nombre d'émojis`, `${guild.emojis.cache.size}`, true)
42 | .setFooter("Création du serveur")
43 | .setTimestamp(guild.createdAt)
44 |
45 | .setThumbnail(guild.iconURL({ dynamic: true }))
46 | .setColor(color)
47 |
48 | if (guild.icon) ServerInfo.setURL(guild.iconURL({ dynamic: true }))
49 |
50 | message.channel.send(ServerInfo)
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/commands/utilitaire/snipe.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | const db = require('quick.db')
3 | const canvacord = require("canvacord");
4 | function slm(str) {
5 | if(str === 1) return `●`
6 | if(str === 2) return `●●`
7 | if(str === 3) return `●●●`
8 | if(str === 4) return `●●●●`
9 | if(str === 5) return `●●●●●`
10 | if(str === 6) return `●●●●●●`
11 | if(str === 7) return `●●●●●●●`
12 | if(str === 8) return `●●●●●●●●`
13 | if(str === 9) return `●●●●●●●●●`
14 | if(str === 10) return`●●●●●●●●●●`
15 | if(str === 11) return`●●●●●●●●●●●`
16 | if(str === 12) return`●●●●●●●●●●●●`
17 | if(str === 13) return`●●●●●●●●●●●●●`
18 | if(str === 14) return`●●●●●●●●●●●●●●`
19 | if(str === 15) return`●●●●●●●●●●●●●●●`
20 | if(str === 16) return`●●●●●●●●●●●●●●●●`
21 | if(str === 17) return`●●●●●●●●●●●●●●●●●`
22 | if(str === 18) return`●●●●●●●●●●●●●●●●●●`
23 | if(str === 19) return`●●●●●●●●●●●●●●●●●●●`
24 | if(str === 20) return`●●●●●●●●●●●●●●●●●●●●`
25 |
26 | }
27 |
28 | module.exports = {
29 | name: 'snipe',
30 | aliases: [],
31 | run: async (client, message, args, prefix, color) => {
32 |
33 | let perm = ""
34 | message.member.roles.cache.forEach(role => {
35 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
36 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
37 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
38 | })
39 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
40 |
41 | const msg = client.snipes.get(message.channel.id)
42 | if(!msg) return message.channel.send("Aucun message enregistré.")
43 | let ttt = msg.content
44 |
45 | if(msg.content.includes("discord.gg/")) ttt = msg.content.replace(msg.content.split("gg/")[1], slm(msg.content.split("gg/")[1].length ||0))
46 |
47 | // ●●●●●●●●
48 | const embed = new Discord.MessageEmbed()
49 | .setAuthor(msg.author.username , msg.author.displayAvatarURL({dynamic : true }))
50 | .setDescription(ttt)
51 | .setColor(color)
52 | if(msg.image)embed.setImage(msg.image)
53 |
54 | message.channel.send(embed)
55 |
56 | }
57 | }
58 |
59 |
60 | }
--------------------------------------------------------------------------------
/commands/utilitaire/userinfo.js:
--------------------------------------------------------------------------------
1 | const Discord = require('discord.js')
2 | const db = require('quick.db')
3 | const { MessageActionRow, MessageButton, MessageMenuOption, MessageMenu } = require('discord-buttons');
4 | const axios = require('axios')
5 |
6 | module.exports = {
7 | name: 'userinfo',
8 | aliases: ['user', 'ui'],
9 | run: async (client, message, args, prefix, color) => {
10 |
11 | let perm = ""
12 | message.member.roles.cache.forEach(role => {
13 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
14 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
15 | })
16 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm) {
17 |
18 | let user = message.mentions.members.first()
19 | if(user) user = user.id
20 | if(!user) user = args[0]
21 | if(!user) user = message.author.id
22 | if(!message.guild.members.cache.has(user)) return message.channel.send(`Aucun membre trouvé pour \`${args[0]}\``);
23 | else user = message.guild.members.cache.get(user)
24 |
25 | let nm = ""
26 | client.guilds.cache.map(r =>{
27 | const list = client.guilds.cache.get(r.id);
28 | list.members.cache.map(m => (m.user.id ==user.id? nm++ : nm = nm))
29 | // list.members.cache.map(m => (m.user.id ==member.id? listes= listes+" | `" +list.name+"`" : listes = listes))
30 | })
31 | //console.log(guilds)
32 |
33 |
34 | const data = await axios.get(`https://discord.com/api/users/${user.id}`, {
35 | headers: {
36 | Authorization: `Bot ${client.config.token}`
37 | }
38 | }).then(d => d.data);
39 | if (data.banner) {
40 | let url = data.banner.startsWith("a_") ? ".gif?size=2048" : ".png?size=2048";
41 | url = `https://cdn.discordapp.com/banners/${user.id}/${data.banner}${url}`;
42 |
43 | const UserInfo = new Discord.MessageEmbed()
44 |
45 | .setTitle(user.user.tag)
46 | .setDescription(`<@${user.user.id}>\nPrésent sur ce serveur depuis le \nCompte créé le \nServeur en commun: ${nm}`)
47 | .setThumbnail(user.user.displayAvatarURL({ dynamic: true }))
48 | .setImage(url)
49 | .setColor(color)
50 |
51 | message.channel.send(UserInfo)
52 | } else {
53 |
54 | const UserInfo = new Discord.MessageEmbed()
55 |
56 | .setTitle(user.user.tag)
57 | .setDescription(`<@${user.user.id}>\nPrésent sur ce serveur depuis le \nCompte créé le \nServeur en commun: ${nm}`)
58 | .setThumbnail(user.user.displayAvatarURL({ dynamic: true }))
59 | .setColor(color)
60 | .setImage("https://cdn.discordapp.com/attachments/914596914161397762/922439441589616660/image.png")
61 | //if (user.user = user.user.bot) UserInfo.setDescription(`<@${user.user.id}>\nPrésent sur ce serveur depuis le \nCompte créé le \nServeur en commun: ${nm}\n[Lien d'invation](https://discord.com/api/oauth2/authorize?client_id=${user.user.id}&permissions=8&scope=bot)`)
62 | message.channel.send(UserInfo)
63 |
64 | }
65 |
66 |
67 |
68 | }
69 | }
70 | }
--------------------------------------------------------------------------------
/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "token": "token",
3 | "color": "embecolor",
4 | "prefix": "&",
5 | "name": "Footer Name",
6 | "defaultjoinmessage": "{user} vient de rejoindre. Il a été invité par **{inviter:name}** qui a désormais **{invite} invitations** !",
7 | "defaultleavemessage": "{user} vient de quitter. Il avais été invité par **{inviter:name}** qui a désormais **{invite} invitations** ",
8 | "defaultLevelmessage": "**{user}** vient de passer au level **{level}** bravo à lui !",
9 | "owner": [
10 | "tonid",
11 | "id"
12 | ]
13 | }
--------------------------------------------------------------------------------
/events/antiraid/channelCreate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client, channel) => {
7 | const guild = channel.guild
8 | if(!guild) return;
9 |
10 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
11 |
12 | try { // -- Audit Logs
13 | axios.get(`https://discord.com/api/v9/guilds/${guild.id}/audit-logs?ilimit=1&action_type=10`, {
14 | headers: {
15 | Authorization: `Bot ${client.config.token}`
16 | }
17 | }).then(response => {
18 | if (response.data && response.data.audit_log_entries[0].user_id) {
19 | let perm = ""
20 | if (db.get(`channelscreatewl_${guild.id}`) === null) perm = client.user.id === response.data.audit_log_entries[0].user_id || guild.owner.id === response.data.audit_log_entries[0].user_id || client.config.owner.includes(response.data.audit_log_entries[0].user_id) || db.get(`ownermd_${client.user.id}_${response.data.audit_log_entries[0].user_id}`) === true || db.get(`wlmd_${guild.id}_${response.data.audit_log_entries[0].user_id}`) === true
21 | if (db.get(`channelscreatewl_${guild.id}`) === true) perm = client.user.id === response.data.audit_log_entries[0].user_id || guild.owner.id === response.data.audit_log_entries[0].user_id || client.config.owner.includes(response.data.audit_log_entries[0].user_id) || db.get(`ownermd_${client.user.id}_${response.data.audit_log_entries[0].user_id}`) === true
22 | if (db.get(`channelscreate_${guild.id}`) === true && !perm) {
23 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
24 | if (db.get(`channelscreatesanction_${guild.id}`) === "ban") {
25 | axios({
26 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${response.data.audit_log_entries[0].user_id}`,
27 | method: 'PUT',
28 | headers: {
29 | Authorization: `Bot ${client.config.token}`
30 | },
31 | data: {
32 | delete_message_days: '1',
33 | reason: 'Antichannel'
34 | }
35 | }).then(() => {
36 | axios({
37 | url: `https://discord.com/api/v9/channels/${channel.id}`,
38 | method: `DELETE`,
39 | headers: {
40 | Authorization: `Bot ${client.config.token}`
41 | }
42 | })
43 | if(raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le salon \`${channel.name}\`, il a été **ban** !`))
44 | }
45 | ).catch(() => {
46 | axios({
47 | url: `https://discord.com/api/v9/channels/${channel.id}`,
48 | method: `DELETE`,
49 | headers: {
50 | Authorization: `Bot ${client.config.token}`
51 | }
52 | })
53 | if(raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le salon \`${channel.name}\`, mais il n'a pas pu être **ban** !`))
54 |
55 | }
56 | )
57 | } else if (db.get(`channelscreatesanction_${guild.id}`) === "kick") {
58 | guild.members.cache.get(response.data.audit_log_entries[0].user_id).kick().then(() => {
59 |
60 | axios({
61 | url: `https://discord.com/api/v9/channels/${channel.id}`,
62 | method: `DELETE`,
63 | headers: {
64 | Authorization: `Bot ${client.config.token}`
65 | }
66 | })
67 | if(raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le salon \`${channel.name}\`, il a été **kick** !`))
68 | }).catch(() => {
69 | axios({
70 | url: `https://discord.com/api/v9/channels/${channel.id}`,
71 | method: `DELETE`,
72 | headers: {
73 | Authorization: `Bot ${client.config.token}`
74 | }
75 | })
76 | if(raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le salon \`${channel.name}\`, mais il n'a pas pu être **kick** !`))
77 | })
78 | } else if (db.get(`channelscreatesanction_${guild.id}`) === "derank") {
79 |
80 | guild.members.cache.get(response.data.audit_log_entries[0].user_id).roles.set([]).then(() => {
81 |
82 | axios({
83 | url: `https://discord.com/api/v9/channels/${channel.id}`,
84 | method: `DELETE`,
85 | headers: {
86 | Authorization: `Bot ${client.config.token}`
87 | }
88 | })
89 | if(raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le salon \`${channel.name}\`, il a été **derank** !`))
90 | }).catch(() => {
91 | axios({
92 | url: `https://discord.com/api/v9/channels/${channel.id}`,
93 | method: `DELETE`,
94 | headers: {
95 | Authorization: `Bot ${client.config.token}`
96 | }
97 | })
98 | if(raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le salon \`${channel.name}\`, mais il n'a pas pu être **derank** !`))
99 | })
100 | }
101 |
102 |
103 |
104 | }
105 |
106 |
107 | }
108 |
109 |
110 | });
111 |
112 | } catch (error) {
113 | return
114 | }
115 |
116 |
117 |
118 | };
119 |
--------------------------------------------------------------------------------
/events/antiraid/channelUpdate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, oldChannel, newChannel) => {
7 | const guild = oldChannel.guild
8 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
9 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
10 |
11 | axios.get(`https://discord.com/api/v9/guilds/${oldChannel.guild.id}/audit-logs?ilimit=1&action_type=11`, {
12 | headers: {
13 | Authorization: `Bot ${client.config.token}`
14 | }
15 | }).then(response => {
16 | if (response.data && response.data.audit_log_entries[0].user_id) {
17 | let perm = ""
18 | if (db.get(`channelsmodwl_${guild.id}`) === null) perm = client.user.id === response.data.audit_log_entries[0].user_id || guild.owner.id === response.data.audit_log_entries[0].user_id || client.config.owner.includes(response.data.audit_log_entries[0].user_id) || db.get(`ownermd_${client.user.id}_${response.data.audit_log_entries[0].user_id}`) === true || db.get(`wlmd_${guild.id}_${response.data.audit_log_entries[0].user_id}`) === true
19 | if (db.get(`channelsmodwl_${guild.id}`) === true) perm = client.user.id === response.data.audit_log_entries[0].user_id || guild.owner.id === response.data.audit_log_entries[0].user_id || client.config.owner.includes(response.data.audit_log_entries[0].user_id) || db.get(`ownermd_${client.user.id}_${response.data.audit_log_entries[0].user_id}`) === true
20 | if (db.get(`channelsmod_${guild.id}`) === true && !perm) {
21 | if (db.get(`channelsmodsanction_${guild.id}`) === "ban") {
22 | axios({
23 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${response.data.audit_log_entries[0].user_id}`,
24 | method: 'PUT',
25 | headers: {
26 | Authorization: `bot ${client.config.token}`
27 | },
28 | data: {
29 | delete_message_days: '1',
30 | reason: 'Antichannel'
31 | }
32 | }).then(() => {
33 |
34 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a modifier le salon ${oldChannel}, il a été **ban** !`))
35 | }
36 | ).catch(() => {
37 |
38 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a modifier le salon ${oldChannel}, mais il n'a pas pu être **ban** !`))
39 |
40 | }
41 | )
42 | } else if (db.get(`channelsmodsanction_${guild.id}`) === "kick") {
43 | guild.members.cache.get(response.data.audit_log_entries[0].user_id).kick().then(() => {
44 |
45 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a modifier le salon ${oldChannel}, il a été **kick** !`))
46 | }).catch(() => {
47 |
48 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a modifier le salon ${oldChannel}, mais il n'a pas pu être **kick** !`))
49 | })
50 | } else if (db.get(`channelsmodsanction_${guild.id}`) === "derank") {
51 |
52 | guild.members.cache.get(response.data.audit_log_entries[0].user_id).roles.set([]).then(() => {
53 |
54 |
55 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a modifier le salon ${oldChannel}, il a été **derank** !`))
56 | }).catch(() => {
57 |
58 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a modifier le salon ${oldChannel}, mais il n'a pas pu être **derank** !`))
59 | })
60 | }
61 |
62 | newChannel.edit({
63 | name: oldChannel.name,
64 | permissions: oldChannel.permissionsOverwrites,
65 | type: oldChannel.type,
66 | topic: oldChannel.withTopic,
67 | nsfw: oldChannel.nsfw,
68 | birate: oldChannel.bitrate,
69 | userLimit: oldChannel.userLimit,
70 | rateLimitPerUser: oldChannel.rateLimitPerUser,
71 | position: oldChannel.rawPosition,
72 | reason: `Antichannel`
73 | })
74 | newChannel.overwritePermissions(oldChannel.permissionOverwrites)
75 | }
76 |
77 | }
78 |
79 | });
80 |
81 |
82 |
83 | }
84 |
85 |
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/events/antiraid/guildBanAdd.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, member) => {
7 |
8 | let ban = 0
9 | let banLimit = db.get(`massbannum_${member.guild.id}`) || 2
10 | setInterval(() => {
11 | ban = 0
12 | }, ms(db.get(`massbantime_${member.guild.id}`) || "10s"));
13 | const guild = member.guild
14 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
15 |
16 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
17 |
18 |
19 | const action = await guild.fetchAuditLogs({ limit: 1, type: "MEMBER_BAN_ADD" }).then(async (audit) => audit.entries.first())
20 |
21 | if ( action.executor.id) {
22 |
23 | let perm = ""
24 | if (db.get(`massbanwl_${guild.id}`) === null) perm = client.user.id === action.executor.id || guild.owner.id === action.executor.id || client.config.owner.includes(action.executor.id) || db.get(`ownermd_${client.user.id}_${action.executor.id}`) === true || db.get(`wlmd_${guild.id}_${action.executor.id}`) === true
25 | if (db.get(`massbanwl_${guild.id}`) === true) perm = client.user.id === action.executor.id || guild.owner.id === action.executor.id || client.config.owner.includes(action.executor.id) || db.get(`ownermd_${client.user.id}_${action.executor.id}`) === true
26 | if (db.get(`massban_${guild.id}`) === true && !perm) {
27 | if (ban <= banLimit) {
28 | ban++
29 | } else {
30 | ban++
31 | if (db.get(`massbansanction_${guild.id}`) === "ban") {
32 | axios({
33 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${action.executor.id}`,
34 | method: 'PUT',
35 | headers: {
36 | Authorization: `bot ${client.config.token}`
37 | },
38 | data: {
39 | delete_message_days: '1',
40 | reason: 'Antiban'
41 | }
42 | }).then(() => {
43 |
44 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ban ${member}, il a été **ban** !`))
45 | }
46 | ).catch(() => {
47 |
48 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ban ${member}, mais il n'a pas pu être **ban** !`))
49 |
50 | }
51 | )
52 | } else if (db.get(`massbansanction_${guild.id}`) === "kick") {
53 | guild.members.cache.get(action.executor.id).kick().then(() => {
54 |
55 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ban ${member}, il a été **kick** !`))
56 | }).catch(() => {
57 |
58 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ban ${member}, mais il n'a pas pu être **kick** !`))
59 | })
60 | } else if (db.get(`massbansanction_${guild.id}`) === "derank") {
61 |
62 | guild.members.cache.get(action.executor.id).roles.set([]).then(() => {
63 |
64 |
65 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ban ${member}, il a été **derank** !`))
66 | }).catch(() => {
67 |
68 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ban ${member}, mais il n'a pas pu être **derank** !`))
69 | })
70 | }
71 | }
72 |
73 | }
74 |
75 | }
76 | };
77 |
--------------------------------------------------------------------------------
/events/antiraid/guildMemberAdd.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 | const Discord = require("discord.js")
6 |
7 | module.exports = async (client, member) => {
8 | const guild = member.guild
9 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
10 | const color = db.get(`color_${guild.id}`) === null ? client.config.color : db.get(`color_${guild.id}`)
11 |
12 | if (db.get(`antitoken_${member.guild.id}`) === true) {
13 | // let maxMembers = db.get(`antitokenlimmit1_${member.guild.id}`) || 10 //Nombres de membres max
14 | // let maxTime = ms(db.get(`antitokenlimmit2_${member.guild.id}`) || "10s"); //temps en millisecondes 1000ms = 1s
15 | // let last10Members = guild.members.cache.filter(member => member.joinedAt <= (Date.now() - maxTime)) //Prendre les 10 derniers membres qui sont arrivés y'a 10 secondes
16 | // if (last10Members.size > maxMembers) return;
17 | // const a = []
18 | // last10Members.forEach(user => {
19 | // user.ban({ reason: "Antimassjoin" }).then(() => {
20 | // a.push(user.id)
21 | // })
22 | // })
23 | // if(!a) return undefined
24 | // const embed = new Discord.MessageEmbed()
25 | // .setColor(color)
26 | // .setDescription(`${a.map(u => `<@${u}>`).join(", ")} on été **ban** pour avoir \`rejoint le serveur en même temps\``)
27 | // if (raidlog) raidlog.send(embed)
28 |
29 |
30 |
31 |
32 | }
33 |
34 | if (db.get(`crealimit_${member.guild.id}`) === true) {
35 | const duration = ms(db.get(`crealimittemps_${member.guild.id}`) || "0s");
36 | let created = member.user.createdTimestamp;
37 | let sum = created + duration;
38 | let diff = Date.now() - sum;
39 |
40 | if (diff < 0) {
41 |
42 | member.kick()
43 | }
44 | const embed = new Discord.MessageEmbed()
45 | .setColor(color)
46 | .setDescription(`${member} à été **kick** parce que \`sont compte à été crée trop résamment\``)
47 | if (raidlog) raidlog.send(embed)
48 | }
49 |
50 | if (db.get(`blmd_${client.user.id}_${member.id}`) === true) {
51 | member.ban().then(() => {
52 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`${member} a rejoins alors qu'il êtait blacklist, il a été **ban**`))
53 |
54 | }).catch(() => {
55 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`${member} a rejoins alors qu'il êtait blacklist, mais il n'a pas pu être **ban**`))
56 |
57 | })
58 | }
59 |
60 | if (member.user.bot) {
61 | const action = await guild.fetchAuditLogs({ limit: 1, type: "BOT_ADD" }).then(async (audit) => audit.entries.first())
62 | if ( action.executor.id) {
63 | let perm = ""
64 | if (db.get(`botwl_${guild.id}`) === null) perm = client.user.id === action.executor.id || guild.owner.id === action.executor.id || client.config.owner.includes(action.executor.id) || db.get(`ownermd_${client.user.id}_${action.executor.id}`) === true || db.get(`wlmd_${guild.id}_${action.executor.id}`) === true
65 | if (db.get(`botwl_${guild.id}`) === true) perm = client.user.id === action.executor.id || guild.owner.id === action.executor.id || client.config.owner.includes(action.executor.id) || db.get(`ownermd_${client.user.id}_${action.executor.id}`) === true
66 | if (db.get(`bot_${guild.id}`) === true && !perm) {
67 | if (db.get(`botsanction_${guild.id}`) === "ban") {
68 | axios({
69 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${action.executor.id}`,
70 | method: 'PUT',
71 | headers: {
72 | Authorization: `bot ${client.config.token}`
73 | },
74 | data: {
75 | delete_message_days: '1',
76 | reason: 'Antiban'
77 | }
78 | }).then(() => {
79 |
80 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a inviter le bot ${member}, il a été **ban** !`))
81 | }
82 | ).catch(() => {
83 |
84 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a inviter le bot ${member}, mais il n'a pas pu être **ban** !`))
85 |
86 | }
87 | )
88 | } else if (db.get(`botsanction_${guild.id}`) === "kick") {
89 | guild.users.cache.get(action.executor.id).kick().then(() => {
90 |
91 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a inviter le bot ${member}, il a été **kick** !`))
92 | }).catch(() => {
93 |
94 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a inviter le bot ${member}, mais il n'a pas pu être **kick** !`))
95 | })
96 | } else if (db.get(`botsanction_${guild.id}`) === "derank") {
97 |
98 | guild.users.cache.get(action.executor.id).roles.set([]).then(() => {
99 |
100 |
101 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a inviter le bot ${member}, il a été **derank** !`))
102 | }).catch(() => {
103 |
104 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a inviter le bot ${member}, mais il n'a pas pu être **derank** !`))
105 | })
106 | }
107 |
108 | }
109 | }
110 |
111 | }
112 |
113 |
114 |
115 | }
116 |
--------------------------------------------------------------------------------
/events/antiraid/guildMemberRemove.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, member) => {
7 |
8 | let kick = 0
9 | let kickLimit = db.get(`massbannum_${member.guild.id}`) || 2
10 | setInterval(() => {
11 | kick = 0
12 | }, ms(db.get(`massbantime_${member.guild.id}`) || "10s"));
13 | const guild = member.guild
14 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
15 |
16 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
17 |
18 |
19 | const action = await guild.fetchAuditLogs({ limit: 1, type: "MEMBER_KICK" }).then(async (audit) => audit.entries.first())
20 |
21 | if ( action.executor.id) {
22 |
23 | let perm = ""
24 | if (db.get(`massbanwl_${guild.id}`) === null) perm = client.user.id === action.executor.id || guild.owner.id === action.executor.id || client.config.owner.includes(action.executor.id) || db.get(`ownermd_${client.user.id}_${action.executor.id}`) === true || db.get(`wlmd_${guild.id}_${action.executor.id}`) === true
25 | if (db.get(`massbanwl_${guild.id}`) === true) perm = client.user.id === action.executor.id || guild.owner.id === action.executor.id || client.config.owner.includes(action.executor.id) || db.get(`ownermd_${client.user.id}_${action.executor.id}`) === true
26 | if (db.get(`massban_${guild.id}`) === true && !perm) {
27 | if (kick <= kickLimit) {
28 | kick++
29 | } else {
30 | kick++
31 | if (db.get(`massbansanction_${guild.id}`) === "ban") {
32 | axios({
33 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${action.executor.id}`,
34 | method: 'PUT',
35 | headers: {
36 | Authorization: `bot ${client.config.token}`
37 | },
38 | data: {
39 | delete_message_days: '1',
40 | reason: 'Antiban'
41 | }
42 | }).then(() => {
43 |
44 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a kick ${member}, il a été **ban** !`))
45 | }
46 | ).catch(() => {
47 |
48 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a kick ${member}, mais il n'a pas pu être **ban** !`))
49 |
50 | }
51 | )
52 | } else if (db.get(`massbansanction_${guild.id}`) === "kick") {
53 | guild.members.cache.get(action.executor.id).kick().then(() => {
54 |
55 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a kick ${member}, il a été **kick** !`))
56 | }).catch(() => {
57 |
58 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a kick ${member}, mais il n'a pas pu être **kick** !`))
59 | })
60 | } else if (db.get(`massbansanction_${guild.id}`) === "derank") {
61 |
62 | guild.members.cache.get(action.executor.id).roles.set([]).then(() => {
63 |
64 |
65 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a kick ${member}, il a été **derank** !`))
66 | }).catch(() => {
67 |
68 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a kick ${member}, mais il n'a pas pu être **derank** !`))
69 | })
70 | }
71 | }
72 |
73 | }
74 |
75 | }
76 | };
77 |
--------------------------------------------------------------------------------
/events/antiraid/guildMemberRoleAdd.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, member, role) => {
7 | const guild = member.guild
8 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
9 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
10 |
11 | if(db.get(`blrankmd_${client.user.id}_${member.id}`) !== null) {
12 |
13 | member.roles.remove(role.id).then(() => {
14 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ajouter un rôle à ${member} alors qu'il est dans la blacklistRank, je lui est enlever !`))
15 |
16 | }).catch(() => {
17 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ajouter un rôle à ${member} alors qu'il est dans la blacklistRank, mais j'ai pas pu lui enlever !`))
18 |
19 | })
20 | }
21 |
22 | const action = await guild.fetchAuditLogs({ limit: 1, type: "MEMBER_ROLE_UPDATE" }).then(async (audit) => audit.entries.first())
23 | let perm = ""
24 | if (db.get(`rolesaddwl_${guild.id}`) === null) perm = client.user.id === action.executor.id || guild.owner.id === action.executor.id || client.config.owner.includes(action.executor.id) || db.get(`ownermd_${client.user.id}_${action.executor.id}`) === true || db.get(`wlmd_${guild.id}_${action.executor.id}`) === true
25 | if (db.get(`rolesaddwl_${guild.id}`) === true) perm = client.user.id === action.executor.id || guild.owner.id === action.executor.id || client.config.owner.includes(action.executor.id) || db.get(`ownermd_${client.user.id}_${action.executor.id}`) === true
26 | if (db.get(`rolesadd_${guild.id}`) === true && !perm) {
27 |
28 | if(role.permissions.has("KICK_MEMBERS") || role.permissions.has("BAN_MEMBERS") || role.permissions.has("ADMINISTRATOR") || role.permissions.has("MANAGE_CHANNELS") || role.permissions.has("MANAGE_GUILD") || role.permissions.has("MENTION_EVERYONE") || role.permissions.has("MANAGE_ROLES")) {
29 |
30 | if (db.get(`rolesaddsanction_${guild.id}`) === "ban") {
31 | axios({
32 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${action.executor.id}`,
33 | method: 'PUT',
34 | headers: {
35 | Authorization: `bot ${client.config.token}`
36 | },
37 | data: {
38 | delete_message_days: '1',
39 | reason: 'Antirole'
40 | }
41 | }).then(() => {
42 | member.roles.remove(role.id)
43 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ajouter des permissions à \`${member.user.tag}\`, il a été **ban** !`))
44 | }
45 | ).catch(() => {
46 | member.roles.remove(role.id)
47 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ajouter des permissions à \`${member.user.tag}\`, mais il n'a pas pu être **ban** !`))
48 |
49 | }
50 | )
51 | } else if (db.get(`rolesaddsanction_${guild.id}`) === "kick") {
52 | guild.members.cache.get(action.executor.id).kick().then(() => {
53 | member.roles.remove(role.id)
54 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ajouter des permissions à \`${member.user.tag}\`, il a été **kick** !`))
55 | }).catch(() => {
56 | member.roles.remove(role.id)
57 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ajouter des permissions à \`${member.user.tag}\`, mais il n'a pas pu être **kick** !`))
58 | })
59 | } else if (db.get(`rolesaddsanction_${guild.id}`) === "derank") {
60 |
61 | guild.members.cache.get(action.executor.id).roles.set([]).then(() => {
62 |
63 | member.roles.remove(role.id)
64 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ajouter des permissions à \`${member.user.tag}\`, il a été **derank** !`))
65 | }).catch(() => {
66 | member.roles.remove(role.id)
67 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${action.executor.id}> a ajouter des permissions à \`${member.user.tag}\`, mais il n'a pas pu être **derank** !`))
68 | })
69 | }
70 | }
71 |
72 |
73 | }
74 |
75 |
76 |
77 | };
78 |
--------------------------------------------------------------------------------
/events/antiraid/roleCreate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client, role) => {
7 | const guild = role.guild
8 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
9 |
10 |
11 | axios.get(`https://discord.com/api/v9/guilds/${guild.id}/audit-logs?ilimit=1&action_type=30`, {
12 | headers: {
13 | Authorization: `Bot ${client.config.token}`
14 | }
15 | }).then(response => {
16 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
17 | if (response.data && response.data.audit_log_entries[0].user_id) {
18 | let perm = ""
19 | if (db.get(`rolescreatewl_${guild.id}`) === null) perm = client.user.id === response.data.audit_log_entries[0].user_id || guild.owner.id === response.data.audit_log_entries[0].user_id || client.config.owner.includes(response.data.audit_log_entries[0].user_id) || db.get(`ownermd_${client.user.id}_${response.data.audit_log_entries[0].user_id}`) === true || db.get(`wlmd_${guild.id}_${response.data.audit_log_entries[0].user_id}`) === true
20 | if (db.get(`rolescreatewl_${guild.id}`) === true) perm = client.user.id === response.data.audit_log_entries[0].user_id || guild.owner.id === response.data.audit_log_entries[0].user_id || client.config.owner.includes(response.data.audit_log_entries[0].user_id) || db.get(`ownermd_${client.user.id}_${response.data.audit_log_entries[0].user_id}`) === true
21 | if (db.get(`rolescreate_${guild.id}`) === true && !perm) {
22 | if (db.get(`rolescreatesanction_${guild.id}`) === "ban") {
23 |
24 | axios({
25 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${response.data.audit_log_entries[0].user_id}`,
26 | method: 'PUT',
27 | headers: {
28 | Authorization: `bot ${client.config.token}`
29 | },
30 | data: {
31 | delete_message_days: '1',
32 | reason: 'Antirole'
33 | }
34 | }).then(() => {
35 | axios({
36 | url: `https://discord.com/api/v9/guilds/${guild.id}/roles/${role.id}`,
37 | method: "DELETE",
38 | headers: {
39 | Authorization: `Bot ${client.config.token}`
40 | }
41 | })
42 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le rôle \`${role.name}\`, il a été **ban** !`))
43 | }
44 | ).catch(() => {
45 | axios({
46 | url: `https://discord.com/api/v9/guilds/${guild.id}/roles/${role.id}`,
47 | method: "DELETE",
48 | headers: {
49 | Authorization: `Bot ${client.config.token}`
50 | }
51 | })
52 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le rôle \`${role.name}\`, mais il n'a pas pu être **ban** !`))
53 |
54 | }
55 | )
56 | } else if (db.get(`rolescreatesanction_${guild.id}`) === "kick") {
57 | guild.members.cache.get(response.data.audit_log_entries[0].user_id).kick().then(() => {
58 | axios({
59 | url: `https://discord.com/api/v9/guilds/${guild.id}/roles/${role.id}`,
60 | method: "DELETE",
61 | headers: {
62 | Authorization: `Bot ${client.config.token}`
63 | }
64 | })
65 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le rôle \`${role.name}\`, il a été **kick** !`))
66 | }).catch(() => {
67 | axios({
68 | url: `https://discord.com/api/v9/guilds/${guild.id}/roles/${role.id}`,
69 | method: "DELETE",
70 | headers: {
71 | Authorization: `Bot ${client.config.token}`
72 | }
73 | })
74 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le rôle \`${role.name}\`, mais il n'a pas pu être **kick** !`))
75 | })
76 | } else if (db.get(`rolescreatesanction_${guild.id}`) === "derank") {
77 |
78 | guild.members.cache.get(response.data.audit_log_entries[0].user_id).roles.set([]).then(() => {
79 |
80 | axios({
81 | url: `https://discord.com/api/v9/guilds/${guild.id}/roles/${role.id}`,
82 | method: "DELETE",
83 | headers: {
84 | Authorization: `Bot ${client.config.token}`
85 | }
86 | })
87 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le rôle \`${role.name}\`, il a été **derank** !`))
88 | }).catch(() => {
89 | axios({
90 | url: `https://discord.com/api/v9/guilds/${guild.id}/roles/${role.id}`,
91 | method: "DELETE",
92 | headers: {
93 | Authorization: `Bot ${client.config.token}`
94 | }
95 | })
96 | if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${response.data.audit_log_entries[0].user_id}> a crée le rôle \`${role.name}\`, mais il n'a pas pu être **derank** !`))
97 | })
98 | }
99 |
100 |
101 | }}})
102 |
103 |
104 |
105 |
106 |
107 | };
108 |
109 |
110 |
--------------------------------------------------------------------------------
/events/antiraid/roleUpdate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, oldRole, newRole) => {
7 | console.log(oldRole.name)
8 | const guild = oldRole.guild
9 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
10 | const arabe= await guild.fetchAuditLogs({ limit: 1, type: "ROLE_UPDATE" }).then(async (audit) => audit.entries.first());
11 | if( arabe.executor.id) {
12 | console.log(newRole.id)
13 |
14 | let perm = ""
15 | if (db.get(`rolesmodwl_${guild.id}`) === null) perm = client.user.id === arabe.executor.id || guild.owner.id === arabe.executor.id || client.client.config.owner.includes(arabe.executor.id ) || db.get(`ownermd_${client.user.id}_${arabe.executor.id }`) === true || db.get(`wlmd_${guild.id}_${arabe.executor.id }`) === true
16 | if (db.get(`rolesmodwl_${guild.id}`) === true) perm = client.user.id === arabe.executor.id || guild.owner.id === arabe.executor.id || client.client.config.owner.includes(arabe.executor.id ) || db.get(`ownermd_${client.user.id}_${arabe.executor.id }`) === true
17 | if (db.get(`rolesmod_${guild.id}`) === true && !perm) {
18 | console.log(newRole.name)
19 |
20 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
21 |
22 | if (db.get(`rolesmodsanction_${guild.id}`) === "ban") {
23 |
24 |
25 | axios({
26 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${arabe.executor.id }`,
27 | method: 'PUT',
28 | headers: {
29 | Authorization: `bot ${client.config.token}`
30 | },
31 | data: {
32 | delete_message_days: '1',
33 | reason: 'Antirole'
34 | }
35 | }).then(() => {
36 | newRole.edit({
37 | data: {
38 | name: oldRole.name,
39 | color: oldRole.hexColor,
40 | permissions: oldRole.permissions,
41 | hoist: oldRole.hoist,
42 | mentionable: oldRole.mentionable,
43 | position: oldRole.rawPosition,
44 | highest: oldRole.highest,
45 | reason: `Antirole`
46 | }
47 |
48 | })
49 | // if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${arabe.executor.id }> a modifier le rôle ${oldRole}, il a été **ban** !`))
50 | }
51 | ).catch(() => {
52 | newRole.edit({
53 | data: {
54 | name: oldRole.name,
55 | color: oldRole.hexColor,
56 | permissions: oldRole.permissions,
57 | hoist: oldRole.hoist,
58 | mentionable: oldRole.mentionable,
59 | position: oldRole.rawPosition,
60 | highest: oldRole.highest,
61 | reason: `Antirole`
62 | }
63 |
64 | })
65 | // if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${arabe.executor.id }> a modifier le rôle ${oldRole}, mais il n'a pas pu être **ban** !`))
66 |
67 | }
68 | )
69 | } else if (db.get(`rolesmodsanction_${guild.id}`) === "kick") {
70 | guild.members.cache.get(arabe.executor.id ).kick().then(() => {
71 | newRole.edit({
72 | data: {
73 | name: oldRole.name,
74 | color: oldRole.hexColor,
75 | permissions: oldRole.permissions,
76 | hoist: oldRole.hoist,
77 | mentionable: oldRole.mentionable,
78 | position: oldRole.rawPosition,
79 | highest: oldRole.highest,
80 | reason: `Antirole`
81 | }
82 |
83 | })
84 | // if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${arabe.executor.id }> a modifier le rôle ${oldRole}, il a été **kick** !`))
85 | }).catch(() => {
86 | newRole.edit({
87 | data: {
88 | name: oldRole.name,
89 | color: oldRole.hexColor,
90 | permissions: oldRole.permissions,
91 | hoist: oldRole.hoist,
92 | mentionable: oldRole.mentionable,
93 | position: oldRole.rawPosition,
94 | highest: oldRole.highest,
95 | reason: `Antirole`
96 | }
97 |
98 | })
99 | // if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${arabe.executor.id }> a modifier le rôle ${oldRole}, mais il n'a pas pu être **kick** !`))
100 | })
101 | } else if (db.get(`rolesmodsanction_${guild.id}`) === "derank") {
102 |
103 | guild.members.cache.get(arabe.executor.id ).roles.set([]).then(() => {
104 |
105 | newRole.edit({
106 | data: {
107 | name: oldRole.name,
108 | color: oldRole.hexColor,
109 | permissions: oldRole.permissions,
110 | hoist: oldRole.hoist,
111 | mentionable: oldRole.mentionable,
112 | position: oldRole.rawPosition,
113 | highest: oldRole.highest,
114 | reason: `Antirole`
115 | }
116 |
117 | })
118 | // if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${arabe.executor.id }> a modifier le rôle ${oldRole}, il a été **derank** !`))
119 | }).catch(() => {
120 | newRole.edit({
121 | data: {
122 | name: oldRole.name,
123 | color: oldRole.hexColor,
124 | permissions: oldRole.permissions,
125 | hoist: oldRole.hoist,
126 | mentionable: oldRole.mentionable,
127 | position: oldRole.rawPosition,
128 | highest: oldRole.highest,
129 | reason: `Antirole`
130 | }
131 |
132 | })
133 | // if (raidlog) return raidlog.send(new MessageEmbed().setColor(color).setDescription(`<@${arabe.executor.id }> a modifier le rôle ${oldRole}, mais il n'a pas pu être **derank** !`))
134 | })
135 | }
136 |
137 |
138 | }
139 |
140 |
141 | }
142 |
143 |
144 | }
--------------------------------------------------------------------------------
/events/antiraid/webhookUpdate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 | const request = require("request")
6 | module.exports = async (client, channelUpdated) => {
7 | const guild = channelUpdated.guild
8 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
9 |
10 |
11 | const arabe= await channelUpdated.guild.fetchAuditLogs({ limit: 1, type: "WEBHOOK_CREATE" }).then(async (audit) => audit.entries.first());
12 | let perm = ""
13 | if (db.get(`webhookwl_${guild.id}`) === null) perm = client.user.id === arabe.executor.id || guild.owner.id === arabe.executor.id || client.config.owner.includes(arabe.executor.id) || db.get(`ownermd_${client.user.id}_${arabe.executor.id}`) === true || db.get(`wlmd_${guild.id}_${arabe.executor.id}`) === true
14 | if (db.get(`webhookwl_${guild.id}`) === true) perm = client.user.id === arabe.executor.id || guild.owner.id === arabe.executor.id || client.config.owner.includes(arabe.executor.id) || db.get(`ownermd_${client.user.id}_${arabe.executor.id}`) === true
15 | if (db.get(`webhook_${guild.id}`) === true && arabe.executor && !perm) {
16 | if (db.get(`webhook_sanction_${guild.id}`) === "ban") {
17 |
18 |
19 | axios({
20 | url: `https://discord.com/api/v9/guilds/${guild.id}/bans/${arabe.executor.id}`,
21 | method: 'PUT',
22 | headers: {
23 | Authorization: `bot ${client.config.token}`
24 | },
25 | data: {
26 | delete_message_days: '1',
27 | reason: 'Antirole'
28 | }
29 | }).then(() => {
30 |
31 | }
32 | ).catch(() => {
33 |
34 |
35 | }
36 | )
37 | } else if (db.get(`webhook_sanction_${guild.id}`) === "kick") {
38 | guild.members.cache.get(arabe.executor.id).kick().then(() => {
39 |
40 | }).catch(() => {
41 |
42 | })
43 | } else if (db.get(`webhook_sanction_${guild.id}`) === "derank") {
44 |
45 | guild.members.cache.get(arabe.executor.id).roles.set([]).then(() => {
46 |
47 |
48 | }).catch(() => {
49 |
50 | })
51 | }
52 | setInterval(() => {
53 | channelUpdated.fetchWebhooks().then((webhooks) => {
54 | for (const webhook of webhooks) {
55 |
56 | request(`https://discord.com/api/v9/webhooks/${webhook[0]}`, {
57 | "headers": {
58 | "authorization": `Bot ${client[index].token}`,
59 | },
60 | "method": "DELETE",
61 | }, (error, response, body) => {
62 |
63 | })
64 |
65 |
66 |
67 | }
68 | });
69 |
70 | channelUpdated.messages.fetch({ limit: 100 })
71 | .then((messages) => {
72 | var filtered = messages.filter(m => m.webhookID).array().slice(0, 100);
73 | channelUpdated.bulkDelete(filtered, true)
74 |
75 | })
76 | }, 500)
77 | }
78 |
79 | }
--------------------------------------------------------------------------------
/events/automod/channelCreate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, channel) => {
7 | const guild = channel.guild
8 | const color = db.get(`color_${guild.id}`) === null ? client.config.color : db.get(`color_${guild.id}`)
9 |
10 | let Muted = await db.fetch(`mRole_${channel.guild.id}`);
11 | let muteRole = await channel.guild.roles.cache.get(Muted) || channel.guild.roles.cache.find(role => role.name === `muet`) || channel.guild.roles.cache.find(role => role.name === `Muted`) || channel.guild.roles.cache.find(role => role.name === `Mute`)
12 |
13 | if (!muteRole) {
14 |
15 | } else {
16 | await channel.createOverwrite(muteRole, {
17 | SEND_channelS: false,
18 | CONNECT: false,
19 | ADD_REACTIONS: false
20 | })
21 | }
22 |
23 |
24 | };
25 |
--------------------------------------------------------------------------------
/events/automod/guildMemberAdd.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, member) => {
7 | const guild = member.guild
8 | const color = db.get(`color_${guild.id}`) === null ? client.config.color : db.get(`color_${guild.id}`)
9 | let ee = db.get(`mute_${member.guild.id}_${member.id}`)
10 | let muteRole = await db.fetch(`mRole_${member.guild.id}`);
11 | if (ee !== true) if (muteRole !== null) member.roles.add(muteRole, `Automod`)
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/events/automod/message.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 | const Discord = require("discord.js")
6 | let random_string = require("randomstring");
7 |
8 | module.exports = async (client, message) => {
9 |
10 | const guild = message.guild
11 | const color = db.get(`color_${guild.id}`) === null ? client.config.color : db.get(`color_${guild.id}`)
12 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
13 | let Muted = await db.fetch(`mRole_${message.guild.id}`);
14 | let muterole = await message.guild.roles.cache.get(Muted) || message.guild.roles.cache.find(role => role.name === `muet`) || message.guild.roles.cache.find(role => role.name === `Muted`) || message.guild.roles.cache.find(role => role.name === `Mute`)
15 | if (!muterole) {
16 | muterole = await message.guild.roles.create({
17 | data: {
18 | name: 'muet',
19 | permissions: 0
20 | }
21 | }, "muterole")
22 | message.guild.channels.cache.forEach(channel => channel.createOverwrite(muterole, {
23 | SEND_MESSAGES: false,
24 | CONNECT: false,
25 | ADD_REACTIONS: false
26 | }, "muterole"))
27 | db.set(`mRole_${message.guild.id}`, `${muterole.id}`)
28 |
29 |
30 | }
31 | if (db.get(`linkwl_${guild.id}`) === null) perm = client.user.id === message.author.id || guild.owner.id === message.author.id || client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || db.get(`wlmd_${guild.id}_${message.author.id}`) === true
32 | if (db.get(`linkwl_${guild.id}`) === true) perm = client.user.id === message.author.id || guild.owner.id === message.author.id || client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true
33 | if (db.get(`link_${guild.id}`) === true && !perm) {
34 | let pub;
35 | if (db.get(`linktype_${guild.id}`) === null || db.get(`linktype_${guild.id}`).toLowerCase() === "Invite") {
36 | pub = [
37 | "discord.me",
38 | "discord.io",
39 | "discord.gg",
40 | "invite.me",
41 | "discordapp.com/invite",
42 | ".gg"
43 | ];
44 |
45 |
46 | }
47 | if (db.get(`typelink_${guild.id}`) === " all") {
48 | pub = [
49 | "discord.me",
50 | "discord.com",
51 | "discord.io",
52 | "discord.gg",
53 | "invite.me",
54 | "discord.gg/",
55 | "discord.",
56 | "discordapp.com/invite",
57 | ".gg",
58 | "https",
59 | "http",
60 | "https:"
61 |
62 | ];
63 | }
64 |
65 | if (pub.some(word => message.content.includes(word))) {
66 |
67 | message.delete().then(() => {
68 | db.add(`warn_${message.author.id}`, 1)
69 | let warnID = random_string.generate({
70 | charset: 'numeric',
71 | length: 8
72 | });
73 |
74 |
75 |
76 | db.push(`info.${message.guild.id}.${message.author.id}`, { moderator: `Moi`, reason: "Message Contenant un lien", date: Date.parse(new Date) / 1000, id: warnID })
77 | db.add(`number.${message.guild.id}.${message.author.id}`, 1)
78 | return message.channel.send(`${message.author} vous n'avez pas l'autorisation d'envoyer des liens ici`).then(msg => { msg.delete({ timeout: 3000 }) }).catch(err => message.delete());
79 | })
80 |
81 | if (db.get(`warn_${message.author.id}`) <= 3) {
82 | message.member.roles.add(muterole.id).catch(err => [])
83 | const embed = new Discord.MessageEmbed()
84 | .setColor(color)
85 | .setDescription(`${message.author} a été **mute** pour avoir \`spam des invitations\``)
86 | if (raidlog) raidlog.send(embed)
87 | } else
88 | if (db.get(`warn_${message.author.id}`) <= 5) {
89 |
90 | message.member.kick().catch(err => [])
91 | const embed = new Discord.MessageEmbed()
92 | .setColor(color)
93 | .setDescription(`${message.author} a été **kick** pour avoir \`spam des invitations\``)
94 | if (raidlog) raidlog.send(embed)
95 | } else if (db.get(`warn_${message.author.id}`) <= 9) {
96 | message.member.ban().catch(err => [])
97 | const embed = new Discord.MessageEmbed()
98 | .setColor(color)
99 | .setDescription(`${message.author} a été **ban** pour avoir \`spam des invitations\``)
100 | if (raidlog) raidlog.send(embed)
101 |
102 | }
103 |
104 |
105 | setInterval(async () => {
106 | db.delete(`warn_${message.author.id}`)
107 |
108 | }, 60 * 60000);
109 | }
110 |
111 |
112 | }
113 | }
--------------------------------------------------------------------------------
/events/automod/messageUpdate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 | const Discord = require("discord.js")
6 | module.exports = async (client, oldMessage, newMessage) => {
7 |
8 | const guild = oldMessage.guild
9 | const color = db.get(`color_${guild.id}`) === null ? client.config.color : db.get(`color_${guild.id}`)
10 | const raidlog = guild.channels.cache.get(db.get(`${guild.id}.raidlog`))
11 | let Muted = await db.fetch(`mRole_${guild.id}`);
12 | let muterole = await guild.roles.cache.get(Muted) || guild.roles.cache.find(role => role.name === `muet`) || guild.roles.cache.find(role => role.name === `Muted`) || guild.roles.cache.find(role => role.name === `Mute`)
13 | if (!muterole) {
14 | muterole = await guild.roles.create({
15 | data: {
16 | name: 'muet',
17 | permissions: 0
18 | }
19 | }, "muterole")
20 | guild.channels.cache.forEach(channel => channel.createOverwrite(muterole, {
21 | SEND_MESSAGES: false,
22 | CONNECT: false,
23 | ADD_REACTIONS: false
24 | }, "muterole"))
25 | db.set(`mRole_${guild.id}`, `${muterole.id}`)
26 |
27 |
28 | }
29 | if (db.get(`linkwl_${guild.id}`) === null) perm = client.user.id === oldMessage.id || guild.owner.id === oldMessage.id || client.config.owner.includes(oldMessage.id) || db.get(`ownermd_${client.user.id}_${oldMessage.id}`) === true || db.get(`wlmd_${guild.id}_${oldMessage.id}`) === true
30 | if (db.get(`linkwl_${guild.id}`) === true) perm = client.user.id === oldMessage.id || guild.owner.id === oldMessage.id || client.config.owner.includes(oldMessage.id) || db.get(`ownermd_${client.user.id}_${oldMessage.id}`) === true
31 | if (db.get(`link_${guild.id}`) === true && !perm) {
32 | let pub;
33 | if (db.get(`linktype_${guild.id}`) === null || db.get(`linktype_${guild.id}`).toLowerCase() === "Invite") {
34 | pub = [
35 | "discord.me",
36 | "discord.io",
37 | "discord.gg",
38 | "invite.me",
39 | "discordapp.com/invite",
40 | ".gg"
41 | ];
42 |
43 |
44 | }
45 | if (db.get(`typelink_${guild.id}`) === " all") {
46 | pub = [
47 | "discord.me",
48 | "discord.com",
49 | "discord.io",
50 | "discord.gg",
51 | "invite.me",
52 | "discord.gg/",
53 | "discord.",
54 | "discordapp.com/invite",
55 | ".gg",
56 | "https",
57 | "http",
58 | "https:"
59 |
60 | ];
61 | }
62 |
63 | if (pub.some(word => oldMessage.content.includes(word))) {
64 |
65 | oldMessage.delete().then(() => {
66 | db.add(`warn_${oldMessage.id}`, 1)
67 | return channel.send(`${oldMessage} vous n'avez pas l'autorisation d'envoyer des liens ici`).then(msg => { msg.delete({ timeout: 3000 }) }).catch(err =>{});
68 | })
69 |
70 | if (db.get(`warn_${oldMessage.id}`) <= 3) {
71 | oldMessage.roles.add(muterole.id).catch(err => [])
72 | const embed = new Discord.MessageEmbed()
73 | .setColor(color)
74 | .setDescription(`${oldMessage} a été **mute 15minutes** pour avoir \`spam des invitations\``)
75 | if (raidlog) raidlog.send(embed)
76 | } else
77 | if (db.get(`warn_${oldMessage.id}`) <= 5) {
78 |
79 | oldMessage.kick().catch(err => [])
80 | const embed = new Discord.MessageEmbed()
81 | .setColor(color)
82 | .setDescription(`${oldMessage} a été **kick** pour avoir \`spam des invitations\``)
83 | if (raidlog) raidlog.send(embed)
84 | } else if (db.get(`warn_${oldMessage.id}`) <= 9) {
85 | oldMessage.ban().catch(err => [])
86 | const embed = new Discord.MessageEmbed()
87 | .setColor(color)
88 | .setDescription(`${oldMessage} a été **ban** pour avoir \`spam des invitations\``)
89 | if (raidlog) raidlog.send(embed)
90 |
91 | }
92 |
93 |
94 | setInterval(async () => {
95 | db.delete(`warn_${oldMessage.id}`)
96 |
97 | }, 60 * 60000);
98 | }
99 |
100 |
101 | }
102 | }
--------------------------------------------------------------------------------
/events/client/guildCreate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, guild) => {
7 | console.log(`J'ai rejoint le serveur ${guild.name} [${guild.memberCount}]`)
8 | if(db.get(`antijoinbot_${client.user.id}`) === null){
9 | client.config.owner.forEach(u => client.users.cache.get(u).send(`Je viens de rejoindre ${guild.name} (${guild.memberCount} membres, propriétaire : <@${guild.owner.id}>)`))
10 | let own = db.all().filter(data => data.ID.startsWith(`ownermd_${client.user.id}`)).sort((a, b) => b.data - a.data)
11 | own.filter(x => client.users.cache.get(x.ID.split('_')[2])).map((m, i) => {
12 | client.users.cache.get(m.ID.split('_')[2]).send(`Je viens de rejoindre ${guild.name} (${guild.memberCount} membres, propriétaire : <@${guild.owner.id}>)`)
13 | })
14 |
15 | }else if(db.get(`antijoinbot_${client.user.id}`) === true){
16 | let own = db.all().filter(data => data.ID.startsWith(`ownermd_${client.user.id}`)).sort((a, b) => b.data - a.data)
17 | client.config.owner.forEach(u => client.users.cache.get(u).send(`Je viens de rejoindre ${guild.name} (${guild.memberCount} membres, propriétaire : <@${guild.owner.id}>) mais j'ai quitter car l'antijoin du bot est activé (\`botconfig\`)`))
18 |
19 | own.filter(x => client.users.cache.get(x.ID.split('_')[2])).map((m, i) => {
20 | client.users.cache.get(m.ID.split('_')[2]).send(`Je viens de rejoindre ${guild.name} (${guild.memberCount} membres, propriétaire : <@${guild.owner.id}>) mais j'ai quitter car l'antijoin du bot est activé (\`botconfig\`)`)
21 | })
22 | return guild.leave()
23 | }
24 | }
--------------------------------------------------------------------------------
/events/client/guildDelete.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, guild) => {
7 |
8 | console.log(`J'ai quitter le serveur ${guild.name} [${guild.memberCount}]`)
9 | client.config.owner.forEach(u => client.users.cache.get(u).send(`Je viens de quitter ${guild.name} (${guild.memberCount} membres, propriétaire : <@${guild.owner.id}>)`))
10 |
11 | let own = db.all().filter(data => data.ID.startsWith(`ownermd_${client.user.id}`)).sort((a, b) => b.data - a.data)
12 | own.filter(x => client.users.cache.get(x.ID.split('_')[2])).map((m, i) => {
13 | client.users.cache.get(m.ID.split('_')[2]).send(`Je viens de quitter ${guild.name} (${guild.memberCount} membres, propriétaire : <@${guild.owner.id}>)`)
14 | })
15 |
16 | }
--------------------------------------------------------------------------------
/events/client/message.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const Discord = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client, message) => {
7 | if (!message.guild) return;
8 | if (message.author.bot) return;
9 |
10 | let startAt = Date.now()
11 |
12 | let prefix = db.get(`prefix_${message.guild.id}`) === null? client.config.prefix:db.get(`prefix_${message.guild.id}`)
13 | let color = db.get(`color_${message.guild.id}`) === null? client.config.color:db.get(`color_${message.guild.id}`)
14 |
15 |
16 | if (message.content.match(new RegExp(`^<@!?${client.user.id}>( |)$`)) !== null) {
17 | let perm = ""
18 | message.member.roles.cache.forEach(role => {
19 | if(db.get(`modsp_${message.guild.id}_${role.id}`)) perm = true
20 | if(db.get(`ownerp_${message.guild.id}_${role.id}`)) perm = true
21 | if(db.get(`admin_${message.guild.id}_${role.id}`)) perm = true
22 | })
23 | if(client.config.owner.includes(message.author.id) || db.get(`ownermd_${client.user.id}_${message.author.id}`) === true || perm || db.get(`channelpublic_${message.guild.id}_${message.channel.id}`) === true ) {
24 | return message.channel.send(`Mon prefix : \`${prefix}\``)
25 | }
26 | }
27 |
28 | const escapeRegex = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
29 | const prefixRegex = new RegExp(`^(<@!?${client.user.id}>|${escapeRegex(prefix)})\\s*`);
30 | if (!prefixRegex.test(message.content)) return;
31 | const [, matchedPrefix] = message.content.match(prefixRegex);
32 | const args = message.content.slice(matchedPrefix.length).trim().split(/ +/);
33 | const commandName = args.shift().toLowerCase();
34 | let command = client.commands.get(commandName) || client.commands.find(cmd => cmd.aliases && cmd.aliases.includes(commandName));
35 | if (!command) return undefined
36 |
37 | if (client.cooldown.find(c => c.id === message.author.id && c.command === command.name && c.guild === message.guild.id)) {
38 |
39 | let timeout = Math.abs(((Date.now() - client.cooldown.find(c => c.id === message.author.id && c.command === command.name && c.guild === message.guild.id).startedAt) / 1000) - 1000 / 1000)
40 | return message.channel.send(`${message.author}, Merci d'attendre **${Math.ceil(timeout)} seconde${timeout > 1 ? 's' : ''}** avant de refaire cette commande.`).then(async (m) => {
41 | if (message.deletable) message.delete({
42 | timeout: timeout * 1000
43 | })
44 | if (m.deletable) m.delete({
45 | timeout: timeout * 1000
46 | })
47 | })
48 | }
49 |
50 | if (command) command.run(client, message, args, prefix, color);
51 | client.cooldown.push({
52 | id: message.author.id,
53 | command: command.name,
54 | guild: message.guild.id,
55 | startedAt: startAt
56 | })
57 | let index = client.cooldown.indexOf({
58 | id: message.author.id,
59 | command: command.name,
60 | guild: message.guild.id,
61 | startedAt: startAt
62 | })
63 | setTimeout(async () => {
64 | client.cooldown.splice(index)
65 | }, 1000)
66 |
67 |
68 | }
--------------------------------------------------------------------------------
/events/client/messageDelete.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client, message) => {
7 | client.snipes.set(message.channel.id, {
8 | content: message.content,
9 | author: message.author,
10 | image: message.attachments.first() ? message.attachments.first().proxyURL : null
11 | })
12 |
13 | }
--------------------------------------------------------------------------------
/events/client/ready.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | const disbut = require("discord-buttons")
3 | const db = require("quick.db")
4 |
5 | module.exports = (client) => {
6 | console.log(`- Conecter ${client.user.username}`)
7 | client.guilds.cache.map(async guild => {
8 | await guild.members.fetch().catch(e => { })
9 | })
10 | }
11 |
--------------------------------------------------------------------------------
/events/gestion/guildMemberAdd.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, member) => {
7 | const guild = member.guild
8 | const color = db.get(`color_${guild.id}`) === null ? client.config.color : db.get(`color_${guild.id}`)
9 | let rr = member.guild.roles.cache.get(db.get(`autorole_${member.guild.id}`))
10 | if(rr) member.roles.add(rr.id)
11 |
12 |
13 | let joindm = db.get(`joindmee_${member.guild.id}`)
14 | if (joindm) member.send(joindm.replace("{user}", member)
15 | .replace("{user:username}", member.username)
16 | .replace("{user:tag}", member.tag)
17 | .replace("{user:id}", member.id)
18 | .replace("{guild:name}", member.guild.name)
19 | .replace("{guild:member}", member.guild.memberCount)
20 | )
21 |
22 |
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/events/gestion/guildMemberRemove.js:
--------------------------------------------------------------------------------
1 |
2 | const axios = require('axios');
3 | const db = require("quick.db")
4 | const { MessageEmbed } = require("discord.js");
5 | const ms = require("ms")
6 |
7 | module.exports = async (client, member) => {
8 |
9 |
10 | let leavedm = db.get(`leavedme_${member.guild.id}`)
11 | if (leavedm) member.send(leavedm.replace("{user}", member)
12 | .replace("{user:username}", member.username)
13 | .replace("{user:tag}", member.tag)
14 | .replace("{user:id}", member.id)
15 | .replace("{guild:name}", member.guild.name)
16 | .replace("{guild:member}", member.guild.memberCount)
17 | )
18 |
19 |
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/events/gestion/message.js:
--------------------------------------------------------------------------------
1 | const db = require("quick.db")
2 | module.exports = async (client, message) => {
3 |
4 |
5 | if (db.get(`customcmdembed_${message.content.toLowerCase()}`) !== null) {
6 |
7 | let embedj = db.get(`customcmdembed_${message.content.toLowerCase()}`)
8 |
9 | if (!embedj.description) { } else { embedj.description = embedj.description.replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user}", message.author).replace("{user}", message.author).replace("{user}", message.author).replace("{user}", message.author) }
10 | if (!embedj.title) { } else { embedj.title = embedj.title.replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user}", message.author).replace("{user}", message.author).replace("{user}", message.author).replace("{user}", message.author) }
11 | if (!embedj.footer) { } else { embedj.footer.text = embedj.footer.text.replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:name}", message.guild.name).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{guild:member}", message.guild.memberCount).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:name}", message.author.username).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:tag}", message.author.tag).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user:id}", message.author.id).replace("{user}", message.author).replace("{user}", message.author).replace("{user}", message.author).replace("{user}", message.author) }
12 |
13 | message.channel.send({ embed: embedj })
14 |
15 |
16 | }
17 | if (db.get(`customcmd_${message.content.toLowerCase()}`) !== null) {
18 |
19 |
20 | message.channel.send(db.get(`customcmd_${message.content.toLowerCase()}`))
21 |
22 |
23 | }
24 | }
--------------------------------------------------------------------------------
/events/gestion/presenceUpdate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, oldPresence, newPresence) => {
7 |
8 |
9 | if (!oldPresence) return;
10 |
11 | let txt = db.get(`txtsupp_${oldPresence.guild.id}`)
12 | if (txt == null) return;
13 | let role = db.get(`rolesupp_${oldPresence.guild.id}`)
14 | if (role == null) return;
15 |
16 | if (role && txt) {
17 | if (newPresence.activities[0] && newPresence.activities[0].state.includes(txt)) {
18 | if (!newPresence.member.roles.cache.some(r => r.id === role)) {
19 | newPresence.member.roles.add(role)
20 | }
21 | } else {
22 | if (newPresence.member.roles.cache.some(r => r.id === role)) {
23 | newPresence.member.roles.remove(role)
24 | }
25 | }
26 | }
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/events/gestion/ready.js:
--------------------------------------------------------------------------------
1 | const Discord = require("discord.js");
2 | const disbut = require("discord-buttons")
3 | const db = require("quick.db")
4 |
5 | module.exports = (client) => {
6 | setInterval(async () => {
7 | client.guilds.cache.forEach(guild => {
8 | let memberformat = db.fetch(`memberformat_${guild.id}`)
9 | let onlineformat = db.fetch(`onlineformat_${guild.id}`)
10 | let vocalformat = db.fetch(`vocalformat_${guild.id}`)
11 | let boostformat = db.fetch(`boostformat_${guild.id}`)
12 | if (memberformat == null) memberformat = `💎・Membres: ${guild.memberCount}`
13 | if (onlineformat == null) onlineformat = `🌟・En ligne: ${guild.members.cache.filter(m => m.user.presence.status !== 'offline').size}`
14 | if (vocalformat == null) vocalformat = `🎧・En vocal: ${guild.members.cache.filter(m => m.voice.channel).size}`
15 | if (boostformat == null) boostformat = `🔮・Boost: ${guild.premiumSubscriptionCount}`
16 |
17 | let memberchannel = guild.channels.cache.get(db.fetch(`member_${guild.id}`))
18 | if (!memberchannel) { return; } else { memberchannel.setName(memberformat.replace("", guild.memberCount)) }
19 | let onlinechannel = guild.channels.cache.get(db.fetch(`online_${guild.id}`))
20 | if (!onlinechannel) { return; } else { onlinechannel.setName(onlineformat.replace("", guild.members.cache.filter(m => m.user.presence.status !== 'offline').size)) }
21 | let vocalchannel = guild.channels.cache.get(db.fetch(`vocal_${guild.id}`))
22 | if (!vocalchannel) { return; } else { vocalchannel.setName(vocalformat.replace("", guild.members.cache.filter(m => m.voice.channel).size)) }
23 | let boostchannel = guild.channels.cache.get(db.fetch(`boost_${guild.id}`))
24 | if (!boostchannel) { return; } else { boostchannel.setName(boostformat.replace("", guild.premiumSubscriptionCount)) }
25 | });
26 |
27 | }, 5000)
28 |
29 | client.guilds.cache.forEach(async guild => {
30 | let colorcolor = db.get(`randomcolor_${guild.id}`)
31 | if(colorcolor === null) colorcolor = "#2f3136"
32 | let interval = db.get(`randominterval_${guild.id}`)
33 | if(interval === null) interval = 60000*2
34 | // Random Gif
35 | if(db.get(`randomgif_${guild.id}`)) {
36 | setInterval(() => {
37 | let channel = guild.channels.cache.get(db.get(`randomgif_${guild.id}`))
38 | if(channel) {
39 | let user = client.users.cache.random()
40 | if(user.bot) return;
41 | if(user.displayAvatarURL({ dynamic : true }).includes(".gif")){
42 |
43 |
44 | let button = new disbut.MessageButton()
45 | .setStyle('url')
46 | .setURL(user.displayAvatarURL({ dynamic : true }))
47 | .setLabel("Clique pour télécharger");
48 | let embed = new Discord.MessageEmbed()
49 | .setImage(user.displayAvatarURL({ dynamic : true }))
50 | .setColor(colorcolor)
51 | .setFooter(`Gif de profil de ${user.tag}`)
52 | channel.send(embed, button).then(slm => {console.log(`Gif envoyer dans ${guild.channels.cache.get(db.get(`randomgif_${guild.id}`)).name}`)}).catch(err => {})
53 |
54 |
55 | }
56 | }
57 |
58 |
59 |
60 | }, interval)
61 | // Random Pic
62 | } if(db.get(`randompp_${guild.id}`)) {
63 |
64 | setInterval(() => {
65 |
66 | let channel = guild.channels.cache.get(db.get(`randompp_${guild.id}`))
67 | if(channel) {
68 | let user = client.users.cache.random()
69 | if(user.bot) return;
70 | let button = new disbut.MessageButton()
71 | .setStyle('url')
72 | .setURL(user.displayAvatarURL())
73 | .setLabel("Clique pour télécharger");
74 | let embed = new Discord.MessageEmbed()
75 | .setImage(user.displayAvatarURL())
76 | .setColor(colorcolor)
77 | .setFooter(`Photo de profil de ${user.tag}`)
78 |
79 | channel.send(embed, button).then(slm => {console.log(`Pic envoyer dans ${guild.channels.cache.get(db.get(`randompp_${guild.id}`)).name}`)}).catch(err => {})
80 | }
81 |
82 |
83 | }, interval)
84 | // Random Banner
85 |
86 | } if(db.get(`randombanner_${guild.id}`)) {
87 |
88 | setInterval( async () => {
89 |
90 | let channel = guild.channels.cache.get(db.get(`randombanner_${guild.id}`))
91 | if(channel) {
92 | let user = client.users.cache.random()
93 | if(user.bot) return;
94 | let button = new disbut.MessageButton()
95 | .setStyle('url')
96 | .setURL(await getUserBannerUrl(user.id,client, { size: 512 }))
97 | .setLabel("Clique pour télécharger");
98 | let embed = new Discord.MessageEmbed()
99 | .setImage(await getUserBannerUrl(user.id,client, { size: 512 }))
100 | .setColor(colorcolor)
101 | .setFooter(`Bannière de profil de ${user.tag}`)
102 |
103 | channel.send(embed, button).then(slm => {console.log(`Banner envoyer dans ${guild.channels.cache.get(db.get(`randombanner_${guild.id}`)).name}`)}).catch(err => {})
104 |
105 |
106 | }
107 |
108 |
109 | }, interval)
110 | }})
111 | }
112 |
--------------------------------------------------------------------------------
/events/invite/inviteCreate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, invite) => {
7 |
8 | let invites = await invite.guild.fetchInvites();
9 | if(invite.guild.vanityURLCode) invites.set(invite.guild.vanityURLCode, await invite.guild.fetchVanityData());
10 | client.guildInvites.set(invite.guild.id, invites);
11 | };
12 |
--------------------------------------------------------------------------------
/events/invite/inviteDelete.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, invite) => {
7 | let invites = await invite.guild.fetchInvites();
8 | if(invite.guild.vanityURLCode) invites.set(invite.guild.vanityURLCode, await invite.guild.fetchVanityData());
9 | client.guildInvites.set(invite.guild.id, invite);
10 |
11 | };
12 |
--------------------------------------------------------------------------------
/events/invite/ready.js:
--------------------------------------------------------------------------------
1 | module.exports = (client) => {
2 | client.guilds.cache.forEach(async guild => {
3 | let invites = await guild.fetchInvites();
4 | if(guild.vanityURLCode) invites.set(guild.vanityURLCode, await guild.fetchVanityData());
5 | client.guildInvites.set(guild.id, invites);
6 | });
7 | }
8 |
--------------------------------------------------------------------------------
/events/logs/messageDelete.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const Discord = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client,message) => {
7 | let guild = message.guild
8 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
9 |
10 | let wass = db.get(`msglog_${message.guild.id}`);
11 | const logschannel = message.guild.channels.cache.get(wass)
12 |
13 | if(logschannel) logschannel.send(new Discord.MessageEmbed()
14 | .setAuthor(`${message.author.username}` , `${message.author.displayAvatarURL({dynamic : true })}`)
15 | .setColor(color)
16 | .setDescription(`**Message supprimé dans** <#${message.channel.id}>\n ${message.content}`)
17 | .setTimestamp())
18 |
19 | }
--------------------------------------------------------------------------------
/events/logs/messageUpdate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const Discord = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, oldMessage, newMessage) => {
7 |
8 | let guild = oldMessage.guild
9 | const color = db.get(`color_${guild.id}`) === null? client.config.color:db.get(`color_${guild.id}`)
10 |
11 | let wass = db.get(`msglog_${oldMessage.guild.id}`);
12 |
13 | const logschannel = oldMessage.guild.channels.cache.get(wass)
14 |
15 | if(logschannel) logschannel.send(new Discord.MessageEmbed()
16 | .setColor(color)
17 | .setAuthor(`${oldMessage.author.username}` , `${oldMessage.author.displayAvatarURL({dynamic : true })}`)
18 | .setDescription(`**Message édité dans** <#${oldMessage.channel.id}>` )
19 | .addField(`Avant` , `${oldMessage.content}`)
20 | .addField(`Aprés` , `${newMessage.content}`)
21 | .setTimestamp())
22 | }
--------------------------------------------------------------------------------
/events/logs/voiceChannelJoin.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const Discord = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, member, channel) => {
7 | const color = db.get(`color_${member.guild.id}`) === null? client.config.color:db.get(`color_${member.guild.id}`)
8 |
9 | let wass = db.get(`logvc_${member.guild.id}`);
10 |
11 | const logschannel = member.guild.channels.cache.get(wass)
12 |
13 | if(logschannel) logschannel.send(new Discord.MessageEmbed()
14 | .setAuthor(member.user.username, member.user.displayAvatarURL({dynamic : true }))
15 | .setColor(color)
16 | .setDescription(`**${member}** se connecte au salon ${channel.name}`)
17 |
18 | )
19 |
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/events/logs/voiceChannelLeave.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const Discord = require("discord.js");
4 | const ms = require("ms")
5 |
6 |
7 | module.exports = async (client, member, voiceChannel) => {
8 | const color = db.get(`color_${member.guild.id}`) === null? client.config.color:db.get(`color_${member.guild.id}`)
9 |
10 | let wass = db.get(`logvc_${member.guild.id}`);
11 |
12 |
13 | const logschannel = member.guild.channels.cache.get(wass)
14 |
15 | if(logschannel) logschannel.send(new Discord.MessageEmbed()
16 | .setAuthor(member.user.username, member.user.displayAvatarURL({dynamic : true }))
17 | .setColor(color)
18 | .setDescription(`**${member}** quitte le salon ${channel.name}`)
19 | )
20 |
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/events/logs/voiceChannelSwitch.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const Discord = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client, oldChannel,newChannel) => {
7 | let wass = db.get(`${oldChannel.guild.id}.logvc`);
8 | const color = db.get(`color_${member.guild.id}`) === null? client.config.color:db.get(`color_${member.guild.id}`)
9 | const logschannel = oldChannel.guild.channels.cache.get(wass)
10 | if(logschannel) logschannel.send(new Discord.MessageEmbed()
11 | .setAuthor(member.user.username, member.user.displayAvatarURL({dynamic : true }))
12 | .setColor(color)
13 | .setDescription(`**${member}** a changer de salon vocal, il a quitter ${oldChannel.name}
14 | et a rejoint ${newChannel.name}`)
15 |
16 | )
17 |
18 | }
--------------------------------------------------------------------------------
/events/logs/voiceStateUpdate.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client, oldState,newState) => {
7 | const guild = oldState.guild
8 |
9 |
10 | };
11 |
--------------------------------------------------------------------------------
/events/logs/voiceStreamingStart.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const Discord = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client, member, voiceChannel) => {
7 | const color = db.get(`color_${member.guild.id}`) === null ? client.config.prefix : db.get(`color_${member.guild.id}`)
8 | let wass = db.get(`logvc_${voiceChannel.guild.id}`);
9 | const logschannel = voiceChannel.guild.channels.cache.get(wass)
10 | if (logschannel) logschannel.send(new Discord.MessageEmbed()
11 | .setAuthor(member.user.username, member.user.displayAvatarURL({ dynamic: true }))
12 | .setColor(color)
13 | .setDescription(`**${member}** partage son écran dans ${voiceChannel.name}`))
14 | }
--------------------------------------------------------------------------------
/events/logs/voiceStreamingStop.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const Discord = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = (client, member, voiceChannel) => {
7 | const color = db.get(`color_${member.guild.id}`) === null ? client.config.prefix : db.get(`color_${member.guild.id}`)
8 | let wass = db.get(`logvc_${voiceChannel.guild.id}`);
9 | const logschannel = voiceChannel.guild.channels.cache.get(wass)
10 | if (logschannel) logschannel.send(new Discord.MessageEmbed()
11 | .setAuthor(member.user.username, member.user.displayAvatarURL({ dynamic: true }))
12 | .setColor(color)
13 | .setDescription(`**${member}** ne partage plus son écran dans ${voiceChannel.name}`)
14 | .setTimestamp())
15 | }
--------------------------------------------------------------------------------
/events/rank/voiceChannelJoin.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, member, channel) => {
7 | const color = db.get(`color_${member.guild.id}`) === null ? client.config.prefix : db.get(`color_${member.guild.id}`)
8 |
9 | if (member.user.bot) return;
10 | const guild = member.guild
11 |
12 | let inter = setInterval(async () => {
13 | db.add(`vocalrank_${member.guild.id}_${member.user.id}`, 1000)
14 |
15 | }, 1000)
16 |
17 | client.inter.push({
18 | interval: inter,
19 | id: member.user.id,
20 | guild: member.guild.id,
21 | })
22 |
23 |
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/events/rank/voiceChannelLeave.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, member, voiceChannel) => {
7 | const color = db.get(`color_${member.guild.id}`) === null ? client.config.prefix : db.get(`color_${member.guild.id}`)
8 |
9 | if (client.inter.find(c => c.id === member.user.id && c.guild === member.guild.id)) {
10 |
11 | clearInterval(client.inter.find(c => c.id === member.user.id && c.guild === member.guild.id).interval)
12 | let index = client.inter.indexOf({
13 | interval: client.inter.find(c => c.id === member.user.id && c.guild === member.guild.id).interval,
14 | id: member.user.id,
15 | guild: member.guild.id,
16 | })
17 | client.inter.splice(index)
18 |
19 | }
20 |
21 |
22 |
23 |
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/events/rolemenu/clickButton.js:
--------------------------------------------------------------------------------
1 | const db = require("quick.db")
2 | const {buttonInteraction} = require('../../util/embedButton/start.js');
3 |
4 | module.exports =async (client, button) => {
5 | buttonInteraction(button, client.interaction);
6 |
7 | if (button.message.partial) await button.message.fetch();
8 | if (button.partial) await button.fetch();
9 | if (button.clicker.user.bot) return;
10 | button.clicker.fetch()
11 | let member = button.clicker.member;
12 | let rol = button.guild.roles.cache.get(db.get(`buttonmenuconfig_${button.guild.id}`))
13 | if(rol) {
14 |
15 | if(button.id === "menu-"+rol.id) {
16 | button.reply.defer(true)
17 | if (button.clicker.member.roles.cache.has(rol.id)) {
18 |
19 | button.clicker.member.roles.remove(rol).catch()
20 | } else if(!button.clicker.member.roles.cache.has(rol.id)) {
21 | button.clicker.member.roles.add(rol).catch()
22 |
23 |
24 | }
25 |
26 | }
27 |
28 | }
29 |
30 | }
--------------------------------------------------------------------------------
/events/rolemenu/messageReactionAdd.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, reaction, user) => {
7 | if (reaction.message.partial) await reaction.message.fetch();
8 | if (reaction.partial) await reaction.fetch();
9 | if (user.bot) return;
10 |
11 | const { guild } = reaction.message;
12 | if (!guild) return;
13 | if (!guild.me.hasPermission("MANAGE_ROLES")) return;
14 | const member = guild.members.cache.get(user.id);
15 | if (!member) return;
16 | const data = db.get(`reactions_${guild.id}`)
17 | if (!data) return;
18 | const reaction2 = data.find(
19 | (r) => r.emoji === reaction.emoji.toString() && r.msg === reaction.message.id
20 | );
21 | if (!reaction2) return;
22 | member.roles.add(reaction2.roleId).catch(err => undefined);
23 | }
--------------------------------------------------------------------------------
/events/rolemenu/messageReactionremove.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios');
2 | const db = require("quick.db")
3 | const { MessageEmbed } = require("discord.js");
4 | const ms = require("ms")
5 |
6 | module.exports = async (client, reaction, user) => {
7 | if (reaction.message.partial) await reaction.message.fetch();
8 | if (reaction.partial) await reaction.fetch();
9 | if (user.bot) return;
10 | const { guild } = reaction.message;
11 | if (!guild) return;
12 | if (!guild.me.hasPermission("MANAGE_ROLES")) return;
13 | const member = guild.members.cache.get(user.id);
14 | if (!member) return;
15 | const data = db.get(`reactions_${guild.id}`)
16 | if (!data) return;
17 | const reaction2 = data.find(
18 | (r) => r.emoji === reaction.emoji.toString() && r.msg === reaction.message.id
19 | );
20 | if (!reaction2) return;
21 | member.roles.remove(reaction2.roleId).catch(err => undefined);
22 |
23 | }
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | /// WASSIM GESTION V2.0.5
2 | // variable
3 |
4 | const Discord = require('discord.js')
5 | const client = new Discord.Client({
6 | fetchAllMembers: true,
7 | partials: ['MESSAGE', 'CHANNEL', 'REACTION', 'GUILD_PRESENCES', 'GUILD_MEMBERS', 'GUILD_MESSAGES', 'GUILD_VOICE_STATES'] ,
8 | intents: [
9 | Discord.Intents.FLAGS.DIRECT_MESSAGES,
10 | Discord.Intents.FLAGS.DIRECT_MESSAGE_REACTIONS,
11 | Discord.Intents.FLAGS.DIRECT_MESSAGE_TYPING,
12 | Discord.Intents.FLAGS.GUILDS,
13 | Discord.Intents.FLAGS.GUILD_BANS,
14 | Discord.Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS,
15 | Discord.Intents.FLAGS.GUILD_INTEGRATIONS,
16 | Discord.Intents.FLAGS.GUILD_INVITES,
17 | Discord.Intents.FLAGS.GUILD_MEMBERS,
18 | Discord.Intents.FLAGS.GUILD_MESSAGES,
19 | Discord.Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
20 | Discord.Intents.FLAGS.GUILD_MESSAGE_TYPING,
21 | Discord.Intents.FLAGS.GUILD_PRESENCES,
22 | Discord.Intents.FLAGS.GUILD_VOICE_STATES,
23 | Discord.Intents.FLAGS.GUILD_WEBHOOKS,
24 | ]
25 | })
26 | const {readdirSync} = require("fs")
27 | const db = require('quick.db')
28 | const ms = require("ms")
29 | const { MessageEmbed } = require('discord.js')
30 | const {login } = require("./util/login.js");
31 | login(client)
32 | process.on("unhandledRejection", err => {
33 | if(err.message) return
34 | console.error("Uncaught Promise Error: ", err);
35 | })
36 | const loadCommands = (dir = "./commands/") => {
37 | readdirSync(dir).forEach(dirs => {
38 | const commands = readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
39 |
40 | for (const file of commands) {
41 | const getFileName = require(`${dir}/${dirs}/${file}`);
42 | client.commands.set(getFileName.name, getFileName);
43 | console.log(`> Commande charger ${getFileName.name} [${dirs}]`)
44 | };
45 | });
46 | };
47 | const loadEvents = (dir = "./events/") => {
48 | readdirSync(dir).forEach(dirs => {
49 | const events = readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
50 |
51 | for (const event of events) {
52 | const evt = require(`${dir}/${dirs}/${event}`);
53 | const evtName = event.split(".")[0];
54 | client.on(evtName, evt.bind(null, client));
55 | console.log(`> Event charger ${evtName}`)
56 | };
57 | });
58 | };
59 |
60 | loadEvents();
61 | loadCommands();
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gestion",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "scripts": {
6 | "test": "echo \"Error: no test specified\" && exit 1"
7 | },
8 | "author": "Wass",
9 | "license": "ISC",
10 | "dependencies": {
11 | "@discordjs/opus": "^0.7.0",
12 | "axios": "^0.24.0",
13 | "bindings": "^1.5.0",
14 | "canvacord": "^5.2.3",
15 | "cross-fetch": "^3.1.4",
16 | "discord-backup": "^2.5.0",
17 | "discord-buttons": "^4.0.0",
18 | "discord-logs": "^2.0.1",
19 | "discord.js": "^12.5.3",
20 | "discord.js.old": "^11.6.5",
21 | "ffmpeg": "0.0.4",
22 | "ffmpeg-static": "^4.4.0",
23 | "fs": "0.0.1-security",
24 | "images-scraper": "^6.4.0",
25 | "mathjs": "^10.0.1",
26 | "node-opus": "^0.3.3",
27 | "opusscript": "0.0.8",
28 | "path": "^0.12.7",
29 | "quick.db": "^7.1.3",
30 | "randomstring": "^1.2.1",
31 | "request": "^2.88.2",
32 | "superagent": "^6.1.0"
33 | },
34 | "repository": {
35 | "type": "git",
36 | "url": " "
37 | },
38 | "description": ""
39 | }
40 |
--------------------------------------------------------------------------------
/util/embedButton/start.js:
--------------------------------------------------------------------------------
1 | const { MessageActionRow, MessageButton } = require('discord-buttons');
2 | const db = require("quick.db");
3 | const buttonInteraction = async function (button, interaction) {
4 | if (interaction.interactor !== button.clicker.user || button.message.id !== interaction.message.id) return ;
5 | if (button.id == 'next-page') {
6 | (interaction.currentPage + 1 == interaction.embeds.length ? interaction.currentPage = 0 : interaction.currentPage += 1);
7 | interaction.message.edit({ embed: interaction.embeds[interaction.currentPage], components: [interaction.components] });
8 | button.reply.defer(true);
9 | } else if (button.id == 'back-page') {
10 | (interaction.currentPage - 1 < 0 ? interaction.currentPage = interaction.embeds.length - 1 : interaction.currentPage -= 1);
11 | interaction.message.edit({ embed: interaction.embeds[interaction.currentPage], components: [interaction.components] });
12 | button.reply.defer(true);
13 | }
14 | }
15 |
16 |
17 |
18 | const ButtonPages = async function (interaction, message, embeds, duration, buttonStyle, rightEmoji, leftEmoji) {
19 |
20 | if (!['red', 'green', 'blurple', "gray"].includes(buttonStyle)) throw new TypeError(`Button style incorect`);
21 | if (!rightEmoji) throw new TypeError(`Emoji pour le 1er boutous n'est pas fournis`);
22 | if (!leftEmoji) throw new TypeError(`Emoji pour le 2eme boutous n'est pas fournis`);
23 |
24 | const button1 = new MessageButton()
25 | .setLabel(rightEmoji)
26 | .setStyle(buttonStyle)
27 | .setID('next-page');
28 |
29 | const button2 = new MessageButton()
30 | .setLabel(leftEmoji)
31 | .setStyle(buttonStyle)
32 | .setID('back-page');
33 |
34 | const interactiveButtons = new MessageActionRow()
35 | .addComponent(button2)
36 | .addComponent(button1);
37 |
38 | await message.channel.send({ components: [interactiveButtons], embed: embeds[0] }).then((m) => {
39 | interaction.message = m;
40 | interaction.embeds = embeds;
41 | interaction.currentPage = 0;
42 | interaction.interactor = message.author;
43 | interaction.components = interactiveButtons;
44 | setTimeout(() => {
45 | m.edit("", { components: [], embed: embeds[interaction.currentPage] })
46 | }, 60000 * 5)
47 |
48 | })
49 |
50 |
51 | }
52 |
53 |
54 |
55 | module.exports = {
56 | ButtonPages,
57 | buttonInteraction
58 | }
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/util/gestion/tempo.js:
--------------------------------------------------------------------------------
1 | const db = require("quick.db");
2 | const tempomap = new Map();
3 | const tempo = function (client , message) {
4 |
5 |
6 | new Promise(resolve => {
7 | setInterval(() => {
8 | resolve(2);
9 | try{
10 | client.guilds.cache.forEach(guild => {
11 |
12 |
13 | const channels = guild.channels.cache.map(ch => ch.id)
14 | for (let i = 0; i < channels.length; i++) {
15 | const key = `tempvoicechannel_${guild.id}_${channels[i]}`;
16 | if (tempomap.get(key)) {
17 | var vc = guild.channels.cache.get(tempomap.get(key));
18 | if (vc.members.size < 1) {
19 | tempomap.delete(key);
20 | return vc.delete();
21 | } else {}
22 | }
23 | } });
24 | }catch{}
25 | }, 10000)
26 | })
27 |
28 |
29 |
30 | client.on("voiceStateUpdate", (oldState, newState) => {
31 | let salon = db.get(`jc_${oldState.guild.id}`)
32 | if(salon == null ) return;
33 |
34 |
35 | let oldparentname = "unknown"
36 | let oldchannelname = "unknown"
37 | let oldchanelid = "unknown"
38 | if (oldState && oldState.channel && oldState.channel.parent && oldState.channel.parent.name) oldparentname = oldState.channel.parent.name
39 | if (oldState && oldState.channel && oldState.channel.name) oldchannelname = oldState.channel.name
40 | if (oldState && oldState.channelID) oldchanelid = oldState.channelID
41 | let newparentname = "unknown"
42 | let newchannelname = "unknown"
43 | let newchanelid = "unknown"
44 | if (newState && newState.channel && newState.channel.parent && newState.channel.parent.name) newparentname = newState.channel.parent.name
45 | if (newState && newState.channel && newState.channel.name) newchannelname = newState.channel.name
46 | if (newState && newState.channelID) newchanelid = newState.channelID
47 | if (oldState.channelID) {
48 | if (typeof oldState.channel.parent !== "undefined") oldChannelName = `${oldparentname}\n\t**${oldchannelname}**\n*${oldchanelid}*`
49 | else oldChannelName = `-\n\t**${oldparentname}**\n*${oldchanelid}*`
50 | }
51 | if (newState.channelID) {
52 | if (typeof newState.channel.parent !== "undefined") newChannelName = `${newparentname}\n\t**${newchannelname}**\n*${newchanelid}*`
53 | else newChannelName = `-\n\t**${newchannelname}**\n*${newchanelid}*`
54 | }
55 | if (!oldState.channelID && newState.channelID) {
56 | if(newState.channelID !== salon) return;
57 | tempochannel(newState);
58 | }
59 | if (oldState.channelID && !newState.channelID) {
60 | if (tempomap.get(`tempvoicechannel_${oldState.guild.id}_${oldState.channelID}`)) {
61 | var vc = oldState.guild.channels.cache.get(tempomap.get(`tempvoicechannel_${oldState.guild.id}_${oldState.channelID}`));
62 | if (vc.members.size < 1) {
63 | tempomap.delete(`tempvoicechannel_${oldState.guild.id}_${oldState.channelID}`);
64 | return vc.delete();
65 | }
66 | else {
67 | }
68 | }
69 | }
70 | if (oldState.channelID && newState.channelID) {
71 |
72 | if (oldState.channelID !== newState.channelID) {
73 | if(newState.channelID===salon)
74 | tempochannel(oldState);
75 | if (tempomap.get(`tempvoicechannel_${oldState.guild.id}_${oldState.channelID}`)) {
76 | var vc = oldState.guild.channels.cache.get(tempomap.get(`tempvoicechannel_${oldState.guild.id}_${oldState.channelID}`));
77 | if (vc.members.size < 1) {
78 | tempomap.delete(`tempvoicechannel_${oldState.guild.id}_${oldState.channelID}`);
79 | return vc.delete();
80 | }
81 | else {
82 | }}
83 | }
84 | }
85 |
86 | })
87 | async function tempochannel(user) {
88 | let emoji = db.get(`emote_${user.guild.id}`)
89 | if(emoji == null ) emoji = "Salon de "
90 |
91 | let categoy = db.get(`catggg_${user.guild.id}`)
92 | if(categoy == null ) return;
93 |
94 |
95 | //user.member.user.send("")
96 | await user.guild.channels.create(`${emoji}${user.member.user.username}`, {
97 | type: 'voice',
98 | parent: categoy,
99 | }).then(async vc => {
100 | user.setChannel(vc);
101 |
102 | tempomap.set(`tempvoicechannel_${vc.guild.id}_${vc.id}`, vc.id);
103 | await vc.overwritePermissions([
104 | {
105 | id: user.id,
106 | allow: ['MANAGE_CHANNELS'],
107 | },
108 | {
109 | id: user.guild.id,
110 | allow: ['VIEW_CHANNEL'],
111 | },
112 | ]);
113 | })
114 | }
115 | }
116 |
117 |
118 |
119 | module.exports = tempo
120 |
121 |
122 |
--------------------------------------------------------------------------------
/util/login.js:
--------------------------------------------------------------------------------
1 | const { readdirSync} = require('fs');
2 |
3 |
4 |
5 | const login = (client) => {
6 | const Discord = require("discord.js")
7 | const logs = require('discord-logs');
8 | logs(client)
9 | const disbut = require('discord-buttons');
10 | disbut(client);
11 | const tempo = require("./gestion/tempo.js");
12 | tempo(client)
13 |
14 | client.config = require("../config.json")
15 | client.cooldown = new Array();
16 | client.interaction = {}
17 | client.guildInvites = new Map();
18 | client.queue = new Map();
19 | client.commands = new Discord.Collection()
20 | client.aliases = new Discord.Collection()
21 | client.snipes = new Map()
22 | client.inter = new Array()
23 |
24 |
25 | client.login(client.config.token)
26 |
27 | }
28 |
29 |
30 |
31 | module.exports = {
32 |
33 | login
34 | }
--------------------------------------------------------------------------------