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