"use strict"; module.exports.config = { name: "idea", version: "2.0.0", role: 0, author: "𓆩𝑅𝑜𝒷𝒾𝓃đ“†Ē 𝒜𝓁𝒾", description: "āĻŦāĻ¨ā§āϧ⧁āϕ⧇ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāĻĻ⧇āĻļ/āφāχāĻĄāĻŋ⧟āĻž āĻĒāĻžāĻ āĻžā§ŸāĨ¤ (Robust mention support)", category: "utility", usages: " /idea @mention", countDown: 10, dependencies: { "fs-extra": "", axios: "", }, }; const mentionResolver = require("../../includes/mentionResolver"); module.exports.onStart = async function ({ api, args, Users, event }) { try { const threadID = event.threadID; const body = typeof event.body === "string" ? event.body : ""; // 1) Robustly get mention UID + name (shared resolver) const mentionInfo = await mentionResolver.getTargetMention(api, event, body); if (!mentionInfo || !mentionInfo.id) { // If the user already typed some @name, help them resolve const atName = mentionResolver.extractAtName(body); if (atName) { // fetch thread participants for guidance try { const tinfo = await api.getThreadInfo(threadID); const ids = tinfo.participantIDs || []; const info = await api.getUserInfo(ids); let list = ""; ids.forEach((uid) => { const nm = info?.[uid]?.name || ""; list += `â€ĸ ${nm} → ${uid}\n`; }); return api.sendMessage( `❌ Can't resolve '@${atName}'.\n` + "Name might be hidden by privacy.\n" + "You can either reply to the person's message, mention them in chat so the bot sees it, or use their UID directly.\n" + "Here are thread participants you can try:\n" + list, threadID, ); } catch {} // fall through } return api.sendMessage( "āφāĻĒāύāĻŋ āĻ•āĻžāϕ⧇ āĻœā§āĻžāĻžāύ āĻĻāĻŋāϤ⧇ āϚāĻžāύ āĻāĻŽāύ 1 āϜāύāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ @āĻŽā§āϝāĻžāύāĻļāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ 🙂\n\nāωāĻĻāĻžāĻšāϰāĻŖ:\n/idea @Robin Ali", threadID ); } const mention = mentionInfo.id; const name = mentionInfo.name || "User"; const arraytag = [{ id: mention, tag: name }]; const send = (payload) => api.sendMessage(payload, threadID); // Intro (instant) send( "āϤ⧋āĻŽāĻžāϕ⧇ āĻ•āĻŋāϛ⧁ āωāĻĒāĻĻ⧇āĻļ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāĻŦ⧇āĨ¤ āĻŽā§‡āύ⧇ āϚāϞāϞ⧇ āĻœā§€āĻŦāύ⧇ āĻ…āύ⧇āĻ• āωāĻ¨ā§āύāϤāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤đŸ™‚" ); // 2) Messages list (clean) const messages = [ "āĻŦāĻŋāĻĒāĻĻ-āφāĻĒāĻĻ⧇āϰ āϏāĻŽā§Ÿ āĻĻ⧁āύāĻŋ⧟āĻžāϰ āϏāĻ•āϞ āĻĻāϰāϜāĻž āĻŦāĻ¨ā§āϧ āĻšā§Ÿā§‡ āϗ⧇āϞ⧇āĻ“ āφāĻ˛ā§āϞāĻžāĻš āϤāĻžā§ŸāĻžāϞāĻžāϰ āĻĻāϰāϜāĻžāϰ āϏāĻŦāϏāĻŽā§Ÿ āϖ⧁āϞāĻž āĻĨāĻžāϕ⧇āĨ¤ đŸĨ°đŸĨ°", "āϤāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻžāρāĻĻ āϝ⧇ āϤ⧋āĻŽāĻžāϰ āĻšā§‹āϖ⧇āϰ āϜāϞ āĻĻ⧇āϖ⧇ āϏ⧇āĻ“ āϕ⧇āρāĻĻ⧇ āĻĢ⧇āϞ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻŽāύ āĻ•āĻžāϰ⧋ āϜāĻ¨ā§āϝ āϕ⧇āĻĻā§‹āύāĻž āϝ⧇ āϤ⧋āĻŽāĻžāϰ āĻšā§‹āϖ⧇āϰ āϜāϞ āĻĻ⧇āϖ⧇ āωāĻĒāĻšāĻžāϏ āĻ•āϰ⧇āĨ¤ 🐰", "āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ•āĻ āĻŋāύ āĻ•āĻžāϜ āĻšāĻšā§āϛ⧇ āύāĻŋāĻœā§‡āϕ⧇ āĻšā§‡āύāĻž āĻāĻŦāĻ‚ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻšāϜ āĻ•āĻžāϜ āĻšāĻšā§āϛ⧇ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰāϕ⧇ āωāĻĒāĻĻ⧇āĻļ āĻĻ⧇āϝāĻŧāĻžāĨ¤ 💔!", "āĻŸā§‡āύāĻļāύ āĻĻā§‚āϰ āĻ•āϰāϤ⧇ āύ⧇āĻļāĻž āĻ¨ā§Ÿâ€”āĻ­āĻžāϞ⧋ āĻ…āĻ­ā§āϝāĻžāϏ/āχāĻŦāĻžāĻĻāϤ/āϰ⧁āϟāĻŋāύ āϧāϰ⧇ āϰāĻžāĻ–āĻž āĻ•āĻžāĻœā§‡ āĻĻā§‡ā§ŸāĨ¤ 🙂", "āϝāĻž āϤ⧁āĻŽāĻŋ āϜāĻžāύ, āϤāĻžāϰ āϤ⧁āϞāύāĻžā§Ÿ āĻ•āĻŽ āĻ•āĻĨāĻž āĻŦāϞāĻž āωāϚāĻŋāϤāĨ¤đŸ¤Ÿ", "āĻŦāĻ¨ā§āϧ⧁āĻ¤ā§āĻŦ āĻšā§‹āĻ• āĻ•āĻŋāĻ‚āĻŦāĻž āĻ­āĻžāϞ⧋āĻŦāĻžāϏāĻžâ€”āϟāĻŋāĻ•āĻŋā§Ÿā§‡ āϰāĻžāĻ–āĻžāϰ āĻĻāĻžā§ŸāĻŋāĻ¤ā§āĻŦ āĻĻ⧁'āϜāύ⧇āϰāχāĨ¤ 🤝", "āϝāĻĻāĻŋ āĻ¸ā§āĻŦāĻĒā§āύ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧋, āϤāĻŦ⧇ āϤāĻž āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžā§ŸāύāĻ“ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤âœ¨", "āϝ⧇ āϤ⧋āĻŽāĻžāϕ⧇ āφāϜ āĻ…āĻŦāĻšā§‡āϞāĻž āĻ•āϰāĻ›ā§‡â€”āϧ⧈āĻ°ā§āϝ āϧāϰ⧋, āĻāĻ•āĻĻāĻŋāύ āϤ⧋āĻŽāĻžāϰ āĻŽā§‚āĻ˛ā§āϝ āĻŦ⧁āĻāĻŦ⧇āĨ¤", "~ āĻ…āĻ¨ā§āϝāϕ⧇ āĻ—āĻžāϞāĻŋ āĻĻ⧇āĻ“ā§ŸāĻž āĻĨ⧇āϕ⧇ āĻŦāĻŋāϰāϤ āĻĨāĻžāϕ⧁āύâ™Ĩī¸", "āφāĻ˛ā§āϞāĻžāĻšāϰ āĻĻ⧇āĻ–āĻžāύ⧋ āĻĒāĻĨ⧇ āϚāϞ⧁āύ đŸĨ°", "~ āĻŦ⧜āĻĻ⧇āϰāϕ⧇ āϏāĻŽā§āĻŽāĻžāύ āĻ•āϰāϤ⧇ āĻļāĻŋāϖ⧁āĻ¨đŸ˜", ]; // 3) Schedule sending (stable) // Each message goes every 3 seconds (customize if you want) let delay = 3000; for (const text of messages) { setTimeout(() => { send({ body: `${text} ${name}`, mentions: arraytag, }); }, delay); delay += 3000; } } catch (e) { try { api.sendMessage( `âš ī¸ idea āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡ āϏāĻŽāĻ¸ā§āϝāĻž: ${e?.message || e}`, event.threadID ); } catch {} } }