// code from goatstore // api: https://store.agi.bd module.exports = { config: { name: "allgroup", version: "3.0", author: "ā€”ĶžšŹ€ÉŖį“į“‡Ģ", role: 2, category: "admin", aliases: ["allgc"], guide: "{pn} | reply with leave/ban/unban/add " }, onStart: async function ({ api, event }) { const { threadID } = event; global.GoatBot.allgcCache = global.GoatBot.allgcCache || {}; const threads = await api.getThreadList(100, null, ["INBOX"]); const groups = threads.filter(t => t.isGroup); if (groups.length === 0) { return api.sendMessage("ā•­ā”€ā ššŽ š†š‘šŽš”š š…šŽš”ššƒ ā”€āā”€ā•®", threadID); } let msg = "ā•­ā”€ā š€š‹š‹ š†š‘šŽš”šš’ ā”€āā”€ā•®\n"; msg += `│ ✦ š“šØš­ššš„: ${groups.length}\n`; msg += "ā”œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€\n"; groups.forEach((g, i) => { msg += `│ ${i + 1}. ${g.name || "š”š§š§ššš¦šžš š†š«šØš®š©"}\n`; msg += `│ ā– šˆšƒ: ${g.threadID}\n`; msg += "│\n"; }); msg += "╰───────────────────╯\n"; msg += "✧ š‘šžš©š„š² š“š”š¢š¬ šŒš¬š :\n"; msg += " āž¤ š„šžšššÆšž <š§šØ>\n"; msg += " āž¤ š›ššš§ <š§šØ>\n"; msg += " āž¤ š®š§š›ššš§ <š§šØ>\n"; msg += " āž¤ šššš <š§šØ>"; api.sendMessage(msg, threadID, (err, info) => { global.GoatBot.allgcCache[info.messageID] = groups; }); }, onChat: async function ({ api, event }) { const { threadID, messageID, body, messageReply, senderID } = event; if (!messageReply ||!body) return; global.GoatBot.allgcCache = global.GoatBot.allgcCache || {}; global.GoatBot.bannedGroups = global.GoatBot.bannedGroups || {}; const cache = global.GoatBot.allgcCache[messageReply.messageID]; if (!cache) return; const args = body.trim().split(/\s+/); const action = args[0]?.toLowerCase(); const serials = args.slice(1).map(n => parseInt(n)).filter(n =>!isNaN(n)); if (!["leave", "ban", "unban", "add"].includes(action)) return; if (serials.length === 0) { return api.sendMessage(`ā•­ā”€ā šˆš§šÆššš„š¢š š”š¬šž\n│ āž¤ ${action} 1\n╰───────────────────`, threadID, messageID); } for (let num of serials) { const group = cache[num - 1]; if (!group) { await api.sendMessage(`ā•­ā”€ā š’šžš«š¢ššš„ ${num} ššØš­ š…šØš®š§š`, threadID, messageID); continue; } const gid = group.threadID; const gname = group.name || "š”š§š§ššš¦šžš"; if (action === "leave") { try { await api.removeUserFromGroup(api.getCurrentUserID(), gid); await api.sendMessage(`ā•­ā”€āœ… š‹š„š…š“ šƒšŽšš„\n│ ${num}. ${gname}\n│ ā– ${gid}\n╰───────────────────`, threadID, messageID); } catch { await api.sendMessage(`ā•­ā”€āŒ š‹š„š…š“ š…š€šˆš‹š„šƒ\n│ ${num}. ${gname}\n╰───────────────────`, threadID, messageID); } } if (action === "ban") { global.GoatBot.bannedGroups[gid] = true; await api.sendMessage(`ā•­ā”€šŸš« šš€ššš„šƒ\n│ ${num}. ${gname}\n│ ā– ${gid}\n╰───────────────────`, threadID, messageID); } if (action === "unban") { delete global.GoatBot.bannedGroups[gid]; await api.sendMessage(`ā•­ā”€āœ… š”ššš€ššš„šƒ\n│ ${num}. ${gname}\n│ ā– ${gid}\n╰───────────────────`, threadID, messageID); } if (action === "add") { try { await api.addUserToGroup(senderID, gid); await api.sendMessage(`ā•­ā”€āœ… š€šƒšƒš„šƒ š˜šŽš”\n│ ${num}. ${gname}\n│ ā– ${gid}\n╰───────────────────`, threadID, messageID); } catch { await api.sendMessage(`ā•­ā”€āŒ š€šƒšƒ š…š€šˆš‹š„šƒ\n│ ššØš­ ššØš­ š€šš¦š¢š§ šˆš§ ${gname}\n╰───────────────────`, threadID, messageID); } } } } };