module.exports = { config: { name: "tag", category: "box chat", role: 0, author: "𝐌𝐚𝐑𝐮𝐅", countDown: 3, description: { en: "Tag members by name, reply or everyone" }, guide: { en: "{p}tag [name] [msg]\n{p}tag all [msg]\nReply + {p}tag [msg]" } }, onStart: async ({ api, event, usersData, threadsData, args }) => { const { threadID, messageID, messageReply } = event; try { const threadData = await threadsData.get(threadID); const members = (threadData.members || []) .filter(member => member.inGroup) .map(member => ({ name: member.name || "Unknown User", id: member.userID })); let tagUsers = []; let text = ""; if (messageReply) { const uid = messageReply.senderID; const name = await usersData.getName(uid); tagUsers.push({ name: name || "Unknown User", id: uid }); text = args.join(" "); } else if ( args[0] && ["all", "everyone", "cdi"].includes(args[0].toLowerCase()) ) { tagUsers = members; text = args.slice(1).join(" "); } else { if (!args[0]) { return api.sendMessage( { body: "╭━━━〔 ⚠️ 𝐓𝐀𝐆 〕━━━╮\n" + "┃\n" + "┃ 𝐔𝐬𝐞 𝐫𝐞𝐩𝐥𝐲, 𝐧𝐚𝐦𝐞 𝐨𝐫 𝐚𝐥𝐥\n" + "┃ 𝐭𝐨 𝐭𝐚𝐠 𝐦𝐞𝐦𝐛𝐞𝐫𝐬.\n" + "┃\n" + "┣━━━━━━━━━━━━━━━━━\n" + "┃ 💡 𝐄𝐱𝐚𝐦𝐩𝐥𝐞𝐬:\n" + "┃\n" + "┃ • tag Maruf Hello\n" + "┃ • tag all Hello everyone\n" + "┃ • Reply + tag Hello\n" + "┃\n" + "╰━━━━━━━━━━━━━━━━━╯" }, threadID, messageID ); } const searchName = args[0].toLowerCase(); text = args.slice(1).join(" "); tagUsers = members.filter(member => member.name.toLowerCase().includes(searchName) ); if (tagUsers.length === 0) { return api.sendMessage( { body: "╭━━━〔 ❌ 𝐍𝐎𝐓 𝐅𝐎𝐔𝐍𝐃 〕━━━╮\n" + "┃\n" + `┃ 🔎 𝐒𝐞𝐚𝐫𝐜𝐡: ${args[0]}\n` + "┃\n" + "┃ 𝐍𝐨 𝐦𝐚𝐭𝐜𝐡𝐢𝐧𝐠 𝐦𝐞𝐦𝐛𝐞𝐫 𝐰𝐚𝐬 𝐟𝐨𝐮𝐧𝐝.\n" + "┃\n" + "╰━━━━━━━━━━━━━━━━━━━━╯" }, threadID, messageID ); } } if (tagUsers.length === 0) { return api.sendMessage( { body: "╭━━━〔 ⚠️ 𝐓𝐀𝐆 〕━━━╮\n" + "┃\n" + "┃ 𝐍𝐨 𝐦𝐞𝐦𝐛𝐞𝐫𝐬 𝐚𝐫𝐞 𝐚𝐯𝐚𝐢𝐥𝐚𝐛𝐥𝐞 𝐭𝐨 𝐭𝐚𝐠.\n" + "┃\n" + "╰━━━━━━━━━━━━━━━━━╯" }, threadID, messageID ); } const mentions = tagUsers.map(user => ({ tag: user.name, id: user.id })); const namesText = tagUsers .map((user, index) => `┃ ${index + 1}. ${user.name}`) .join("\n"); const body = text ? ( "╭━━━〔 🔔 𝐓𝐀𝐆 𝐍𝐎𝐓𝐈𝐂𝐄 〕━━━╮\n" + "┃\n" + namesText + "\n" + "┃\n" + "┣━━━━━━━━━━━━━━━━━━━━\n" + `┃ 💬 ${text}\n` + "┃\n" + "╰━━━━━━━━━━━━━━━━━━━━╯" ) : ( "╭━━━〔 🔔 𝐓𝐀𝐆 𝐍𝐎𝐓𝐈𝐂𝐄 〕━━━╮\n" + "┃\n" + namesText + "\n" + "┃\n" + "╰━━━━━━━━━━━━━━━━━━━━╯" ); return api.sendMessage( { body, mentions }, threadID, messageReply ? messageReply.messageID : messageID ); } catch (error) { return api.sendMessage( { body: "╭━━━〔 ❌ 𝐄𝐑𝐑𝐎𝐑 〕━━━╮\n" + "┃\n" + "┃ 𝐒𝐨𝐦𝐞𝐭𝐡𝐢𝐧𝐠 𝐰𝐞𝐧𝐭 𝐰𝐫𝐨𝐧𝐠.\n" + "┃\n" + `┃ ⚙️ ${error.message}\n` + "┃\n" + "╰━━━━━━━━━━━━━━━━╯" }, threadID, messageID ); } } };