rpg-reg.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import { createHash } from 'crypto'
  2. import PhoneNumber from 'awesome-phonenumber'
  3. import moment from 'moment-timezone'
  4. let Reg = /\|?(.*)([.|] *?)([0-9]*)$/i
  5. let handler = async function (m, { conn, text, args, usedPrefix, command }) {
  6. let fkontak = { "key": { "participants":"[email protected]", "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": "[email protected]" }
  7. let who = m.mentionedJid && m.mentionedJid[0] ? m.mentionedJid[0] : m.fromMe ? conn.user.jid : m.sender
  8. let ppch = await conn.profilePictureUrl(who, 'image').catch(_ => imageUrl.getRandom())
  9. let bio = await conn.fetchStatus(who).catch(_ => 'undefined')
  10. let biot = bio.status?.toString() || 'Sin Info'
  11. const date = moment.tz('America/Bogota').format('DD/MM/YYYY')
  12. const time = moment.tz('America/Mexico_City').format('LT')
  13. let userNationality = null;
  14. try {
  15. let api = await axios.get(`${apis}/tools/country?text=${PhoneNumber('+' + who.replace('@s.whatsapp.net', '')).getNumber('international')}`);
  16. let userNationalityData = api.data.result;
  17. userNationality = userNationalityData ? `${userNationalityData.name} ${userNationalityData.emoji}` : null;
  18. } catch (err) {
  19. userNationality = null;
  20. }
  21. let user = db.data.users[m.sender]
  22. let totalreg = Object.keys(global.db.data.users).length
  23. let rtotalreg = Object.values(global.db.data.users).filter(user => user.registered == true).length
  24. let name2 = conn.getName(m.sender)
  25. if (command == 'verify' || command == 'reg' || command == 'verificar') {
  26. if (user.registered === true) throw `*Ya estas registrado Usuario ☝️*`
  27. if (!Reg.test(text)) throw `*⚠️ ¿No sabes cómo usar este comando?* Usar de la seguiente manera:\n\n*${usedPrefix + command} nombre.edad*\n*• Ejemplo:* ${usedPrefix + command} ${name2}.16`
  28. let [_, name, splitter, age] = text.match(Reg);
  29. if (!name) throw '*¿Y el nombre?*'
  30. if (!age) throw '*La edad no puede estar vacía, agrega tu edad*'
  31. if (name.length >= 45) throw '*¿Qué?, ¿tan largo va a ser tu nombre?*'
  32. age = parseInt(age);
  33. if (age > 100) throw '👴🏻 ¡Estás muy viejo para esto!'
  34. if (age < 5) throw '🚼 ¿Los bebés saben escribir? ✍️😳'
  35. user.name = name + '✓'.trim()
  36. //user.name = name.trim();
  37. user.age = age;
  38. user.regTime = +new Date();
  39. user.registered = true;
  40. global.db.data.users[m.sender].money += 400;
  41. global.db.data.users[m.sender].limit += 2;
  42. global.db.data.users[m.sender].exp += 150;
  43. let sn = createHash('md5').update(m.sender).digest('hex');
  44. await conn.sendMessage(m.chat, { text: `[ ✅ REGISTRO COMPLETADO ]
  45. > [ Datos del Usuario ]
  46. ──────────────
  47. ➤ *Nombre:* ${name}
  48. ➤ *Edad:* ${age} años
  49. ➤ *Hora:* ${time} 🇲🇽
  50. ➤ *Fecha:* ${date} ${userNationality ? `\n➤ *País:* ${userNationality}` : ''}
  51. ➤ *Número:* wa.me/${who.split`@`[0]}
  52. ➤ *Número de serie:*
  53. ⤷ ${sn}
  54. > [ ★ Recompensas ★ ]
  55. ──────────────
  56. ⤷ 2 diamantes 💎
  57. ⤷ 400 KantuCoins 🪙
  58. ⤷ 150 exp
  59. *➤ Para ver los comandos del bot usar:*
  60. ${usedPrefix}menu
  61. > [ ▣ Total Registrados ] ${toNum(rtotalreg)}
  62. > *Mira tú registro en este canal*
  63. ${nnaa}`, contextInfo:{forwardedNewsletterMessageInfo: { newsletterJid: ['120363371008200788@newsletter', '120363371008200788@newsletter'].getRandom(), serverMessageId: '', newsletterName: 'KantuBot ✨' }, forwardingScore: 9999999, isForwarded: true, "externalAdReply": {"showAdAttribution": true, "containsAutoReply": true, "title": `𝐑𝐄𝐆𝐈𝐒𝐓𝐑𝐎 𝐂𝐎𝐌𝐏𝐋𝐄𝐓𝐀𝐃𝐎`, "body": wm, "previewType": "PHOTO", thumbnail: img.getRandom(), sourceUrl: [nna, nna2, nn, md, yt, tiktok].getRandom()}}}, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  64. //await m.reply(`${sn}`);
  65. await global.conn.sendMessage(global.ch.ch1, { text: `◉ *Usuarios:* ${m.pushName || 'Anónimo'} ${userNationality ? `\n◉ *País:* ${userNationality}` : ''}
  66. ◉ *Verificación:* ${user.name}
  67. ◉ *Edad:* ${age} años
  68. ◉ *Fecha:* ${date}
  69. ◉ *Bot:* ${wm}
  70. ◉ *Número de serie:*
  71. ⤷ ${sn}`, contextInfo: {
  72. externalAdReply: {
  73. title: "『 𝙉𝙊𝙏𝙄𝙁𝙄𝘾𝘼𝘾𝙄𝙊́𝙉 📢 』",
  74. body: "Nuevo usuario registrado 🥳",
  75. thumbnailUrl: ppch,
  76. sourceUrl: [nna, nna2, nn, md, yt, tiktok].getRandom(),
  77. mediaType: 1,
  78. showAdAttribution: false,
  79. renderLargerThumbnail: false
  80. }}}, { quoted: null }).catch(err => console.error(err));
  81. }
  82. if (command == 'nserie' || command == 'myns' || command == 'sn') {
  83. let sn = createHash('md5').update(m.sender).digest('hex')
  84. conn.fakeReply(m.chat, sn, '[email protected]', `⬇️ ᴇsᴛᴇ ᴇs sᴜs ɴᴜᴍᴇʀᴏ ᴅᴇʟ sᴇʀɪᴇ ⬇️`, 'status@broadcast', null, fake)
  85. }
  86. if (command == 'unreg') {
  87. if (!args[0]) throw `✳️ *Ingrese número de serie*\nVerifique su número de serie con el comando...\n\n*${usedPrefix}nserie*`
  88. let user = global.db.data.users[m.sender]
  89. let sn = createHash('md5').update(m.sender).digest('hex')
  90. if (args[0] !== sn) throw '⚠️ *Número de serie incorrecto*'
  91. global.db.data.users[m.sender].money -= 400
  92. global.db.data.users[m.sender].limit -= 2
  93. global.db.data.users[m.sender].exp -= 150
  94. user.registered = false
  95. conn.fakeReply(m.chat, `😢 Ya no estas registrado`, '[email protected]', `ᴿᵉᵍᶦˢᵗʳᵒ ᵉˡᶦᵐᶦⁿᵃᵈᵒ`, 'status@broadcast', null, fake)
  96. }}
  97. handler.help = ['reg', 'verificar', 'myns', 'nserie', 'unreg']
  98. handler.tags = ['rg']
  99. handler.command = /^(nserie|unreg|sn|myns|verify|verificar|registrar|reg(ister)?)$/i
  100. export default handler
  101. function toNum(number) {
  102. if (number >= 1000 && number < 1000000) {
  103. return (number / 1000).toFixed(1) + 'k';
  104. } else if (number >= 1000000) {
  105. return (number / 1000000).toFixed(1) + 'M';
  106. } else if (number <= -1000 && number > -1000000) {
  107. return (number / 1000).toFixed(1) + 'k';
  108. } else if (number <= -1000000) {
  109. return (number / 1000000).toFixed(1) + 'M';
  110. } else {
  111. return number.toString();
  112. }
  113. }