blob: 300aba096910e2ef27db1bed56f533f3111d7de4 [file] [log] [blame]
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)