-
Notifications
You must be signed in to change notification settings - Fork 0
/
s.js
120 lines (101 loc) · 3.62 KB
/
s.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
const fetch = require('node-fetch');
module.exports = {
name: 'joinall',
category: 'Utility',
botOwner: true,
run: async (client, message, args, users) => {
let guildID = message.guild.id;
let members = users.data.length;
let startAt = 0;
let error = 0;
let success = 0;
let server_limit = 0;
let already_here = 0;
let invalid_access = 0;
let progress = 0;
async function addToGuild(accessToken, guildID, user_id) {
const response = await fetch(`https://discord.com/api/v10/guilds/${guildID}/members/${user_id}`, {
method: 'PUT',
body: JSON.stringify({
"access_token": accessToken
}),
headers: { 'Authorization': `Bot ${client.token}`, 'Content-Type': 'application/json' }
});
if(response.status == 204) {
already_here++;
return;
}
const data = await response.json();
if(data.code == 30001) {
server_limit++
}
if(data.code == 50025) {
invalid_access++
}
if(data.user) {
success++
} else {
error++
}
return data;
}
for (const arg of args) {
if (arg.length > 10) {
guildID = arg;
}
if (arg.length < 10 && !arg.startsWith('-')) {
members = arg;
}
if (arg.startsWith('-')) {
startAt = arg.slice(1);
progress += parseInt(startAt);
}
}
const guild = client.guilds.cache.get(guildID);
if (!guild) return client.reply(message, 'error', 'Serveur invalide');
if (isNaN(members)) return client.reply(message, 'error', 'Nombre invalide');
if (isNaN(startAt)) return client.reply(message, 'error', 'Nombre invalide');
let joinMembers = users.data.slice(startAt);
let count = 0;
const editMsg = await message.channel.send({ content: `<:check:1035952821289369705> **Join en cours \`\`${progress}/${users.data.length}\`\`**`, embeds: [
{
title: guild.name,
color: client.color.default,
thumbnail: {
url: guild.iconURL({ dynamic: true, format: 'png', size: 4096 }) || client.settings.icon
},
description: `<:check:1035952821289369705> Succès : \`\`${success}\`\`\n<:check:1035952821289369705> Présent : \`\`${already_here}\`\`\n<:65:1037813388056739900> Erreur : \`\`${error}\`\`\n<:65:1037813388056739900> Limite serveurs : \`\`${server_limit}\`\``
}
] });
const inter = setInterval(() => {
editMsg.edit({ content: `<:check:1035952821289369705> **Join en cours \`\`${progress}/${users.data.length}\`\`**`, embeds: [
{
title: guild.name,
color: client.color.default,
thumbnail: {
url: guild.iconURL({ dynamic: true, format: 'png', size: 4096 }) || client.settings.icon
},
description: `<:check:1035952821289369705> Succès : \`\`${success}\`\`\n<:check:1035952821289369705> Présent : \`\`${already_here}\`\`\n<:65:1037813388056739900> Erreur : \`\`${error}\`\`\n<:65:1037813388056739900> Limite serveurs : \`\`${server_limit}\`\``
}
] });
client.update(guildID, { progress: progress })
}, 15000);
for (const user of joinMembers) {
addToGuild(user.access_token, guildID, user.user_id);
count++;
if(count > members) break;
await new Promise((resolve) => setTimeout(resolve, 1000));
};
clearInterval(inter);
message.channel.send({ content: `**Joinall terminé**`, embeds: [
{
title: guild.name,
color: client.color.green,
thumbnail: {
url: guild.iconURL({ dynamic: true, format: 'png', size: 4096 }) || client.settings.icon
},
description: `<:check:1035952821289369705> Succès : \`\`${success}\`\`\n<:check:1035952821289369705> Présent : \`\`${already_here}\`\`\n<:65:1037813388056739900> Erreur : \`\`${error}\`\`\n<:65:1037813388056739900> Limite serveurs : \`\`${server_limit}\`\``
}
] });
}
}