// code from goatstore // api: https://store.agi.bd module.exports = { config: { name: "antidelete", version: "7.0.0", author: "Zihad", countDown: 2, role: 0, shortDescription: "Group AntiDelete", longDescription: "Save group messages and show deleted messages", category: "system", guide: { en: "{pn} on | off | show | clear" } }, onStart: async function ({ message, args }) { if (!global.antiDeleteDB) global.antiDeleteDB = {}; var tid = message.threadID; if (!global.antiDeleteDB[tid]) { global.antiDeleteDB[tid] = { enabled: false, messages: [] }; } var db = global.antiDeleteDB[tid]; var cmd = args[0] ? String(args[0]).toLowerCase() : "show"; if (cmd === "on") { db.enabled = true; return message.reply( "✅ AntiDelete ON\n\n" + "👥 গ্রুপের সবার message save হবে।\n" + "🗑️ কেউ delete করলে copy থাকবে।\n" + "🤫 Delete হলে automatic reply হবে না।\n\n" + "📌 দেখতে: antidelete show" ); } if (cmd === "off") { db.enabled = false; db.messages = []; return message.reply( "❌ AntiDelete OFF\n\n" + "🗑️ Saved messages clear করা হয়েছে।" ); } if (cmd === "clear") { db.messages = []; return message.reply( "🧹 AntiDelete saved messages clear হয়েছে।" ); } if (cmd === "show") { if (!db.enabled) { return message.reply( "❌ AntiDelete OFF\n\n" + "চালু করতে:\nantidelete on" ); } var deleted = db.messages.filter(function (m) { return m.deleted === true; }); if (deleted.length === 0) { return message.reply( "❌ কোনো deleted message save পাওয়া যায়নি।" ); } var out = "🗑️ DELETED MESSAGES\n"; out += "━━━━━━━━━━━━━━━━\n\n"; deleted.forEach(function (m, i) { out += "🔹 #" + (i + 1) + "\n"; out += "👤 ID: " + m.sender + "\n"; out += "💬 " + m.text + "\n\n"; }); out += "━━━━━━━━━━━━━━━━\n"; out += "♻️ Total: " + deleted.length; return message.reply(out); } return message.reply( "🛡️ AntiDelete\n\n" + "antidelete on\n" + "antidelete show\n" + "antidelete off\n" + "antidelete clear" ); }, onChat: async function ({ event }) { if (!event || !event.threadID) return; if (!global.antiDeleteDB) global.antiDeleteDB = {}; var tid = event.threadID; if (!global.antiDeleteDB[tid]) { global.antiDeleteDB[tid] = { enabled: false, messages: [] }; } var db = global.antiDeleteDB[tid]; if (!db.enabled) return; /* * SAVE EVERY NORMAL GROUP MESSAGE */ if (event.type === "message") { if (!event.messageID) return; var exists = db.messages.some(function (m) { return m.id === String(event.messageID); }); if (exists) return; db.messages.push({ id: String(event.messageID), sender: event.senderID ? String(event.senderID) : "Unknown", text: event.body ? String(event.body) : "[Photo / Video / File / No Text]", time: Date.now(), deleted: false }); return; } /* * MARK MESSAGE AS DELETED */ if (event.type === "message_unsend") { var id = event.messageIDToUnsend || event.unsendMessageID || event.messageID; if (!id) return; db.messages.forEach(function (m) { if (m.id === String(id)) { m.deleted = true; m.deletedTime = Date.now(); } }); return; } } };