const { Client, Intents, Util } = require('discord.js'); const CLIENT = new Client({ intents: [Intents.FLAGS.GUILDS] }); const https = require('https'); const D_TOKEN = process.env.DISCORD_TOKEN; const O_TOKEN = process.env.AUTH_TOKEN; async function get_guildID() { let Guilds = CLIENT.guilds; let v = (await Guilds.fetch()).keyAt(0); return v; } function rank(token = O_TOKEN){ var url = `https://preprod.42ctf.org/api/bot/discord?token=${token}`; https.get(url,(res) => { let body = ""; res.on("data", (chunk) => { body += chunk; }); res.on("end", () => { try { let json = JSON.parse(body); let v = new Map(Object.entries(json)) v.forEach(async (key, value) => { let guild = CLIENT.guilds.resolve(await get_guildID()); let user = guild.members.fetch(value); let rank = parseInt(key); const roles = new Map([ ['top1', guild.roles.cache.get("798638767359524875")], ['top10', guild.roles.cache.get("801787467064672286")], ['top50', guild.roles.cache.get("803729539145924649")] ]); if(rank == 1) { await (await user).roles.add(roles.get('top1')); await (await user).roles.remove(roles.get('top10')); await (await user).roles.remove(roles.get('top50')); } else if(rank <= 10) { await (await user).roles.remove(roles.get('top1')); await (await user).roles.add(roles.get('top10')); await (await user).roles.remove(roles.get('top50')); } else if(rank <= 50) { await (await user).roles.remove(roles.get('top1')); await (await user).roles.remove(roles.get('top10')); await (await user).roles.add(roles.get('top50')); } }) console.log("done"); } catch (error) { console.error(error.message); }; }); }).on("error", (error) => { console.log(error.message); }); } CLIENT.on('ready', () => { console.log(`Logged in as ${CLIENT.user.tag}!`); setInterval(rank, 900000); console.log('started rank() interval !'); }); CLIENT.login(D_TOKEN);