const { Bot } = require("../models"); const crypto = require("crypto"); const { ReactionUserManager } = require("discord.js"); module.exports = { name: "GeneralUtils", getBotProperty: async function(property) { let bot = await Bot.findOne(); return property ? bot[property] : bot; }, setBotProperty: async function(property, value) { let bot = await Bot.findOne(); bot[property] = value; await bot.save(); }, generateLogID: async function() { return crypto.randomBytes(4).toString("hex"); }, formatNumber: function(num, precision = 1) { const map = [ { suffix: 'T', threshold: 1e12 }, { suffix: 'B', threshold: 1e9 }, { suffix: 'M', threshold: 1e6 }, { suffix: 'K', threshold: 1e3 }, { suffix: '', threshold: 1 }, ]; const found = map.find((x) => Math.abs(num) >= x.threshold); if (found) { const formatted = (Math.floor((num / found.threshold)*10) / 10) + found.suffix; return formatted; } return num; } }