const { REST } = require('@discordjs/rest'); const { Routes } = require('discord-api-types/v9'); const { Client, Intents} = require('discord.js'); const CLIENT = new Client({ intents: [Intents.FLAGS.GUILDS] }); const https = require('https'); const GUILD = '42ctf'; const TOKEN = "OTQzNTA2NTgxMjkzNzc2OTQ3.Yg0C-g.XOjFinUc-Gt1gwtrSILPb0Mlspo"; function rank(token = "test"){ 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) => { console.log(key, value) let guild = CLIENT.guilds.fetch('943459216901955604'); let user = (await guild).members.fetch(value); let rank = parseInt(key); const roles = new Map([ ['top1', (await guild).roles.cache.get("943545814758854686")], ['top10', (await guild).roles.cache.get("943545892030517278")], ['top50', (await guild).roles.cache.get("943545946309029958")] ]); console.log((await user).user.tag); 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.on('interactionCreate', async interaction => { if (!interaction.isCommand()) return; }); CLIENT.login(TOKEN);