grupo-delete.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. let handler = async (m, { conn, args, usedPrefix, command }) => {
  2. if (!m.quoted && !m.mentionedJid?.length && !args[0]) return m.reply(`⚠️ Responde al mensaje que quiere eliminar pelotudito.`)
  3. try {
  4. if (m.quoted) {
  5. let delet = m.quoted.sender;
  6. let bang = m.quoted.id;
  7. return conn.sendMessage(m.chat, { delete: { remoteJid: m.chat, fromMe: false, id: bang, participant: delet } });
  8. }
  9. let target = '';
  10. if (m.mentionedJid?.length) {
  11. target = m.mentionedJid[0];
  12. } else if (args[0] && args[0].startsWith('+')) {
  13. target = args[0].replace(/[^0-9]/g, '') + '@s.whatsapp.net';
  14. } else {
  15. return m.reply(`⚠️ Mencionar a alguien o responder a un mensaje.`);
  16. }
  17. let chats = await conn.chats[m.chat]?.messages || [];
  18. let messagesToDelete = Object.values(chats).filter(
  19. msg => (msg.key.participant === target || msg.key.remoteJid === target));
  20. if (!messagesToDelete.length) return
  21. let totalToDelete = Math.min(messagesToDelete.length, 200); // Máximo 200 mensajes
  22. let deletedCount = 0;
  23. for (let i = 0; i < totalToDelete; i++) {
  24. let message = messagesToDelete[i];
  25. try {
  26. await conn.sendMessage(m.chat, { delete: message.key });
  27. deletedCount++;
  28. await delay(100);
  29. } catch (err) {
  30. console.log(err);
  31. }}
  32. m.reply(`✅ Se eliminaron ${deletedCount} mensajes de ${target.includes('@s.whatsapp.net')}.`);
  33. } catch (err) {
  34. console.error(err);
  35. }};
  36. handler.help = ['delete *@user*'];
  37. handler.tags = ['group'];
  38. handler.command = /^del(ete)?$/i;
  39. handler.group = true;
  40. handler.admin = true;
  41. handler.botAdmin = true;
  42. handler.register = true;
  43. export default handler;
  44. const delay = ms => new Promise(resolve => setTimeout(resolve, ms));