// code from goatstore // api: https://store.agi.bd module.exports = { config: { name: "msgcount", aliases: ["mc", "msgs"], version: "1.0", author: "Zihad", countDown: 5, role: 0, description: { en: "Dekho group-e kon koyta message diyeche" }, category: "group", guide: { en: "{pn}: nijer message count" + "\n{pn} @tag: tag kora ba reply kora user-er count" + "\n{pn} top: top 10 active member" + "\n{pn} all: shob member-er list" } }, // Protiti message-e count barabe (key lage na) onChat: async function ({ event, threadsData, api }) { const { threadID, senderID, isGroup } = event; if (!isGroup || !senderID) return; if (senderID == api.getCurrentUserID()) return; const counts = await threadsData.get(threadID, "data.msgCount", {}); counts[senderID] = (counts[senderID] || 0) + 1; await threadsData.set(threadID, counts, "data.msgCount"); }, onStart: async function ({ message, event, args, threadsData, usersData }) { const { threadID, senderID } = event; const counts = await threadsData.get(threadID, "data.msgCount", {}); const sorted = Object.entries(counts).sort((a, b) => b[1] - a[1]); if (sorted.length === 0) return message.reply("Ekhono kono message count hoyni. Kichu message dile count shuru hobe."); // top 10 if (args[0] === "top") { const top = sorted.slice(0, 10); let text = "šŸ† Top 10 Active Member\n━━━━━━━━━━━━━━"; const medals = ["šŸ„‡", "🄈", "šŸ„‰"]; for (let i = 0; i < top.length; i++) { const name = await usersData.getName(top[i][0]); text += `\n${medals[i] || `${i + 1}.`} ${name}: ${top[i][1]}`; } return message.reply(text); } // shob member if (args[0] === "all") { let text = "šŸ“Š Message Count (shob member)\n━━━━━━━━━━━━━━"; for (let i = 0; i < sorted.length; i++) { const name = await usersData.getName(sorted[i][0]); text += `\n${i + 1}. ${name}: ${sorted[i][1]}`; } return message.reply(text); } // ekjon user (nijer / tag / reply) let targetID = senderID; if (event.messageReply) targetID = event.messageReply.senderID; else if (Object.keys(event.mentions || {}).length > 0) targetID = Object.keys(event.mentions)[0]; const total = counts[targetID] || 0; const rank = sorted.findIndex(([id]) => id == targetID) + 1; const name = await usersData.getName(targetID); return message.reply( `šŸ“Ø ${name}\n` + `Message: ${total}\n` + `Rank: ${rank > 0 ? `#${rank} / ${sorted.length}` : "N/A"}` ); } };