let WAMessageStubType = (await import(global.baileys)).default import { readdirSync, unlinkSync, existsSync, promises as fs, rmSync } from 'fs'; import path from 'path'; export async function before(m, { conn, participants, groupMetadata}) { if (!m.messageStubType || !m.isGroup) return let pp = await conn.profilePictureUrl(m.messageStubParameters[0], 'image').catch(_ => 'https://telegra.ph/file/2a1d71ab744b55b28f1ae.jpg') let img = await (await fetch(`${pp}`)).buffer() let usuario = `@${m.sender.split`@`[0]}` let fkontak = { "key": { "participants":"0@s.whatsapp.net", "remoteJid": "status@broadcast", "fromMe": false, "id": "Halo" }, "message": { "contactMessage": { "vcard": `BEGIN:VCARD\nVERSION:3.0\nN:Sy;Bot;;;\nFN:y\nitem1.TEL;waid=${m.sender.split('@')[0]}:${m.sender.split('@')[0]}\nitem1.X-ABLabel:Ponsel\nEND:VCARD` }}, "participant": "0@s.whatsapp.net" } let chat = global.db.data.chats[m.chat] let users = participants.map(u => conn.decodeJid(u.id)) const groupAdmins = participants.filter(p => p.admin) const listAdmin = groupAdmins.map((v, i) => `*Β» ${i + 1}. @${v.id.split('@')[0]}*`).join('\n') /*if (chat.detect && m.messageStubType == 2) { const chatId = m.isGroup ? m.chat : m.sender; const uniqid = chatId.split('@')[0]; const sessionPath = './BotSession/'; const files = await fs.readdir(sessionPath); let filesDeleted = 0; for (const file of files) { if (file.includes(uniqid)) { await fs.unlink(path.join(sessionPath, file)); filesDeleted++; console.log(`⚠️ Eliminacion session (PreKey) que provocan el undefined el chat`)}} } else*/ if (chat.detect && m.messageStubType == 21) { await this.sendMessage(m.chat, { text: `${usuario} \`π™ƒπ˜Όπ™Ž π˜Ύπ˜Όπ™ˆπ˜½π™„π˜Όπ˜Ώπ™Š 𝙀𝙇 π™‰π™Šπ™ˆπ˜½π™π™€Μ π˜Ώπ™€π™‡ π™‚π™π™π™‹π™Š 𝘼:\`\n\n> *${m.messageStubParameters[0]}*`, mentions: [m.sender], mentions: [...groupAdmins.map(v => v.id)] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100}) } else if (chat.detect && m.messageStubType == 22) { await this.sendMessage(m.chat, { text: `${usuario} \`π™ƒπ˜Όπ™Ž π˜Ύπ˜Όπ™ˆπ˜½π™„π˜Όπ˜Ώπ™Š π™‡π˜Όπ™Ž π™π™Šπ™π™Š π˜Ώπ™€π™‡ π™‚π™π™π™‹π™Š\``, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100}) } else if (chat.detect && m.messageStubType == 24) { await this.sendMessage(m.chat, { text: `${usuario} π™‰π™π™€π™‘π˜Ό π˜Ώπ™€π™Žπ˜Ύπ™π™„π™‹π˜Ύπ™„π™Šπ™‰ π˜Ώπ™€π™‡ π™‚π™π™π™‹π™Š π™€π™Ž:\n\n${m.messageStubParameters[0]}`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100}) } else if (chat.detect && m.messageStubType == 25) { await this.sendMessage(m.chat, { text: `πŸ”’ π˜Όπ™ƒπ™Šπ™π˜Ό *${m.messageStubParameters[0] == 'on' ? 'π™Žπ™Šπ™‡π™Š π˜Όπ˜Ώπ™ˆπ™„π™‰π™Ž' : 'π™π™Šπ˜Ώπ™Šπ™Ž'}* π™‹π™π™€π˜Ώπ™€ π™€π˜Ώπ™„π™π˜Όπ™ π™‡π˜Ό π™„π™‰π™π™Šπ™π™ˆπ˜Όπ˜Ύπ™„π™Šπ™‰ π˜Ώπ™€π™‡ π™‚π™π™π™‹π™Š`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100}) } else if (chat.detect && m.messageStubType == 26) { await this.sendMessage(m.chat, { text: `𝙀𝙇 π™‚π™π™π™‹π™Š *${m.messageStubParameters[0] == 'on' ? 'π™€π™Žπ™π˜Ό π˜Ύπ™€π™π™π˜Όπ˜Ώπ™Š πŸ”’' : 'π™€π™Žπ™π˜Ό π˜Όπ˜½π™„π™€π™π™π™Š πŸ”“'}*\n ${m.messageStubParameters[0] == 'on' ? 'π™Žπ™Šπ™‡π™Š π™‡π™Šπ™Ž π˜Όπ˜Ώπ™ˆπ™„π™‰π™Ž π™‹π™π™€π˜Ώπ™€π™‰ π™€π™Žπ˜Ύπ™π™„π˜½π™„π™' : 'π™”π˜Ό π™‹π™π™€π˜Ώπ™€π™‰ π™€π™Žπ˜Ύπ™π™„π˜½π™„π™ π™π™Šπ˜Ώπ™Šπ™Ž'} 𝙀𝙉 π™€π™Žπ™π™€ π™‚π™π™π™‹π™Š`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100}) } else if (chat.welcome && m.messageStubType == 27 && this.user.jid != global.conn.user.jid) { let subject = groupMetadata.subject let descs = groupMetadata.desc || "*ᴜɴ Ι’Κ€α΄œα΄˜α΄ ɒᴇɴΙͺα΄€πŸ˜Έ*\n *sΙͺΙ΄ Κ€α΄‡Ι’ΚŸα΄€ πŸ˜‰*"; let userName = `${m.messageStubParameters[0].split`@`[0]}`; let defaultWelcome = `┏━━━━━━━━━━━━\nβ”ƒβ”€β”€γ€˜ *WELCOME* 〙──\n┃━━━━━━━━━━━━\n┃ *Hola @${userName} πŸ‘‹ Bienvenido a*\n┃ *_${subject} ✨_*\n┃ *_πŸ₯³ Disfruta de tu_*\n┃ *_estadΓ­a en el grupo πŸ₯³_*\n┃\n┗━━━━━━━━━━━`; let textWel = chat.sWelcome ? chat.sWelcome .replace(/@user/g, `@${userName}`) .replace(/@group/g, subject) .replace(/@desc/g, descs) : defaultWelcome; await this.sendMessage(m.chat, { text: textWel, contextInfo:{ forwardingScore: 9999999, isForwarded: true, mentionedJid:[m.sender, m.messageStubParameters[0]], externalAdReply: { showAdAttribution: true, renderLargerThumbnail: true, thumbnailUrl: pp, title: "BIENVENID@ πŸ˜„", body: [wm, ' ' + wm + '😊', '🌟'].getRandom(), containsAutoReply: true, mediaType: 1, sourceUrl: [nna, nna2, yt].getRandom()}}}, { quoted: fkontak }) } else if (chat.welcome && (m.messageStubType == 28 || m.messageStubType == 32) && this.user.jid != global.conn.user.jid ) { let subject = groupMetadata.subject; let userName = `${m.messageStubParameters[0].split`@`[0]}`; let defaultBye = `┏━━━━━━━━━━━━\nβ”ƒβ”€β”€γ€˜ *ADIOS* 〙───\n┃━━━━━━━━━━━━\n┃ *_☠ Se fue @${userName}_* \n┃ *_Que dios lo bendiga️_* \n┃ *_Y lo atropelle un tren πŸ˜‡_*\n┗━━━━━━━━━━`; let textBye = chat.sBye ? chat.sBye .replace(/@user/g, `@${userName}`) .replace(/@group/g, subject) : defaultBye; await this.sendMessage(m.chat, { text: textBye, contextInfo:{ forwardingScore: 9999999, isForwarded: true, mentionedJid:[m.sender, m.messageStubParameters[0]], externalAdReply: { showAdAttribution: true, renderLargerThumbnail: true, thumbnailUrl: pp, title: "BYE πŸ‘‹", body: [wm, ' ' + wm + '😊', '🌟'].getRandom(), containsAutoReply: true, mediaType: 1, sourceUrl: [nna, nna2, nnaa, yt, md].getRandom()}}}, { quoted: fkontak }) } else if (chat.detect && m.messageStubType == 29) { let subject = groupMetadata.subject; let defaultPromote = `@${m.messageStubParameters[0].split`@`[0]} π˜Όπ™ƒπ™Šπ™π˜Ό π™€π™Ž π˜Όπ˜Ώπ™ˆπ™„π™‰ 𝙀𝙉 π™€π™Žπ™π™€ π™‚π™π™π™‹π™Š\n\nπŸ˜ΌπŸ«΅π˜Όπ˜Ύπ˜Ύπ™„π™Šπ™‰ π™π™€π˜Όπ™‡π™„π™•π˜Όπ˜Ώπ˜Ό π™‹π™Šπ™: ${usuario}` let textAdm = chat.sPromote ? chat.sPromote .replace(/@user/g, `@${m.messageStubParameters[0].split`@`[0]}`) .replace(/@autor/g, `${usuario}`) .replace(/@group/g, subject) : defaultPromote; await this.sendMessage(m.chat, { text: textAdm, mentions: [m.sender, m.messageStubParameters[0], ...groupAdmins.map(v => v.id)] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100}) } else if (chat.detect && m.messageStubType == 30) { let subject = groupMetadata.subject; let defaultDemote = `@${m.messageStubParameters[0].split`@`[0]} π˜Ώπ™€π™…π˜Ό π˜Ώπ™€ π™Žπ™€π™ π˜Όπ˜Ώπ™ˆπ™„π™‰ 𝙀𝙉 π™€π™Žπ™π™€ π™‚π™π™π™‹π™Š\n\nπŸ˜ΌπŸ«΅π˜Όπ˜Ύπ˜Ύπ™„π™Šπ™‰ π™π™€π˜Όπ™‡π™„π™•π˜Όπ˜Ώπ˜Ό π™‹π™Šπ™: ${usuario}` let textAdmin = chat.sDemote ? chat.sDemote .replace(/@user/g, `@${m.messageStubParameters[0].split`@`[0]}`) .replace(/@autor/g, `${usuario}`) .replace(/@group/g, subject) : defaultDemote; await this.sendMessage(m.chat, { text: textAdmin, mentions: [m.sender, m.messageStubParameters[0], ...groupAdmins.map(v => v.id)] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100}) } else if (chat.detect && m.messageStubType === 172 && m.messageStubParameters.length > 0) { const rawUser = m.messageStubParameters[0]; const users = rawUser.split('@')[0]; const prefijosProhibidos = ['+91', '+92', '+222', '+93', '+265', '+61', '+62', '+966', '+229', '+40', '+49', '+20', '+963', '+967', '+234', '+210', '+212']; const usersConPrefijo = users.startsWith('+') ? users : `+${users}`; if (chat.antifake) { const esProhibido = prefijosProhibidos.some(prefijo => { const coincide = usersConPrefijo.startsWith(prefijo); return coincide; }); if (esProhibido) { try { await conn.groupRequestParticipantsUpdate(m.chat, [rawUser], 'reject'); console.log(`Solicitud de ${usersConPrefijo} rechazada por prefijo prohibido.`); } catch (error) { console.error(`Error al rechazar la solicitud de ${usersConPrefijo}:`, error); }} else { try { await conn.groupRequestParticipantsUpdate(m.chat, [rawUser], 'approve'); console.log(`Solicitud de ${usersConPrefijo} aprobada (no tiene prefijo prohibido).`); } catch (error) { console.error(`Error al aprobar la solicitud de ${usersConPrefijo}:`, error); }}} else { try { await conn.groupRequestParticipantsUpdate(m.chat, [rawUser], 'approve'); console.log(`Solicitud de ${usersConPrefijo} aprobada (antifake desactivado).`); } catch (error) { console.error(`Error al aprobar la solicitud de ${usersConPrefijo}:`, error); }} return; /* } if (chat.detect && m.messageStubType == 72) { await this.sendMessage(m.chat, { text: `${usuario} π˜Ύπ˜Όπ™ˆπ˜½π™„π™Š π™‡π˜Όπ™Ž π˜Ώπ™π™π˜Όπ˜Ύπ™„π™Šπ™‰ π˜Ώπ™€π™‡ π™‡π™Šπ™Ž π™ˆπ™€π™‰π™Žπ˜Όπ™…π™€ π™π™€π™ˆπ™‹π™Šπ™π˜Όπ™‡π™€π™Ž 𝘼 *@${m.messageStubParameters[0]}*`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100}) } else if (chat.detect && m.messageStubType == 123) { await this.sendMessage(m.chat, { text: `${usuario} *π˜Ώπ™€π™Žπ˜Όπ˜Ύπ™π™„π™‘π™ŠΜ* π™‡π™Šπ™Ž π™ˆπ™€π™‰π™Žπ˜Όπ™…π™€ π™π™€π™ˆπ™‹π™Šπ™π˜Όπ™‡.`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})*/ } else { console.log({messageStubType: m.messageStubType, messageStubParameters: m.messageStubParameters, type: WAMessageStubType[m.messageStubType], })}}