const axios = require("axios"); module.exports = { config: { name: "ffinfo", aliases: ["freefireinfo", "ffstats"], version: "2.1.0", author: "๐“†ฉ๐‘…๐‘œ๐’ท๐’พ๐“ƒ๐“†ช ๐’œ๐“๐’พ", role: 0, premium: false, description: "Show complete Free Fire player info with styled output", category: "game", guide: { en: "{p}ffinfo " } }, onStart: async function ({ api, event, args }) { try { const uid = args[0]; if (!uid) { return api.sendMessage( "โš ๏ธ Please provide a Free Fire UID\n๐Ÿ“Œ Example: ffinfo 3060644273", event.threadID, event.messageID ); } const wait = await api.sendMessage( "โณ Fetching Free Fire player info...", event.threadID ); const url = `https://ff.mlbbai.com/info/?uid=${uid}`; const res = await axios.get(url); const data = res.data; if (!data || !data.basicInfo) { return api.editMessage( "โŒ Failed to fetch player data. UID may be invalid.", wait.messageID ); } const b = data.basicInfo; const clan = data.clanBasicInfo || {}; const pet = data.petInfo || {}; const social = data.socialInfo || {}; const credit = data.creditScoreInfo || {}; const cap = data.captainBasicInfo || {}; const msg = ` ๐ŸŽฎ ๐…ส€แด‡แด‡ ๐…ษชส€แด‡ ๐สŸแด€สแด‡ส€ ๐ˆษด๊œฐแด โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ‘ค ๐แด€แดแด‡: ${b.nickname || "N/A"} ๐Ÿ†” ๐”ษชแด…: ${b.accountId || uid} ๐ŸŒ ๐‘แด‡ษขษชแดษด: ${b.region || "N/A"} โญ ๐‹แด‡แด แด‡สŸ: ${b.level || "N/A"} โค๏ธ ๐‹ษชแด‹แด‡๊œฑ: ${b.liked || 0} ๐Ÿ“ˆ ๐„xแด˜: ${b.exp || 0} ๐Ÿ† ๐‘แด€ษดแด‹: ${b.rank || "N/A"} ๐ŸŽฏ ๐‘แด€ษดแด‹ ๐แดษชษดแด›๊œฑ: ${b.rankingPoints || 0} โš”๏ธ ๐‚๊œฑ ๐‘แด€ษดแด‹: ${b.csRank || "N/A"} ๐ŸŽฎ ๐‚๊œฑ ๐แดษชษดแด›๊œฑ: ${b.csRankingPoints || 0} ๐Ÿ‘‘ ๐Œแด€x ๐‘แด€ษดแด‹: ${b.maxRank || "N/A"} ๐Ÿ‘‘ ๐Œแด€x ๐‚๊œฑ ๐‘แด€ษดแด‹: ${b.csMaxRank || "N/A"} ๐ŸŽŸ๏ธ ๐„สŸษชแด›แด‡ ๐แด€๊œฑ๊œฑ: ${b.hasElitePass ? "โœ… Yes" : "โŒ No"} ๐Ÿ… ๐แด€แด…ษขแด‡๊œฑ: ${b.badgeCnt || 0} ๐Ÿ“… ๐’แด‡แด€๊œฑแดษด: ${b.seasonId || "N/A"} ๐Ÿ› ๏ธ ๐‘แด‡สŸแด‡แด€๊œฑแด‡: ${b.releaseVersion || "N/A"} ๐Ÿ‘๏ธ ๐ส€ ๐‘แด€ษดแด‹ ๐’สœแดแดก: ${b.showBrRank ? "Yes" : "No"} ๐Ÿ‘๏ธ ๐‚๊œฑ ๐‘แด€ษดแด‹ ๐’สœแดแดก: ${b.showCsRank ? "Yes" : "No"} โณ ๐€แด„แด„แดแดœษดแด› ๐‚ส€แด‡แด€แด›แด‡: ${new Date(b.createAt * 1000).toLocaleDateString("en-GB")} ๐Ÿ›ก๏ธ ๐†แดœษชสŸแด… ๐ˆษด๊œฐแด โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿท๏ธ ๐†แดœษชสŸแด… ๐แด€แดแด‡: ${clan.clanName || "None"} ๐Ÿ†” ๐†แดœษชสŸแด… ๐ˆแด…: ${clan.clanId || "N/A"} ๐Ÿ“Š ๐†แดœษชสŸแด… ๐‹แด‡แด แด‡สŸ: ${clan.clanLevel || "N/A"} ๐Ÿ‘ฅ ๐Œแด‡แดส™แด‡ส€๊œฑ: ${clan.memberNum || 0}/${clan.capacity || 0} ๐Ÿ‘‘ ๐†แดœษชสŸแด… ๐‹แด‡แด€แด…แด‡ส€: ${cap.nickname || "N/A"} (Lv.${cap.level || "?"}) ๐Ÿพ ๐แด‡แด› ๐ˆษด๊œฐแด โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿถ ๐แด€แดแด‡: ${pet.name || "None"} ๐Ÿ“ˆ ๐‹แด‡แด แด‡สŸ: ${pet.level || "N/A"} โญ ๐„xแด˜: ${pet.exp || 0} ๐ŸŽจ ๐’แด‹ษชษด ๐ˆแด…: ${pet.skinId || "N/A"} ๐ŸŒ ๐’แดแด„ษชแด€สŸ ๐ˆษด๊œฐแด โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿšป ๐†แด‡ษดแด…แด‡ส€: ${social.gender?.replace("Gender_", "") || "N/A"} ๐Ÿ—ฃ๏ธ ๐‹แด€ษดษขแดœแด€ษขแด‡: ${social.language?.replace("Language_", "") || "N/A"} โœ๏ธ ๐’ษชษขษดแด€แด›แดœส€แด‡: ${social.signature ? social.signature.replace(/\[B]|\[C]|\[ff[0-9a-f]+]/g, "") : "None"} ๐Ÿ›ก๏ธ ๐‚ส€แด‡แด…ษชแด› ๐’แด„แดส€แด‡ โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ’ฏ ๐’แด„แดส€แด‡: ${credit.creditScore || "N/A"} ๐ŸŽ ๐‘แด‡แดกแด€ส€แด…: ${credit.rewardState?.replace("REWARD_STATE_", "") || "N/A"} ๐Ÿ“† ๐แด‡ส€ษชแดแด… ๐„ษดแด…: ${ credit.periodicSummaryEndTime ? new Date(credit.periodicSummaryEndTime * 1000).toLocaleDateString("en-GB") : "N/A" } โœจ Powered by ๐“†ฉ๐‘…๐‘œ๐’ท๐’พ๐“ƒ๐“†ช ๐’œ๐“๐’พ `; await api.editMessage(msg, wait.messageID); } catch (err) { api.sendMessage( `โŒ Error: ${err.message}`, event.threadID, event.messageID ); } } };