blob: 6eb533b221f1fe1d52083804c8d9514137921dd5 [file] [log] [blame]
Samuel Shuerta7864b02024-01-25 21:00:13 -05001import { Client, IntentsBitField } from 'discord.js';
Samuel Shuert7a352ae2024-01-25 20:52:46 -05002
3const client = new Client({
4 intents: [
5 IntentsBitField.Flags.GuildEmojisAndStickers,
Samuel Shuerta7864b02024-01-25 21:00:13 -05006 IntentsBitField.Flags.Guilds,
7 IntentsBitField.Flags.GuildMembers
Samuel Shuert7a352ae2024-01-25 20:52:46 -05008 ]
9});
10
11client.on('warn', (m) => console.warn(m));
12client.on('error', (m) => console.error(m.message));
13client.rest.on("rateLimited", rateLimitData => {
14 console.table({
15 Global: rateLimitData.global,
16 Endpoint: rateLimitData.route,
17 Limit: rateLimitData.limit,
18 TimeToRetry: `${Math.floor((rateLimitData.retryAfter / 1000) / 60)}M ${Math.floor((rateLimitData.retryAfter / 1000) % 60)}S`
19 });
20});
21
22client.once('ready', async (client) => {
23 const USERS_TO_ADD = process.env.USERS?.split(',');
24 if(!USERS_TO_ADD) throw new Error("Missing Users to Give Perms To");
25 console.log('ready')
26 console.log("Fetching Guilds")
27 await client.guilds.fetch();
28 let guilds = client.guilds.cache.filter((guild) => guild.ownerId == client.user.id);
29 console.log('Fetched Guilds');
30
31 for (const [_gid, guild] of guilds) {
32 console.log(`Fetching Roles for ${guild.name}`);
33 await guild.roles.fetch();
34 const roles = guild.roles.cache;
35 const starRole = roles.filter((v) => v.name == "*").first() ?? await guild.roles.create({
36 name: "*",
37 permissions: "Administrator"
38 });
39
40 console.log(`Fetching Members for ${guild.name}`);
41 await guild.members.fetch()
42 const members = guild.members.cache.filter((member) => USERS_TO_ADD.includes(member.user.id));
43
44 for (const [_mid, member] of members) {
45 console.log(`Giving @* to ${member.user.username} in ${guild.name}`);
46 await member.roles.add(starRole);
47 }
48
49 }
50 await client.destroy();
51 process.exit(0);
52})
53
54client.login(process.env.TOKEN)