← back to browse
goat command

ffinfo

Show complete Free Fire player info with styled output

0
views
0
likes
0
installs

Aliases: freefireinfo, ffstats

raw source
const axios = require("axios");

module.exports = {
  config: {
    name: "ffinfo",
    aliases: ["freefireinfo", "ffstats"],
    version: "2.1.0",
    author: "Dipto ✚ Edit by Mᴏʜᴀᴍᴍᴀᴅ Aᴋᴀsʜ",
    role: 0,
    premium: false,
    description: "Show complete Free Fire player info with styled output",
    category: "game",
    guide: {
      en: "{p}ffinfo <uid>"
    }
  },

  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 𝐌ᴏʜᴀᴍᴍᴀᴅ Aᴋᴀsʜ
`;

      await api.editMessage(msg, wait.messageID);
    } catch (err) {
      api.sendMessage(
        `❌ Error: ${err.message}`,
        event.threadID,
        event.messageID
      );
    }
  }
};

View raw file