From d931b8f95e041b05af0b55afa752f30e61924ac5 Mon Sep 17 00:00:00 2001 From: HewkawAr Date: Mon, 9 Sep 2024 21:04:03 +0700 Subject: [PATCH] Modernize and colorful console --- index.js | 165 ++++++++++++++++++++++++---------------------- utils/commands.js | 14 +++- 2 files changed, 98 insertions(+), 81 deletions(-) diff --git a/index.js b/index.js index 874c35b..f3a3a2d 100644 --- a/index.js +++ b/index.js @@ -9,102 +9,111 @@ const package = require("./package.json"); require("dotenv").config(); -// Register Bot Commands -handleCommands(); - -// Sharding Manager -const manager = new ShardingManager("bot.js", { - token: process.env.TOKEN, - totalShards: parseInt(process.env.SHARDS) || process.env.SHARDS || "auto" -}); - -manager.on("shardCreate", shard => { - shard.on("death", () => { - console.log(`[${shard.id}] is Death`); - console.log(`[${shard.id}] Reswawning...`); +(async () => { + // Console Log + console.log("\n"); + console.log("šŸ¤– Bot is starting..."); + console.log(`šŸ“¦ HStudioSource@${package.version}`); + console.log(`šŸ¤– Bot is running on version ${package.version}`); + console.log("\n"); + + // Register Bot Commands + await handleCommands(); + + // Sharding Manager + const manager = new ShardingManager("bot.js", { + token: process.env.TOKEN, + totalShards: parseInt(process.env.SHARDS) || process.env.SHARDS || "auto" }); - console.log(`Launched shard ${shard.id}`); -}); -manager.spawn(); + manager.on("shardCreate", shard => { + shard.on("death", () => { + console.log(`[${shard.id}] is Death`); + console.log(`[${shard.id}] Reswawning...`); + }); + console.log(`šŸ”Ž Launched shard ${shard.id}`); + }); -// API Manager -const port = process.env.PORT || 8233; + manager.spawn(); -const api = express(); -api.use(cors()); -api.use(express.json()); + // API Manager + const port = process.env.PORT || 8233; -const rest = new REST({ - version: "10" -}).setToken(process.env.TOKEN); + const api = express(); + api.use(cors()); + api.use(express.json()); -api.get("/invite", async (req, res) => { - return res.redirect(`https://discord.com/oauth2/authorize?client_id=${process.env.CLIENT_ID}`); -}); + const rest = new REST({ + version: "10" + }).setToken(process.env.TOKEN); -api.get("/status", async (req, res) => { - const shards = manager.shards.map((shard) => { return { id: shard.id, online: shard.ready }; }); + api.get("/invite", async (req, res) => { + return res.redirect(`https://discord.com/oauth2/authorize?client_id=${process.env.CLIENT_ID}`); + }); - const status = { - version: package.version, - totalShards: manager.totalShards, - shards: shards - }; + api.get("/status", async (req, res) => { + const shards = manager.shards.map((shard) => { return { id: shard.id, online: shard.ready }; }); - return res.status(200).json(status); -}); + const status = { + version: package.version, + totalShards: manager.totalShards, + shards: shards + }; -api.get("/status/all", async (req, res) => { - const shards = manager.shards.map((shard) => { return { id: shard.id, online: shard.ready }; }); + return res.status(200).json(status); + }); - const guilds = await rest.get(Routes.userGuilds()); - const user = await rest.get(Routes.user()); + api.get("/status/all", async (req, res) => { + const shards = manager.shards.map((shard) => { return { id: shard.id, online: shard.ready }; }); - const guildsList = guilds.map((val) => val.id); + const guilds = await rest.get(Routes.userGuilds()); + const user = await rest.get(Routes.user()); - const status = { - name: user.username, - version: package.version, - totalShards: manager.totalShards, - shards: shards, - guilds: { - total: guildsList.length, - list: guildsList - } - }; + const guildsList = guilds.map((val) => val.id); - return res.status(200).json(status); -}); + const status = { + name: user.username, + version: package.version, + totalShards: manager.totalShards, + shards: shards, + guilds: { + total: guildsList.length, + list: guildsList + } + }; -api.get("/guilds", async (req, res) => { - let guildsList = []; - let after = null; + return res.status(200).json(status); + }); - try { - while (true) { - const queryParams = after ? { after, limit: 200 } : { limit: 200 }; - const guilds = await rest.get(Routes.userGuilds(), { query: queryParams }); + api.get("/guilds", async (req, res) => { + let guildsList = []; + let after = null; - if (guilds.length === 0) break; + try { + while (true) { + const queryParams = after ? { after, limit: 200 } : { limit: 200 }; + const guilds = await rest.get(Routes.userGuilds(), { query: queryParams }); - guildsList.push(...guilds.map((val) => val.id)); + if (guilds.length === 0) break; - if (guilds.length < 200) break; + guildsList.push(...guilds.map((val) => val.id)); - after = guilds[guilds.length - 1].id; - }; + if (guilds.length < 200) break; - return res.status(200).json({ - total: guildsList.length, - list: guildsList - }); - } catch (error) { - console.error(error); - return res.status(500).json({ error: "An error occurred while fetching guilds" }); - } -}); - -api.listen(port, () => { - console.log(`Status page server is running at http://localhost:${port}/status`); -}); \ No newline at end of file + after = guilds[guilds.length - 1].id; + }; + + return res.status(200).json({ + total: guildsList.length, + list: guildsList + }); + } catch (error) { + console.error(error); + return res.status(500).json({ error: "An error occurred while fetching guilds" }); + } + }); + + api.listen(port, () => { + console.log(`\n\nšŸš€ Status page server is running at http://localhost:${port}/status\n\n`); + }); +})(); \ No newline at end of file diff --git a/utils/commands.js b/utils/commands.js index e402e90..298f009 100644 --- a/utils/commands.js +++ b/utils/commands.js @@ -28,16 +28,24 @@ module.exports = async function () { version: "10" }).setToken(process.env.TOKEN); - (async () => { + await (async () => { try { - console.log("Started refreshing application (/) commands."); + console.log("šŸ“ƒ Commands Process"); + console.log("šŸ”’ Started refreshing application (/) commands."); + const data = await rest.put( Routes.applicationCommands(process.env.CLIENT_ID), { body: commandArray }); - console.log(`Successfully reloaded ${data.length} application (/) commands.`); + console.log(`šŸ”“ Successfully reloaded ${data.length} application (/) commands.`); + + console.log("\n"); + + const commands = data.map(command => `🟢 /${command.name} Operational`); + + console.log(commands.join("\n")); } catch (error) { console.error(error); }