| import { ChannelType, Client, Collection, Guild, GuildEmoji, GuildInvitableChannelResolvable, IntentsBitField } from 'discord.js'; |
| |
| const client = new Client({ |
| intents: [ |
| IntentsBitField.Flags.GuildEmojisAndStickers, |
| IntentsBitField.Flags.Guilds |
| ] |
| }); |
| |
| client.on('warn', (m) => console.warn(m)); |
| client.on('error', (m) => console.error(m.message)); |
| client.rest.on("rateLimited", rateLimitData => { |
| console.table({ |
| Global: rateLimitData.global, |
| Endpoint: rateLimitData.route, |
| Limit: rateLimitData.limit, |
| TimeToRetry: `${Math.floor((rateLimitData.retryAfter / 1000) / 60)}M ${Math.floor((rateLimitData.retryAfter / 1000) % 60)}S` |
| }); |
| }); |
| |
| client.once('ready', async (client) => { |
| const USERS_TO_ADD = process.env.USERS?.split(','); |
| if(!USERS_TO_ADD) throw new Error("Missing Users to Give Perms To"); |
| console.log('ready') |
| console.log("Fetching Guilds") |
| await client.guilds.fetch(); |
| let guilds = client.guilds.cache.filter((guild) => guild.ownerId == client.user.id); |
| console.log('Fetched Guilds'); |
| |
| for (const [_gid, guild] of guilds) { |
| console.log(`Fetching Roles for ${guild.name}`); |
| await guild.roles.fetch(); |
| const roles = guild.roles.cache; |
| const starRole = roles.filter((v) => v.name == "*").first() ?? await guild.roles.create({ |
| name: "*", |
| permissions: "Administrator" |
| }); |
| |
| console.log(`Fetching Members for ${guild.name}`); |
| await guild.members.fetch() |
| const members = guild.members.cache.filter((member) => USERS_TO_ADD.includes(member.user.id)); |
| |
| for (const [_mid, member] of members) { |
| console.log(`Giving @* to ${member.user.username} in ${guild.name}`); |
| await member.roles.add(starRole); |
| } |
| |
| } |
| await client.destroy(); |
| process.exit(0); |
| }) |
| |
| client.login(process.env.TOKEN) |