// code from goatstore // api: https://store.agi.bd module.exports = { config: { name: "powerlevel", aliases: ["pl", "scouter"], version: "1.0", author: "Zihad", countDown: 5, role: 0, shortDescription: { en: "Scouter power level check" }, longDescription: { en: "Dragon Ball style power level of you, a mentioned user, or a replied user" }, category: "fun", guide: { en: "{pn} | {pn} @tag | reply to a message with {pn}" } }, onStart: async function ({ event, message, usersData }) { // target: reply > mention > sender let uid = event.senderID; if (event.type === "message_reply") uid = event.messageReply.senderID; else if (event.mentions && Object.keys(event.mentions).length > 0) uid = Object.keys(event.mentions)[0]; const name = (await usersData.getName(uid)) || "Unknown"; // same user + same day => same level (changes daily) const today = new Date().toISOString().slice(0, 10); const seed = hash(`${uid}-${today}`); const rand = mulberry32(seed); // skewed so high levels are rare const level = Math.floor(Math.pow(rand(), 3) * 9000000) + 500; const tiers = [ [9000, "Super Saiyan God šŸ”„"], [8000, "Super Saiyan šŸ’„"], [5000, "Elite Warrior āš”ļø"], [1500, "Fighter šŸ„‹"], [0, "Earthling šŸŒ"] ]; const tierIndex = level > 5000000 ? 0 : level > 1000000 ? 1 : level > 100000 ? 2 : level > 10000 ? 3 : 4; const tier = tiers[tierIndex][1]; const percent = Math.min(100, Math.round((level / 9000000) * 100)); const filled = Math.round(percent / 10); const bar = "ā–ˆ".repeat(filled) + "ā–‘".repeat(10 - filled); const over9000 = level > 9000 ? "\nāš ļø IT'S OVER 9000!!!" : ""; return message.reply( "ā•­ā”€ā”€ā”€ć€Œ SCOUTER 怍\n" + `│ šŸ‘¤ ${name}\n` + `│ ⚔ Power : ${level.toLocaleString("en-US")}\n` + `│ šŸ… Rank : ${tier}\n` + `│ [${bar}] ${percent}%\n` + "╰────────────" + over9000 ); } }; function hash(str) { let h = 2166136261; for (let i = 0; i < str.length; i++) { h ^= str.charCodeAt(i); h = Math.imul(h, 16777619); } return h >>> 0; } function mulberry32(a) { return function () { a |= 0; a = (a + 0x6d2b79f5) | 0; let t = Math.imul(a ^ (a >>> 15), 1 | a); t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; }