text: require('dotenv').config()
  const { decryptMedia } = require('@open-wa/wa-automate')
  
  const moment = require('moment-timezone')
  moment.tz.setDefault('Asia/Jakarta').locale('id')
  const axios = require('axios')
  const fetch = require('node-fetch')
  const google = require('google-it')
  const appRoot = require('app-root-path')
  const low = require('lowdb')
  const FileSync = require('lowdb/adapters/FileSync')
  const db_group = new FileSync(appRoot+'/lib/data/group.json')
  const db = low(db_group)
  db.defaults({ group: []}).write()
  
  const { 
      removeBackgroundFromImageBase64
  } = require('remove.bg')
  
  const {
      exec
  } = require('child_process')
  
  const { 
      menuId, 
      cekResi, 
      urlShortener, 
      meme, 
      translate, 
      getLocationData,
      images,
      resep,
      rugapoi,
      rugaapi,
      cariKasar
  } = require('./lib')
  
  const { 
      msgFilter, 
      color, 
      processTime, 
      isUrl,
  	download
  } = require('./utils')
  
  const { uploadImages } = require('./utils/fetcher')
  
  const fs = require('fs-extra')
  const banned = JSON.parse(fs.readFileSync('./settings/banned.json'))
  const simi = JSON.parse(fs.readFileSync('./settings/simi.json'))
  const ngegas = JSON.parse(fs.readFileSync('./settings/ngegas.json'))
  const setting = JSON.parse(fs.readFileSync('./settings/setting.json'))
  const welcome = JSON.parse(fs.readFileSync('./settings/welcome.json'))
  
  let antisticker = JSON.parse(fs.readFileSync('./lib/helper/antisticker.json'))
  let stickerspam = JSON.parse(fs.readFileSync('./lib/helper/stickerspam.json'))
  let antilink = JSON.parse(fs.readFileSync('./lib/helper/antilink.json'))
  
  let { 
      ownerNumber, 
      groupLimit, 
      memberLimit,
      prefix
  } = setting
  
  const {
      apiNoBg,
       apiSimi,
       vhtearkey
  } = JSON.parse(fs.readFileSync('./settings/api.json'))
  
  function formatin(duit){
      let	reverse = duit.toString().split('').reverse().join('');
      let ribuan = reverse.match(/\d{1,3}/g);
      ribuan = ribuan.join('.').split('').reverse().join('');
      return ribuan;
  }
  
  const inArray = (needle, haystack) => {
      let length = haystack.length;
      for(let i = 0; i < length; i++) {
          if(haystack[i].id == needle) return i;
      }
      return false;
  }
  
  module.exports = HandleMsg = async (dxxoo, message) => {
      try {
          const { type, id, from, t, sender, author, isGroupMsg, chat, chatId, caption, isMedia, mimetype, quotedMsg, quotedMsgObj, mentionedJidList } = message
          let { body } = message
          var { name, formattedTitle } = chat
          let { pushname, verifiedName, formattedName } = sender
          pushname = pushname || verifiedName || formattedName // verifiedName is the name of someone who uses a business account
          const botNumber = await dxxoo.getHostNumber() + '@c.us'
          const groupId = isGroupMsg ? chat.groupMetadata.id : ''
          const groupAdmins = isGroupMsg ? await dxxoo.getGroupAdmins(groupId) : ''
          const isGroupAdmins = groupAdmins.includes(sender.id) || false
  		const chats = (type === 'chat') ? body : (type === 'image' || type === 'video') ? caption : ''
          const pengirim = sender.id
          const GroupLinkDetector = antilink.includes(chatId)
          const AntiStickerSpam = antisticker.includes(chatId)
          const stickermsg = message.type === 'sticker'
          const isBotGroupAdmins = groupAdmins.includes(botNumber) || false
  
          // Bot Prefix
          body = (type === 'chat' && body.startsWith(prefix)) ? body : ((type === 'image' && caption || type === 'video' && caption) && caption.startsWith(prefix)) ? caption : ''
          const command = body.slice(1).trim().split(/ +/).shift().toLowerCase()
          const arg = body.trim().substring(body.indexOf(' ') + 1)
          const args = body.trim().split(/ +/).slice(1)
  		const argx = chats.slice(0).trim().split(/ +/).shift().toLowerCase()
          const isCmd = body.startsWith(prefix)
          const uaOverride = process.env.UserAgent
          const url = args.length !== 0 ? args[0] : ''
          const isQuotedImage = quotedMsg && quotedMsg.type === 'image'
  	    const isQuotedVideo = quotedMsg && quotedMsg.type === 'video'
          const emojiUnicode = require('emoji-unicode')
          const canvas = require('canvacord')
          const ms = require('parse-ms')
          const toMs = require('ms')
          const q = args.join(' ')
  		// [IDENTIFY]
  		const isOwnerBot = ownerNumber.includes(pengirim)
          const isBanned = banned.includes(pengirim)
  		const isSimi = simi.includes(chatId)
  		const isNgegas = ngegas.includes(chatId)
  		const isKasar = await cariKasar(chats)
  
          const apakah = [
              'Ya',
              'Tidak',
              'Coba Ulangi'
              ]
  
          const bisakah = [
              'Bisa',
              'Tidak Bisa',
              'Coba Ulangi'
              ]
  
          const kapankah = [
              '1 Minggu lagi',
              '1 Bulan lagi',
              '1 Tahun lagi'
              ]
  
          const rate = [
              '100%',
              '95%',
              '90%',
              '85%',
              '80%',
              '75%',
              '70%',
              '65%',
              '60%',
              '55%',
              '50%',
              '45%',
              '40%',
              '35%',
              '30%',
              '25%',
              '20%',
              '15%',
              '10%',
              '5%'
              ]
  
          const santet = [
              'Muntah Paku',
              'Meninggoy',
              'Berak Paku',
              'Muntah Rambut',
              'Ketempelan MONYET!!!',
              'Berak di Celana Terus',
              'Menjadi Gila',
              'Menjadi manusiawi'
              ]
  
          const kutuk = [
              'Sapi',
              'Batu',
              'Babi',
              'Anak soleh dan soleha',
              'pohon pisang',
              'janda',
              'bangsat',
              'buaya',
              'Jangkrik',
              'Kambbiingg',
              'Bajing',
              'kang seblak',
              'kang gorengan',
              'kang siomay',
              'badut ancol',
              'Tai',
              'Kebo',
              'Badak biar Asli',
              'tai kotok',
              'Bwebwek',
              'Orang Suksesss...... tapi boong',
              'Beban Keluarga' //tambahin  aja
              ]
  
          // [BETA] Avoid Spam Message
          if (isCmd && msgFilter.isFiltered(from) && !isGroupMsg) { return console.log(color('[SPAM]', 'red'), color(moment(t * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname)) }
          if (isCmd && msgFilter.isFiltered(from) && isGroupMsg) { return console.log(color('[SPAM]', 'red'), color(moment(t * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname), 'in', color(name || formattedTitle)) }
          //
          if(!isCmd && isKasar && isGroupMsg) { console.log(color('[BADW]', 'orange'), color(moment(t * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`${argx}`), 'from', color(pushname), 'in', color(name || formattedTitle)) }
          if (isCmd && !isGroupMsg) { console.log(color('[EXEC]'), color(moment(t * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname)) }
          if (isCmd && isGroupMsg) { console.log(color('[EXEC]'), color(moment(t * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname), 'in', color(name || formattedTitle)) }
  
          function isStickerMsg(id){
              if (isOwner) {return false;}
              let found = false;
              for (let i of stickerspam){
                  if(i.id === id){
                      if (i.msg >= 7) {
                          found === true 
                          dxxoo.reply(from, '*[ANTI STICKER SPAM]*\nKamu telah SPAM STICKER di grup, kamu akan di kick otomatis oleh bot', message.id).then(() => {
                              dxxoo.removeParticipant(groupId, id)
                          }).then(() => {
                              const cus = id
                              var found = false
                              Object.keys(stickerspam).forEach((i) => {
                                  if(stickerspam[i].id == cus){
                                      found = i
                                  }
                              })
                              if (found !== false) {
                                  stickerspam[found].msg = 1;
                                  const result = '✅ DB Sticker Spam has been reset'
                                  console.log(stickerspam[found])
                                  fs.writeFileSync('./lib/helper/stickerspam.json',JSON.stringify(stickerspam));
                                  dxxoo.sendText(from, result)
                              } else {
                                      dxxoo.reply(from, `${monospace(`Di database ngga ada nomer itu ngab`)}`, id)
                              }
                          })
                          return true;
                      }else{
                          found === true
                          return false;
                      }   
                  }
              }
              if (found === false){
                  let obj = {id: `${id}`, msg:1};
                  stickerspam.push(obj);
                  fs.writeFileSync('./lib/helper/stickerspam.json',JSON.stringify(stickerspam));
                  return false;
              }  
          }
          function addStickerCount(id){
              if (isOwner) {return;}
              var found = false
              Object.keys(stickerspam).forEach((i) => {
                  if(stickerspam[i].id == id){
                      found = i
                  }
              })
              if (found !== false) {
                  stickerspam[found].msg += 1;
                  fs.writeFileSync('./lib/helper/stickerspam.json',JSON.stringify(stickerspam));
              }
          }
  
          //fitur anti link
          if (isGroupMsg && GroupLinkDetector && !isGroupAdmins && !isOwner){
              if (chats.match(/(https:\/\/chat.whatsapp.com)/gi)) {
                  const check = await dxxoo.inviteInfo(chats);
                  if (!check) {
                      return
                  } else {
                      dxxoo.reply(from, '*[GROUP LINK DETECTOR]*\nKamu mengirimkan link grup chat, maaf kamu di kick dari grup :(', id).then(() => {
                          dxxoo.removeParticipant(groupId, sender.id)
                      })
                  }
              }
          }
  
  
          if (isGroupMsg && AntiStickerSpam && !isGroupAdmins && !isOwner){
              if(stickermsg === true){
                  if(isStickerMsg(serial)) return
                  addStickerCount(serial)
              }
          }
  
          // [BETA] Avoid Spam Message
          msgFilter.addFilter(from)
  	
  	//[AUTO READ] Auto read message 
  	dxxoo.sendSeen(chatId)
  	    
  	// Filter Banned People
          if (isBanned) {
              return console.log(color('[BAN]', 'red'), color(moment(t * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname))
          }
  		
          switch (command) {
          // Menu and TnC
          case 'speed':
          case 'ping':
              await dxxoo.sendText(from, `Pong!!!!\nSpeed: ${processTime(t, moment())} _Second_`)
              break
          case 'tnc':
              await dxxoo.sendText(from, menuId.textTnC())
              break
          case 'notes':
          case 'menu':
          case 'help':
              await dxxoo.sendText(from, menuId.textMenu(pushname))
              .then(() => ((isGroupMsg) && (isGroupAdmins)) ? dxxoo.sendText(from, `Menu Admin Grup: *${prefix}menuadmin*`) : null)
              break
          case 'menuadmin':
              if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              await dxxoo.sendText(from, menuId.textAdmin())
              break
          case 'donate':
          case 'donasi':
              await dxxoo.sendText(from, menuId.textDonasi())
              break
          case 'ownerbot':
              await dxxoo.sendContact(from, ownerNumber)
              .then(() => dxxoo.sendText(from, 'Jika kalian ingin request fitur silahkan chat nomor owner!'))
              break
          case 'join':
              if (args.length == 0) return dxxoo.reply(from, `Jika kalian ingin mengundang bot kegroup silahkan invite atau dengan\nketik ${prefix}join [link group]`, id)
              let linkgrup = body.slice(6)
              let islink = linkgrup.match(/(https:\/\/chat.whatsapp.com)/gi)
              let chekgrup = await dxxoo.inviteInfo(linkgrup)
              if (!islink) return dxxoo.reply(from, 'Maaf link group-nya salah! silahkan kirim link yang benar', id)
              if (isOwnerBot) {
                  await dxxoo.joinGroupViaLink(linkgrup)
                        .then(async () => {
                            await dxxoo.sendText(from, 'Berhasil join grup via link!')
                            await dxxoo.sendText(chekgrup.id, `Hai minna~, Im Aruga Bot. To find out the commands on this Bot type ${prefix}menu`)
                        })
              } else {
                  let cgrup = await dxxoo.getAllGroups()
                  if (cgrup.length > groupLimit) return dxxoo.reply(from, `Sorry, the group on this bot is full\nMax Group is: ${groupLimit}`, id)
                  if (cgrup.size < memberLimit) return dxxoo.reply(from, `Sorry, Bot wil not join if the group members do not exceed ${memberLimit} people`, id)
                  await dxxoo.joinGroupViaLink(linkgrup)
                        .then(async () =>{
                            await dxxoo.reply(from, 'Berhasil join grup via link!', id)
                        })
                        .catch(() => {
                            dxxoo.reply(from, 'Gagal!', id)
                        })
              }
              break
          case 'botstat': {
              const loadedMsg = await dxxoo.getAmountOfLoadedMessages()
              const chatIds = await dxxoo.getAllChatIds()
              const groups = await dxxoo.getAllGroups()
              dxxoo.sendText(from, `Status :\n- *${loadedMsg}* Loaded Messages\n- *${groups.length}* Group Chats\n- *${chatIds.length - groups.length}* Personal Chats\n- *${chatIds.length}* Total Chats`)
              break
          }
  
  	//Sticker Converter
  
         case 'emojisticker':
              if (args.length !== 1) return aruga.reply(from, 'Kirim perintah #emojisticker [emoji]\nContoh : #emojisticker 😫', id)
              const emoji = emojiUnicode(q)
              await aruga.reply(from, `Wait....`, id)
              console.log(`Creating code emoji => ${emoji}`)
              aruga.sendStickerfromUrl(from, `https://api.vhtear.com/emojitopng?code=${emoji}&apikey=${vhtearkey}`)
               .catch ((err) => {
                  console.log(err)
                  aruga.reply(from, 'Maaf, emoji yang kamu kirim tidak support untuk dijadikan sticker, cobalah emoji lain', id)
                  aruga.sendText(ownerNumber, 'Sepertinya emojisticker sedang error : ' + err);
              })
              break
  	case 'stikertoimg':
  	case 'stickertoimg':
  	case 'stimg':
              if (quotedMsg && quotedMsg.type == 'sticker') {
                  const mediaData = await decryptMedia(quotedMsg)
                  dxxoo.reply(from, `Sedang di proses! Silahkan tunggu sebentar...`, id)
                  const imageBase64 = `data:${quotedMsg.mimetype};base64,${mediaData.toString('base64')}`
                  await dxxoo.sendFile(from, imageBase64, 'imgsticker.jpg', 'Berhasil convert Sticker to Image!', id)
                  .then(() => {
                      console.log(`Sticker to Image Processed for ${processTime(t, moment())} Seconds`)
                  })
          } else if (!quotedMsg) return dxxoo.reply(from, `Format salah, silahkan tag sticker yang ingin dijadikan gambar!`, id)
          break
  			
  			
          // Sticker Creator
                 case 'jail':
                    if (!isGroupMsg) return aruga.reply(from, `Perintah ini hanya bisa di gunakan dalam group!`, id)
                  try {
                      if (isMedia && isImage) {
                          const ppRaw = await decryptMedia(message, uaOverride)
                          canvas.Canvas.jail(ppRaw)
                              .then(async (buffer) => {
                                  canvas.write(buffer, `${sender.id}_hitlered.jpg`)
                                  await aruga.sendFile(from, `${sender.id}_hitlered.jpg`, `${sender.id}_hitlered.jpg`, '', id)
                                  fs.unlinkSync(`${sender.id}_hitlered.jpg`)
                              })
                      } else if (quotedMsg) {
                          const ppRaw = await aruga.getProfilePicFromServer(quotedMsgObj.sender.id)
                          canvas.Canvas.jail(ppRaw)
                              .then(async (buffer) => {
                                  canvas.write(buffer, `${sender.id}_hitlered.jpg`)
                                  await aruga.sendFile(from, `${sender.id}_hitlered.jpg`, `${sender.id}_hitlered.jpg`, '', id)
                                  fs.unlinkSync(`${sender.id}_hitlered.jpg`)
                              })
                      } else {
                          const ppRaw = await aruga.getProfilePicFromServer(sender.id)
                          canvas.Canvas.jail(ppRaw)
                              .then(async (buffer) => {
                                  canvas.write(buffer, `${sender.id}_hitlered.jpg`)
                                  await aruga.sendFile(from, `${sender.id}_hitlered.jpg`, `${sender.id}_hitlered.jpg`, 'Done, Jika ingin Foto Orang yang ingin di Penjara silahkan kirim foto/link image dengan caption #Penjara', id)
                                  fs.unlinkSync(`${sender.id}_hitlered.jpg`)
                              })
                      }
                  } catch (err) {
                      console.error(err)
                      await aruga.reply(from, `Error!\n${err}`, id)
                  }
              break
                  case 'kiss':
                    if (!isGroupMsg) return aruga.reply(from, `Perintah ini hanya bisa di gunakan dalam group!`, id)
                       try {
                        if (isMedia && isImage) {
                          const ppRaw = await aruga.getProfilePicFromServer(sender.id)
                          const ppSecond = await decryptMedia(message, uaOverride)
                          if (ppRaw === undefined) {
                              var ppFirst = errorImg
                          } else {
                              var ppFirst = ppRaw
                          }
                          canvas.Canvas.kiss(ppFirst, ppSecond)
                              .then(async (buffer) => {
                                  canvas.write(buffer, `${sender.id}_kiss.png`)
                                  await aruga.sendFile(from, `${sender.id}_kiss.png`, `${sender.id}_kiss.png`, 'Done, Jika ingin Foto Orang yang ingin di kiss silahkan kirim foto dengan caption #kiss', id)
                                  fs.unlinkSync(`${sender.id}_kiss.png`)
                              })
                      } else if (quotedMsg) {
                          const ppRaw = await aruga.getProfilePicFromServer(sender.id)
                          const ppSecond = await aruga.getProfilePicFromServer(quotedMsgObj.sender.id)
                          if (ppRaw === undefined) {
                              var ppFirst = errorImg
                          } else {
                              var ppFirst = ppRaw
                          }
                          canvas.Canvas.kiss(ppFirst, ppSecond)
                              .then(async (buffer) => {
                                  canvas.write(buffer, `${sender.id}_kiss.png`)
                                  await aruga.sendFile(from, `${sender.id}_kiss.png`, `${sender.id}_kiss.png`, '', id)
                                  fs.unlinkSync(`${sender.id}_kiss.png`)
                              })
                      }
                  } catch (err) {
                      console.error(err)
                      await aruga.reply(from, `Error!\n${err}`, id)
                  }
              break
      case 'logopornhub':
              if (args.length === 1) return dxxoo.reply(from, `Kirim perintah *#logopornhub [ |Teks1|Teks2 ]*,\n\n contoh : *#pornhub |Dimas| HUB*`, id)
              argz = body.trim().split('|')
              if (argz.length >= 2) {
                  dxxoo.reply(from, `sabar brok eug proses dolo....`, id)
                  const lpornhub = argz[1]
                  const lpornhub2 = argz[2]   
                  if (lpornhub > 10) return dxxoo.reply(from, '*Teks1 Terlalu Panjang!*\n_Maksimal 10 huruf!_', id)
                  if (lpornhub2 > 10) return dxxoo.reply(from, '*Teks2 Terlalu Panjang!*\n_Maksimal 10 huruf!_', id)
                  dxxoo.sendFileFromUrl(from, `https://docs-jojo.herokuapp.com/api/phblogo?text1=${lpornhub}&text2=${lpornhub2}`)
              } else {
                  await dxxoo.reply(from, `Wrong Format!\n[❗] Kirim perintah *#pornhub [ |Teks1| Teks2 ]*,\n\n contoh : *#logopornhub |Dimas| HUB*`, id)
              }
              break
      case 'blackpink':
  
              if (args.length == 0) return dxxoo.reply(from, `Membuat Gambar Text BlackPink\nPemakaian: ${prefix}blackpink [teks]\n\ncontoh: ${prefix}blackpink Dimas`, id)
                  await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating Blackpink text...')
                  const lblackpink = body.slice(11)
                  await dxxoo.sendFileFromUrl(from, `https://docs-jojo.herokuapp.com/api/blackpink?text=${lblackpink}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'text3d':
  
              if (args.length == 0) return dxxoo.reply(from, `Membuat Gambar Text 3D\nPemakaian: ${prefix}text3d [teks]\n\ncontoh: ${prefix}text3d Dimas`, id)
                  await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating text3d text...')
                  const ltext3d = body.slice(8)
                  await dxxoo.sendFileFromUrl(from, `https://docs-jojo.herokuapp.com/api/text3d?text=${ltext3d}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'hartatahta':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
      if (args.length == 0) return dxxoo.reply(from, `Membuat Text Gambar Hartatahta\nPemakaian: ${prefix}hartatahta [teks]\n\ncontoh: ${prefix}hartatahta Dimas`, id)
                      await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating Hartatahta text...')
                  const lhartatahta = body.slice(12)
                  await dxxoo.sendFileFromUrl(from, `https://api.vhtear.com/hartatahta?text=${lhartatahta}&apikey=${vhtearkey}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'thundertext':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
      if (args.length == 0) return dxxoo.reply(from, `Membuat Text Gambar thunder\nPemakaian: ${prefix}thundertext [teks]\n\ncontoh: ${prefix}thundertext Dimas`, id)
                      await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating Thunder text...')
                  const lthundertext = body.slice(13)
                  await dxxoo.sendFileFromUrl(from, `https://api.vhtear.com/thundertext?text=${lthundertext}&apikey=${vhtearkey}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'slidingtext':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
      if (args.length == 0) return dxxoo.reply(from, `Membuat Text Sliding\nPemakaian: ${prefix}slidingtext [teks]\n\ncontoh: ${prefix}slidingtext Dimas`, id)
                      await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating slidingtext text...')
                  const lslidingtext = body.slice(13)
                  await dxxoo.sendFileFromUrl(from, `https://api.vhtear.com/slidingtext?text=${lslidingtext}&apikey=${vhtearkey}`, '', 'neh....', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'lovemessagetext':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
      if (args.length == 0) return dxxoo.reply(from, `Membuat Text jadi Gambar lovemessage\nPemakaian: ${prefix}lovemessagetext [teks]\n\ncontoh: ${prefix}lovemessagetext Dimas D`, id)
                      await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating lovemessagetext text...')
                  const llovemessagetext = body.slice(17)
                  await dxxoo.sendFileFromUrl(from, `https://api.vhtear.com/lovemessagetext?text=${llovemessagetext}&apikey=${vhtearkey}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'glowtext':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
      if (args.length == 0) return dxxoo.reply(from, `Membuat Text jadi Gambar ala ala glow gitu\nPemakaian: ${prefix}glowtext [teks]\n\ncontoh: ${prefix}glowtext Dimas D`, id)
                      await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating glowtext text...')
                  const lglowtext = body.slice(10)
                  await dxxoo.sendFileFromUrl(from, `https://api.vhtear.com/glowtext?text=${lglowtext}&apikey=${vhtearkey}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'romancetext':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
      if (args.length == 0) return dxxoo.reply(from, `Membuat Text jadi Gambar ala ala romance\nPemakaian: ${prefix}romancetext [teks]\n\ncontoh: ${prefix}romancetext Dimas dan Ujang`, id)
                      await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating romancetext text...')
                  const lpartytext = body.slice(11)
                  await dxxoo.sendFileFromUrl(from, `https://api.vhtear.com/romancetext?text=${lpartytext}&apikey=${vhtearkey}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'silktext':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
      if (args.length == 0) return dxxoo.reply(from, `Membuat Text jadi Gambar Nature\nPemakaian: ${prefix}textmaker [teks]\n\ncontoh: ${prefix}textmaker Dimas`, id)
                      await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating textmaker text...')
                  const lsilktext = body.slice(10)
                  await dxxoo.sendFileFromUrl(from, `https://api.vhtear.com/silktext?text=${lsilktext}&apikey=${vhtearkey}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
      case 'partytext':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
      if (args.length == 0) return dxxoo.reply(from, `Membuat Text jadi Gambar ala ala party\nPemakaian: ${prefix}partytext [teks]\n\ncontoh: ${prefix}partytext Dimas`, id)
                      await dxxoo.reply(from, `Wait....`, id)
                  console.log('Creating partytext text...')
                  const llpartytext = body.slice(11)
                  await dxxoo.sendFileFromUrl(from, `https://api.vhtear.com/partytext?text=${llpartytext}&apikey=${vhtearkey}`, '', 'Nih...', id)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await dxxoo.reply(from, `Error!`, id)
                      })
              break
  	/*case 'coolteks':
  	case 'cooltext':
              if (args.length == 0) return dxxoo.reply(from, `Untuk membuat teks keren CoolText pada gambar, gunakan ${prefix}cooltext teks\n\nContoh: ${prefix}cooltext arugaz`, id)
  		rugaapi.cooltext(args[0])
  		.then(async(res) => {
  		await dxxoo.sendFileFromUrl(from, `${res.link}`, '', `${res.text}`, id)
  		})
  		break*/
          case 'sticker':
          case 'stiker':
              if ((isMedia || isQuotedImage) && args.length === 0) {
                  const encryptMedia = isQuotedImage ? quotedMsg : message
                  const _mimetype = isQuotedImage ? quotedMsg.mimetype : mimetype
                  const mediaData = await decryptMedia(encryptMedia, uaOverride)
                  const imageBase64 = `data:${_mimetype};base64,${mediaData.toString('base64')}`
                  dxxoo.sendImageAsSticker(from, imageBase64)
                  .then(() => {
                      dxxoo.reply(from, 'Here\'s your sticker')
                      console.log(`Sticker Processed for ${processTime(t, moment())} Second`)
                  })
              } else if (args[0] === 'nobg') {
                  if (isMedia || isQuotedImage) {
                      try {
                      var mediaData = await decryptMedia(message, uaOverride)
                      var imageBase64 = `data:${mimetype};base64,${mediaData.toString('base64')}`
                      var base64img = imageBase64
                      var outFile = './media/noBg.png'
  		            // kamu dapat mengambil api key dari website remove.bg dan ubahnya difolder settings/api.json
                      var result = await removeBackgroundFromImageBase64({ base64img, apiKey: apiNoBg, size: 'auto', type: 'auto', outFile })
                      await fs.writeFile(outFile, result.base64img)
                      await dxxoo.sendImageAsSticker(from, `data:${mimetype};base64,${result.base64img}`)
                      } catch(err) {
                      console.log(err)
  	   	            await dxxoo.reply(from, 'Maaf batas penggunaan hari ini sudah mencapai maksimal', id)
                      }
                  }
              } else if (args.length === 1) {
                  if (!isUrl(url)) { await dxxoo.reply(from, 'Maaf, link yang kamu kirim tidak valid.', id) }
                  dxxoo.sendStickerfromUrl(from, url).then((r) => (!r && r !== undefined)
                      ? dxxoo.sendText(from, 'Maaf, link yang kamu kirim tidak memuat gambar.')
                      : dxxoo.reply(from, 'Here\'s your sticker')).then(() => console.log(`Sticker Processed for ${processTime(t, moment())} Second`))
              } else {
                  await dxxoo.reply(from, `Tidak ada gambar! Untuk menggunakan ${prefix}sticker\n\n\nKirim gambar dengan caption\n${prefix}sticker <biasa>\n${prefix}sticker nobg <tanpa background>\n\natau Kirim pesan dengan\n${prefix}sticker <link_gambar>`, id)
              }
              break
              case 'antisticker':
              case 'antistiker':
                      if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
                      if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
                      if (!isBotGroupAdmins) return dxxoo.reply(from, 'Wahai admin, jadikan saya sebagai admin grup dahulu :)', id)
                      if (args[0] == 'on') {
                          var cek = antisticker.includes(chatId);
                          if(cek){
                              return dxxoo.reply(from, '*Anti Spam Sticker Detector* sudah aktif di grup ini', id) //if number already exists on database
                          } else {
                              antisticker.push(chatId)
                              fs.writeFileSync('./lib/helper/antisticker.json', JSON.stringify(antisticker))
                              dxxoo.reply(from, '*[Anti Sticker SPAM]* telah di aktifkan\nSetiap member grup yang spam sticker lebih dari 7 akan di kick oleh bot!', id)
                          }
                      } else if (args[0] == 'off') {
                          var cek = antilink.includes(chatId);
                          if(cek){
                              return dxxoo.reply(from, '*Anti Spam Sticker Detector* sudah non-aktif di grup ini', id) //if number already exists on database
                          } else {
                              let nixx = antisticker.indexOf(chatId)
                              antisticker.splice(nixx, 1)
                              fs.writeFileSync('./lib/helper/antisticker.json', JSON.stringify(antisticker))
                              dxxoo.reply(from, '*[Anti Sticker SPAM]* telah di nonaktifkan\n', id)
                          }
                      } else {
                          dxxoo.reply(from, `pilih on / off\n\n*[Anti Sticker SPAM]*\nSetiap member grup yang spam sticker akan di kick oleh bot!`, id)
                      }
                      break
                      case 'antilink':
                      if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
                      if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
                      if (!isBotGroupAdmins) return dxxoo.reply(from, 'Wahai admin, jadikan saya sebagai admin grup dahulu :)', id)
                      if (args[0] == 'on') {
                          var cek = antilink.includes(chatId);
                          if(cek){
                              return dxxoo.reply(from, '*Anti Group Link Detector* sudah aktif di grup ini', id) //if number already exists on database
                          } else {
                              antilink.push(chatId)
                              fs.writeFileSync('./lib/helper/antilink.json', JSON.stringify(antilink))
                              dxxoo.reply(from, '*[Anti Group Link]* telah di aktifkan\nSetiap member grup yang mengirim pesan mengandung link grup akan di kick oleh bot!', id)
                          }
                      } else if (args[0] == 'off') {
                          var cek = antilink.includes(chatId);
                          if(!cek){
                              return dxxoo.reply(from, '*Anti Group Link Detector* sudah non-aktif di grup ini', id) //if number already exists on database
                          } else {
                              let nixx = antilink.indexOf(chatId)
                              antilink.splice(nixx, 1)
                              fs.writeFileSync('./lib/helper/antilink.json', JSON.stringify(antilink))
                              dxxoo.reply(from, '*[Anti Group Link]* telah di nonaktifkan\n', id)
                          }
                      } else {
                          dxxoo.reply(from, `pilih on / off\n\n*[Anti Group Link]*\nSetiap member grup yang mengirim pesan mengandung link grup akan di kick oleh bot!`, id)
                      }
                      break  
      case 'stickertext':
      if (args.length == 0) return aruga.reply(from, `Membuat Sticker Text\nPemakaian: ${prefix}stickertext [teks]\n\ncontoh: ${prefix}stickertext Dimas`, id)
                      await aruga.reply(from, `Wait....`, id)
                  console.log('Creating textxgif text...')
                  const ltextxgif = body.slice(13)
                  await aruga.sendStickerfromUrl(from, `https://api.vhtear.com/textxgif?text=${ltextxgif}&apikey=${vhtearkey}`)
                      .then(() => console.log('Success creting image!'))
                      .catch(async (err) => {
                          console.error(err)
                          await aruga.reply(from, `Error!`, id)
                      })
              break
          case 'stickergif':
          case 'stikergif':
              if (isMedia || isQuotedVideo) {
                  if (mimetype === 'video/mp4' && message.duration < 10 || mimetype === 'image/gif' && message.duration < 10) {
                      var mediaData = await decryptMedia(message, uaOverride)
                      dxxoo.reply(from, '[WAIT] Sedang di proses⏳ silahkan tunggu ± 1 min!', id)
                      var filename = `./media/stickergif.${mimetype.split('/')[1]}`
                      await fs.writeFileSync(filename, mediaData)
                      await exec(`gify ${filename} ./media/stickergf.gif --fps=30 --scale=240:240`, async function (error, stdout, stderr) {
                          var gif = await fs.readFileSync('./media/stickergf.gif', { encoding: "base64" })
                          await dxxoo.sendImageAsSticker(from, `data:image/gif;base64,${gif.toString('base64')}`)
                          .catch(() => {
                              dxxoo.reply(from, 'Maaf filenya terlalu besar!', id)
                          })
                      })
                    } else {
                      dxxoo.reply(from, `[❗] Kirim gif dengan caption *${prefix}stickergif* max 10 sec!`, id)
                     }
                  } else {
  		    dxxoo.reply(from, `[❗] Kirim gif dengan caption *${prefix}stickergif*`, id)
  	        }
              break
          case 'stikergiphy':
          case 'stickergiphy':
              if (args.length !== 1) return dxxoo.reply(from, `Maaf, format pesan salah.\nKetik pesan dengan ${prefix}stickergiphy <link_giphy>`, id)
              const isGiphy = url.match(new RegExp(/https?:\/\/(www\.)?giphy.com/, 'gi'))
              const isMediaGiphy = url.match(new RegExp(/https?:\/\/media.giphy.com\/media/, 'gi'))
              if (isGiphy) {
                  const getGiphyCode = url.match(new RegExp(/(\/|\-)(?:.(?!(\/|\-)))+$/, 'gi'))
                  if (!getGiphyCode) { return dxxoo.reply(from, 'Gagal mengambil kode giphy', id) }
                  const giphyCode = getGiphyCode[0].replace(/[-\/]/gi, '')
                  const smallGifUrl = 'https://media.giphy.com/media/' + giphyCode + '/giphy-downsized.gif'
                  dxxoo.sendGiphyAsSticker(from, smallGifUrl).then(() => {
                      dxxoo.reply(from, 'Here\'s your sticker')
                      console.log(`Sticker Processed for ${processTime(t, moment())} Second`)
                  }).catch((err) => console.log(err))
              } else if (isMediaGiphy) {
                  const gifUrl = url.match(new RegExp(/(giphy|source).(gif|mp4)/, 'gi'))
                  if (!gifUrl) { return dxxoo.reply(from, 'Gagal mengambil kode giphy', id) }
                  const smallGifUrl = url.replace(gifUrl[0], 'giphy-downsized.gif')
                  dxxoo.sendGiphyAsSticker(from, smallGifUrl)
                  .then(() => {
                      dxxoo.reply(from, 'Here\'s your sticker')
                      console.log(`Sticker Processed for ${processTime(t, moment())} Second`)
                  })
                  .catch(() => {
                      dxxoo.reply(from, `Ada yang error!`, id)
                  })
              } else {
                  await dxxoo.reply(from, 'Maaf, command sticker giphy hanya bisa menggunakan link dari giphy.  [Giphy Only]', id)
              }
              break
        case 'qrread':
          if (args.length !== 1) return dxxoo.reply(from, `Untuk menggunakan fitur qrread, ketik :\n${prefix}qrread url\n\nContoh: ${prefix}qrcode https://i.ibb.co/phSpp2h/00bed2bb-8b90-4d49-ace1-fe0ac9f73dff.jpg\n\n*Note : Upload terlebih dahaulu qrcode kamu ke https://id.imgbb.com/, kemudian copy url gambar qrcode kamu*`, id)
          dxxoo.reply(from, `wait...`, id);
          rugaapi.qrread(args[0])
          .then(async (res) => {
            await dxxoo.reply(from, `${res}`, id)
          })
        break
      case 'qrcode':
          if (args.length !== 2) return dxxoo.reply(from, `Untuk menggunakan fitur qrcode, ketik :\n${prefix}qrcode [kata/url] [size]\n\nContoh: ${prefix}qrcode https://google.com 300\n\n*Size minimal 100 & maksimal 500*`, id)
          dxxoo.reply(from, `wait...`, id);
          rugaapi.qrcode(args[0], args[1])
          .then(async (res) => {
            await dxxoo.sendFileFromUrl(from, `${res}`, id)
          })
        break			
          case 'meme':
              if ((isMedia || isQuotedImage) && args.length >= 2) {
                  const top = arg.split('|')[0]
                  const bottom = arg.split('|')[1]
                  const encryptMedia = isQuotedImage ? quotedMsg : message
                  const mediaData = await decryptMedia(encryptMedia, uaOverride)
                  const getUrl = await uploadImages(mediaData, false)
                  const ImageBase64 = await meme.custom(getUrl, top, bottom)
                  dxxoo.sendFile(from, ImageBase64, 'image.png', '', null, true)
                      .then(() => {
                          dxxoo.reply(from, 'Ini makasih!',id)
                      })
                      .catch(() => {
                          dxxoo.reply(from, 'Ada yang error!')
                      })
              } else {
                  await dxxoo.reply(from, `Tidak ada gambar! Silahkan kirim gambar dengan caption ${prefix}meme <teks_atas> | <teks_bawah>\ncontoh: ${prefix}meme teks atas | teks bawah`, id)
              }
              break
          case 'quotemaker':
              const qmaker = body.trim().split('|')
              if (qmaker.length >= 3) {
                  const quotes = qmaker[1]
                  const author = qmaker[2]
                  const theme = qmaker[3]
                  dxxoo.reply(from, 'Proses kak..', id)
                  try {
                      const hasilqmaker = await images.quote(quotes, author, theme)
                      dxxoo.sendFileFromUrl(from, `${hasilqmaker}`, '', 'Ini kak..', id)
                  } catch {
                      dxxoo.reply('Yahh proses gagal, kakak isinya sudah benar belum?..', id)
                  }
              } else {
                  dxxoo.reply(from, `Pemakaian ${prefix}quotemaker |isi quote|author|theme\n\ncontoh: ${prefix}quotemaker |aku sayang kamu|-dxxoo|random\n\nuntuk theme nya pakai random ya kak..`)
              }
              break
          case 'nulis':
              if (args.length == 0) return dxxoo.reply(from, `Membuat bot menulis teks yang dikirim menjadi gambar\nPemakaian: ${prefix}nulis [teks]\n\ncontoh: ${prefix}nulis i love you 3000`, id)
              const nulisq = body.slice(7)
              const nulisp = await rugaapi.tulis(nulisq)
              await dxxoo.sendImage(from, `${nulisp}`, '', 'Nih...', id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
  
      //Education
          case 'wiki':
              if (args.length == 0) return dxxoo.reply(from, `Untuk mencari suatu kata dari wikipedia\nketik: ${prefix}wiki [kata]`, id)
              const wikip = body.slice(6)
              const wikis = await rugaapi.wiki(wikip)
              await dxxoo.reply(from, wikis, id)
              .catch(() => {
                  dxxoo.reply(from, 'Hayolohhh, ada yang error!!', id)
              })
              break
          case 'kbbi':
              if (args.length == 0) return dxxoo.reply(from, `Untuk mencari suatu kata dari Kamus Besar Bahasa Indonesia (KBBI)\nketik: ${prefix}kbbi [kata]`, id)
              const kbbip = body.slice(6)
              const kbbis = await rugaapi.kbbi(kbbip)
              await dxxoo.reply(from, kbbis, id)
              .catch(() => {
                  dxxoo.reply(from, 'Hayolohhh, ada yang error!!', id)
              })
              break 
      case 'brainly':
  
              if (args.length >= 2){
                  const BrainlySearch = require('./lib/brainly')
                  let tanya = body.slice(9)
                  let jum = Number(tanya.split('/')[1]) || 2
                  if (jum > 10) return dxxoo.reply(from, 'Max 10!', id)
                  if (Number(tanya[tanya.length-1])){
                      tanya
                  }
                  dxxoo.reply(from, `➸ *Pertanyaan* : ${tanya.split('.')[0]}\n\n➸ *Jumlah jawaban* : ${Number(jum)}`, id)
                  await BrainlySearch(tanya.split('/')[0],Number(jum), function(res){
                      res.forEach(x=>{
                          if (x.jawaban.fotoJawaban.length == 0) {
                              dxxoo.reply(from, `➸ *Pertanyaan* : ${x.pertanyaan}\n\n➸ *Jawaban* : ${x.jawaban.judulJawaban}\n`, id)
                  dxxoo.sendText(from, 'Selesai ✅, Jangan Lupa Bilang Makasih')
                          } else {
                              dxxoo.reply(from, `➸ *Pertanyaan* : ${x.pertanyaan}\n\n➸ *Jawaban* 〙: ${x.jawaban.judulJawaban}\n\n➸ *Link foto jawaban* : ${x.jawaban.fotoJawaban.join('\n')}`, id)
                          }
                      })
                  })
              } else {
                  dxxoo.reply(from, 'Usage :\n#brainly [pertanyaan] [.jumlah]\n\nEx : \n#brainly NKRI /2', id)
              }
              break
  
          //Islam Command
          case 'listsurah':
              try {
                  axios.get('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/islam/surah.json')
                  .then((response) => {
                      let hehex = '╔══✪〘 List Surah 〙✪══\n'
                      for (let i = 0; i < response.data.data.length; i++) {
                          hehex += '╠➥ '
                          hehex += response.data.data[i].name.transliteration.id.toLowerCase() + '\n'
                              }
                          hehex += '╚═〘 *O C T O P U S - B O T* 〙'
                      dxxoo.reply(from, hehex, id)
                  })
              } catch(err) {
                  dxxoo.reply(from, err, id)
              }
              break
          case 'infosurah':
              if (args.length == 0) return dxxoo.reply(from, `*_${prefix}infosurah <nama surah>_*\nMenampilkan informasi lengkap mengenai surah tertentu. Contoh penggunan: ${prefix}infosurah al-baqarah`, message.id)
                  var responseh = await axios.get('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/islam/surah.json')
                  var { data } = responseh.data
                  var idx = data.findIndex(function(post, index) {
                    if((post.name.transliteration.id.toLowerCase() == args[0].toLowerCase())||(post.name.transliteration.en.toLowerCase() == args[0].toLowerCase()))
                      return true;
                  });
                  var pesan = ""
                  pesan = pesan + "Nama : "+ data[idx].name.transliteration.id + "\n" + "Asma : " +data[idx].name.short+"\n"+"Arti : "+data[idx].name.translation.id+"\n"+"Jumlah ayat : "+data[idx].numberOfVerses+"\n"+"Nomor surah : "+data[idx].number+"\n"+"Jenis : "+data[idx].revelation.id+"\n"+"Keterangan : "+data[idx].tafsir.id
                  dxxoo.reply(from, pesan, message.id)
                break
          case 'surah':
              if (args.length == 0) return dxxoo.reply(from, `*_${prefix}surah <nama surah> <ayat>_*\nMenampilkan ayat Al-Quran tertentu beserta terjemahannya dalam bahasa Indonesia. Contoh penggunaan : ${prefix}surah al-baqarah 1\n\n*_${prefix}surah <nama surah> <ayat> en/id_*\nMenampilkan ayat Al-Quran tertentu beserta terjemahannya dalam bahasa Inggris / Indonesia. Contoh penggunaan : ${prefix}surah al-baqarah 1 id`, message.id)
                  var responseh = await axios.get('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/islam/surah.json')
                  var { data } = responseh.data
                  var idx = data.findIndex(function(post, index) {
                    if((post.name.transliteration.id.toLowerCase() == args[0].toLowerCase())||(post.name.transliteration.en.toLowerCase() == args[0].toLowerCase()))
                      return true;
                  });
                  nmr = data[idx].number
                  if(!isNaN(nmr)) {
                    var responseh2 = await axios.get('https://api.quran.sutanlab.id/surah/'+nmr+"/"+args[1])
                    var {data} = responseh2.data
                    var last = function last(array, n) {
                      if (array == null) return void 0;
                      if (n == null) return array[array.length - 1];
                      return array.slice(Math.max(array.length - n, 0));
                    };
                    bhs = last(args)
                    pesan = ""
                    pesan = pesan + data.text.arab + "\n\n"
                    if(bhs == "en") {
                      pesan = pesan + data.translation.en
                    } else {
                      pesan = pesan + data.translation.id
                    }
                    pesan = pesan + "\n\n(Q.S. "+data.surah.name.transliteration.id+":"+args[1]+")"
                    dxxoo.reply(from, pesan, message.id)
                  }
                break
          case 'tafsir':
              if (args.length == 0) return dxxoo.reply(from, `*_${prefix}tafsir <nama surah> <ayat>_*\nMenampilkan ayat Al-Quran tertentu beserta terjemahan dan tafsirnya dalam bahasa Indonesia. Contoh penggunaan : ${prefix}tafsir al-baqarah 1`, message.id)
                  var responsh = await axios.get('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/islam/surah.json')
                  var {data} = responsh.data
                  var idx = data.findIndex(function(post, index) {
                    if((post.name.transliteration.id.toLowerCase() == args[0].toLowerCase())||(post.name.transliteration.en.toLowerCase() == args[0].toLowerCase()))
                      return true;
                  });
                  nmr = data[idx].number
                  if(!isNaN(nmr)) {
                    var responsih = await axios.get('https://api.quran.sutanlab.id/surah/'+nmr+"/"+args[1])
                    var {data} = responsih.data
                    pesan = ""
                    pesan = pesan + "Tafsir Q.S. "+data.surah.name.transliteration.id+":"+args[1]+"\n\n"
                    pesan = pesan + data.text.arab + "\n\n"
                    pesan = pesan + "_" + data.translation.id + "_" + "\n\n" +data.tafsir.id.long
                    dxxoo.reply(from, pesan, message.id)
                }
                break
          case 'alaudio':
              if (args.length == 0) return dxxoo.reply(from, `*_${prefix}ALaudio <nama surah>_*\nMenampilkan tautan dari audio surah tertentu. Contoh penggunaan : ${prefix}ALaudio al-fatihah\n\n*_${prefix}ALaudio <nama surah> <ayat>_*\nMengirim audio surah dan ayat tertentu beserta terjemahannya dalam bahasa Indonesia. Contoh penggunaan : ${prefix}ALaudio al-fatihah 1\n\n*_${prefix}ALaudio <nama surah> <ayat> en_*\nMengirim audio surah dan ayat tertentu beserta terjemahannya dalam bahasa Inggris. Contoh penggunaan : ${prefix}ALaudio al-fatihah 1 en`, message.id)
                ayat = "ayat"
                bhs = ""
                  var responseh = await axios.get('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/islam/surah.json')
                  var surah = responseh.data
                  var idx = surah.data.findIndex(function(post, index) {
                    if((post.name.transliteration.id.toLowerCase() == args[0].toLowerCase())||(post.name.transliteration.en.toLowerCase() == args[0].toLowerCase()))
                      return true;
                  });
                  nmr = surah.data[idx].number
                  if(!isNaN(nmr)) {
                    if(args.length > 2) {
                      ayat = args[1]
                    }
                    if (args.length == 2) {
                      var last = function last(array, n) {
                        if (array == null) return void 0;
                        if (n == null) return array[array.length - 1];
                        return array.slice(Math.max(array.length - n, 0));
                      };
                      ayat = last(args)
                    } 
                    pesan = ""
                    if(isNaN(ayat)) {
                      var responsih2 = await axios.get('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/islam/surah/'+nmr+'.json')
                      var {name, name_translations, number_of_ayah, number_of_surah,  recitations} = responsih2.data
                      pesan = pesan + "Audio Quran Surah ke-"+number_of_surah+" "+name+" ("+name_translations.ar+") "+ "dengan jumlah "+ number_of_ayah+" ayat\n"
                      pesan = pesan + "Dilantunkan oleh "+recitations[0].name+" : "+recitations[0].audio_url+"\n"
                      pesan = pesan + "Dilantunkan oleh "+recitations[1].name+" : "+recitations[1].audio_url+"\n"
                      pesan = pesan + "Dilantunkan oleh "+recitations[2].name+" : "+recitations[2].audio_url+"\n"
                      dxxoo.reply(from, pesan, message.id)
                    } else {
                      var responsih2 = await axios.get('https://api.quran.sutanlab.id/surah/'+nmr+"/"+ayat)
                      var {data} = responsih2.data
                      var last = function last(array, n) {
                        if (array == null) return void 0;
                        if (n == null) return array[array.length - 1];
                        return array.slice(Math.max(array.length - n, 0));
                      };
                      bhs = last(args)
                      pesan = ""
                      pesan = pesan + data.text.arab + "\n\n"
                      if(bhs == "en") {
                        pesan = pesan + data.translation.en
                      } else {
                        pesan = pesan + data.translation.id
                      }
                      pesan = pesan + "\n\n(Q.S. "+data.surah.name.transliteration.id+":"+args[1]+")"
                      await dxxoo.sendFileFromUrl(from, data.audio.secondary[0])
                      await dxxoo.reply(from, pesan, message.id)
                    }
                }
                break
          case 'jsolat':
              if (args.length == 0) return dxxoo.reply(from, `Untuk melihat jadwal solat dari setiap daerah yang ada\nketik: ${prefix}jsolat [daerah]\n\nuntuk list daerah yang ada\nketik: ${prefix}daerah`, id)
              const solatx = body.slice(8)
              const solatj = await rugaapi.jadwaldaerah(solatx)
              await dxxoo.reply(from, solatj, id)
              .catch(() => {
                  dxxoo.reply(from, 'Pastikan daerah kamu ada di list ya!', id)
              })
              break
          case 'daerah':
              const daerahq = await rugaapi.daerah()
              await dxxoo.reply(from, daerahq, id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
  	//Group All User
  	case 'grouplink':
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!isBotGroupAdmins) return dxxoo.reply(from, 'Perintah ini hanya bisa di gunakan ketika bot menjadi admin', id)
              if (isGroupMsg) {
                  const inviteLink = await dxxoo.getGroupInviteLink(groupId);
                  dxxoo.sendLinkWithAutoPreview(from, inviteLink, `\nLink group *${name}* Gunakan *${prefix}revoke* untuk mereset Link group`)
              } else {
              	dxxoo.reply(from, 'Perintah ini hanya bisa di gunakan dalam group!', id)
              }
              break
  	case "revoke":
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
  	        if (!isBotGroupAdmins) return dxxoo.reply(from, 'Perintah ini hanya bisa di gunakan ketika bot menjadi admin', id)
                      if (isBotGroupAdmins) {
                          aruga
                              .revokeGroupInviteLink(from)
                              .then((res) => {
                                  dxxoo.reply(from, `Berhasil Revoke Grup Link gunakan *${prefix}grouplink* untuk mendapatkan group invite link yang terbaru`, id);
                              })
                              .catch((err) => {
                                  console.log(`[ERR] ${err}`);
                              });
                      }
                      break;
          //Media
              case 'ytmp3':
                  if (args.length == 0) return aruga.reply(from, `Untuk mendownload lagu dari youtube\nketik: ${prefix}ytmp3 [link_yt]`, id)
                  const linkmp3 = args[0].replace('https://youtu.be/','').replace('https://www.youtube.com/watch?v=','')
                  rugaapi.ytmp3(`https://youtu.be/${linkmp3}`)
                  .then(async(res) => {
                      if (res.error) return aruga.sendFileFromUrl(from, `${res.url}`, '', `${res.error}`)
                      await aruga.sendFileFromUrl(from, `${res.result.image}`, '', `Lagu ditemukan\n\nJudul: ${res.result.title}\nSize: ${res.result.size}\nDuration: ${res.result.duration}\n\nSabar sedang di prosesss....`, id)
                      await aruga.sendFileFromUrl(from, `${res.result.mp3}`, '.mp3', '', id)
                      .catch(() => {
                  aruga.reply(from, `URL INI ${args[0]} SUDAH PERNAH DI DOWNLOAD SEBELUMNYA ..URL AKAN RESET SETELAH 60 MENIT`, id)
              })
                  })
                  break
              case 'ytmp4':
                  if (args.length == 0) return aruga.reply(from, `Untuk mendownload lagu dari youtube\nketik: ${prefix}ytmp3 [link_yt]`, id)
                  const linkmp4 = args[0].replace('https://youtu.be/','').replace('https://www.youtube.com/watch?v=','')
                  rugaapi.ytmp4(`https://youtu.be/${linkmp4}`)
                  .then(async(res) => {
                      if (res.error) return aruga.sendFileFromUrl(from, `${res.url}`, '', `${res.error}`)
                      await aruga.sendFileFromUrl(from, `${res.result.imgUrl}`, '', `Video ditemukan\n\nJudul: ${res.result.title}\nSize: ${res.result.size}\n\nSabar sedang di prosesss....`, id)
                      await aruga.sendFileFromUrl(from, `${res.result.UrlVideo}`, '', '', id)
                      .catch(() => {
                          aruga.reply(from, `URL INI ${args[0]} SUDAH PERNAH DI DOWNLOAD SEBELUMNYA ..URL AKAN RESET SETELAH 60 MENIT`, id)
                      })
                  })
                  break
  		case 'fb':
  		case 'facebook':
  			if (args.length == 0) return dxxoo.reply(from, `Untuk mendownload video dari link facebook\nketik: ${prefix}fb [link_fb]`, id)
  			rugaapi.fb(args[0])
  			.then(async (res) => {
  				const { link, linkhd, linksd } = res
  				if (res.status == 'error') return dxxoo.sendFileFromUrl(from, link, '', 'Maaf url anda tidak dapat ditemukan', id)
  				await dxxoo.sendFileFromUrl(from, linkhd, '', 'Nih ngab videonya', id)
  				.catch(async () => {
  					await dxxoo.sendFileFromUrl(from, linksd, '', 'Nih ngab videonya', id)
  					.catch(() => {
  						dxxoo.reply(from, 'Maaf url anda tidak dapat ditemukan', id)
  					})
  				})
  			})
  			break
  			
  		//Primbon Menu
  		case 'cekzodiak':
              if (args.length !== 4) return dxxoo.reply(from, `Untuk mengecek zodiak, gunakan ${prefix}cekzodiak nama tanggallahir bulanlahir tahunlahir\nContoh: ${prefix}cekzodiak fikri 13 06 2004`, id)
              const cekzodiak = await rugaapi.cekzodiak(args[0],args[1],args[2])
              await dxxoo.reply(from, cekzodiak, id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
  		case 'artinama':
  			if (args.length == 0) return dxxoo.reply(from, `Untuk mengetahui arti nama seseorang\nketik ${prefix}artinama namakamu`, id)
              rugaapi.artinama(body.slice(10))
  			.then(async(res) => {
  				await dxxoo.reply(from, `Arti : ${res}`, id)
  			})
  			break
  		case 'cekjodoh':
  			if (args.length !== 2) return dxxoo.reply(from, `Untuk mengecek jodoh melalui nama\nketik: ${prefix}cekjodoh nama-kamu nama-pasangan\n\ncontoh: ${prefix}cekjodoh bagas siti\n\nhanya bisa pakai nama panggilan (satu kata)`)
  			rugaapi.cekjodoh(args[0],args[1])
  			.then(async(res) => {
  				await dxxoo.sendFileFromUrl(from, `${res.link}`, '', `${res.text}`, id)
  			})
  			break
  			
          // Random Kata
        	case 'motivasi':
              fetch('https://raw.githubusercontent.com/selyxn/motivasi/main/motivasi.txt')
              .then(res => res.text())
              .then(body => {
                  let splitmotivasi = body.split('\n')
                  let randommotivasi = splitmotivasi[Math.floor(Math.random() * splitmotivasi.length)]
                  dxxoo.reply(from, randommotivasi, id)
              })
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
  	      case 'howgay':
          		if (args.length == 0) return dxxoo.reply(from, `Untuk mengetahui seberapa gay seseorang gunakan ${prefix}howgay namanya\n\nContoh: ${prefix}howgay burhan`, id)
              fetch('https://raw.githubusercontent.com/MrPawNO/howgay/main/howgay.txt')
              .then(res => res.text())
              .then(body => {
                  let splithowgay = body.split('\n')
                  let randomhowgay = splithowgay[Math.floor(Math.random() * splithowgay.length)]
                  dxxoo.reply(from, randomhowgay, id)
              })
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'fakta':
              fetch('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/random/faktaunix.txt')
              .then(res => res.text())
              .then(body => {
                  let splitnix = body.split('\n')
                  let randomnix = splitnix[Math.floor(Math.random() * splitnix.length)]
                  dxxoo.reply(from, randomnix, id)
              })
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'katabijak':
              fetch('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/random/katabijax.txt')
              .then(res => res.text())
              .then(body => {
                  let splitbijak = body.split('\n')
                  let randombijak = splitbijak[Math.floor(Math.random() * splitbijak.length)]
                  dxxoo.reply(from, randombijak, id)
              })
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'pantun':
              fetch('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/random/pantun.txt')
              .then(res => res.text())
              .then(body => {
                  let splitpantun = body.split('\n')
                  let randompantun = splitpantun[Math.floor(Math.random() * splitpantun.length)]
                  dxxoo.reply(from, randompantun.replace(/aruga-line/g,"\n"), id)
              })
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'quote':
              const quotex = await rugaapi.quote()
              await dxxoo.reply(from, quotex, id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
      		case 'cerpen':
        			rugaapi.cerpen()
        			.then(async (res) => {
  		    		await dxxoo.reply(from, res.result, id)
        			})
  		      	break
  	     	case 'cersex':
  			      rugaapi.cersex()
  			      .then(async (res) => {
  			    	await dxxoo.reply(from, res.result, id)
  		      	})
  		      	break
  	    	case 'puisi':
  		      	rugaapi.puisi()
  		      	.then(async (res) => {
  			    	await dxxoo.reply(from, res.result, id)
  		      	})
  		      	break
  
          //Random Images
          case 'doggo':
                  const list = ["https://cdn.shibe.online/shibes/247d0ac978c9de9d9b66d72dbdc65f2dac64781d.jpg","https://cdn.shibe.online/shibes/1cf322acb7d74308995b04ea5eae7b520e0eae76.jpg","https://cdn.shibe.online/shibes/1ce955c3e49ae437dab68c09cf45297d68773adf.jpg","https://cdn.shibe.online/shibes/ec02bee661a797518d37098ab9ad0c02da0b05c3.jpg","https://cdn.shibe.online/shibes/1e6102253b51fbc116b887e3d3cde7b5c5083542.jpg","https://cdn.shibe.online/shibes/f0c07a7205d95577861eee382b4c8899ac620351.jpg","https://cdn.shibe.online/shibes/3eaf3b7427e2d375f09fc883f94fa8a6d4178a0a.jpg","https://cdn.shibe.online/shibes/c8b9fcfde23aee8d179c4c6f34d34fa41dfaffbf.jpg","https://cdn.shibe.online/shibes/55f298bc16017ed0aeae952031f0972b31c959cb.jpg","https://cdn.shibe.online/shibes/2d5dfe2b0170d5de6c8bc8a24b8ad72449fbf6f6.jpg","https://cdn.shibe.online/shibes/e9437de45e7cddd7d6c13299255e06f0f1d40918.jpg","https://cdn.shibe.online/shibes/6c32141a0d5d089971d99e51fd74207ff10751e7.jpg","https://cdn.shibe.online/shibes/028056c9f23ff40bc749a95cc7da7a4bb734e908.jpg","https://cdn.shibe.online/shibes/4fb0c8b74dbc7653e75ec1da597f0e7ac95fe788.jpg","https://cdn.shibe.online/shibes/125563d2ab4e520aaf27214483e765db9147dcb3.jpg","https://cdn.shibe.online/shibes/ea5258fad62cebe1fedcd8ec95776d6a9447698c.jpg","https://cdn.shibe.online/shibes/5ef2c83c2917e2f944910cb4a9a9b441d135f875.jpg","https://cdn.shibe.online/shibes/6d124364f02944300ae4f927b181733390edf64e.jpg","https://cdn.shibe.online/shibes/92213f0c406787acd4be252edb5e27c7e4f7a430.jpg","https://cdn.shibe.online/shibes/40fda0fd3d329be0d92dd7e436faa80db13c5017.jpg","https://cdn.shibe.online/shibes/e5c085fc427528fee7d4c3935ff4cd79af834a82.jpg","https://cdn.shibe.online/shibes/f83fa32c0da893163321b5cccab024172ddbade1.jpg","https://cdn.shibe.online/shibes/4aa2459b7f411919bf8df1991fa114e47b802957.jpg","https://cdn.shibe.online/shibes/2ef54e174f13e6aa21bb8be3c7aec2fdac6a442f.jpg","https://cdn.shibe.online/shibes/fa97547e670f23440608f333f8ec382a75ba5d94.jpg","https://cdn.shibe.online/shibes/fb1b7150ed8eb4ffa3b0e61ba47546dd6ee7d0dc.jpg","https://cdn.shibe.online/shibes/abf9fb41d914140a75d8bf8e05e4049e0a966c68.jpg","https://cdn.shibe.online/shibes/f63e3abe54c71cc0d0c567ebe8bce198589ae145.jpg","https://cdn.shibe.online/shibes/4c27b7b2395a5d051b00691cc4195ef286abf9e1.jpg","https://cdn.shibe.online/shibes/00df02e302eac0676bb03f41f4adf2b32418bac8.jpg","https://cdn.shibe.online/shibes/4deaac9baec39e8a93889a84257338ebb89eca50.jpg","https://cdn.shibe.online/shibes/199f8513d34901b0b20a33758e6ee2d768634ebb.jpg","https://cdn.shibe.online/shibes/f3efbf7a77e5797a72997869e8e2eaa9efcdceb5.jpg","https://cdn.shibe.online/shibes/39a20ccc9cdc17ea27f08643b019734453016e68.jpg","https://cdn.shibe.online/shibes/e67dea458b62cf3daa4b1e2b53a25405760af478.jpg","https://cdn.shibe.online/shibes/0a892f6554c18c8bcdab4ef7adec1387c76c6812.jpg","https://cdn.shibe.online/shibes/1b479987674c9b503f32e96e3a6aeca350a07ade.jpg","https://cdn.shibe.online/shibes/0c80fc00d82e09d593669d7cce9e273024ba7db9.jpg","https://cdn.shibe.online/shibes/bbc066183e87457b3143f71121fc9eebc40bf054.jpg","https://cdn.shibe.online/shibes/0932bf77f115057c7308ef70c3de1de7f8e7c646.jpg","https://cdn.shibe.online/shibes/9c87e6bb0f3dc938ce4c453eee176f24636440e0.jpg","https://cdn.shibe.online/shibes/0af1bcb0b13edf5e9b773e34e54dfceec8fa5849.jpg","https://cdn.shibe.online/shibes/32cf3f6eac4673d2e00f7360753c3f48ed53c650.jpg","https://cdn.shibe.online/shibes/af94d8eeb0f06a0fa06f090f404e3bbe86967949.jpg","https://cdn.shibe.online/shibes/4b55e826553b173c04c6f17aca8b0d2042d309fb.jpg","https://cdn.shibe.online/shibes/a0e53593393b6c724956f9abe0abb112f7506b7b.jpg","https://cdn.shibe.online/shibes/7eba25846f69b01ec04de1cae9fed4b45c203e87.jpg","https://cdn.shibe.online/shibes/fec6620d74bcb17b210e2cedca72547a332030d0.jpg","https://cdn.shibe.online/shibes/26cf6be03456a2609963d8fcf52cc3746fcb222c.jpg","https://cdn.shibe.online/shibes/c41b5da03ad74b08b7919afc6caf2dd345b3e591.jpg","https://cdn.shibe.online/shibes/7a9997f817ccdabac11d1f51fac563242658d654.jpg","https://cdn.shibe.online/shibes/7221241bad7da783c3c4d84cfedbeb21b9e4deea.jpg","https://cdn.shibe.online/shibes/283829584e6425421059c57d001c91b9dc86f33b.jpg","https://cdn.shibe.online/shibes/5145c9d3c3603c9e626585cce8cffdfcac081b31.jpg","https://cdn.shibe.online/shibes/b359c891e39994af83cf45738b28e499cb8ffe74.jpg","https://cdn.shibe.online/shibes/0b77f74a5d9afaa4b5094b28a6f3ee60efcb3874.jpg","https://cdn.shibe.online/shibes/adccfdf7d4d3332186c62ed8eb254a49b889c6f9.jpg","https://cdn.shibe.online/shibes/3aac69180f777512d5dabd33b09f531b7a845331.jpg","https://cdn.shibe.online/shibes/1d25e4f592db83039585fa480676687861498db8.jpg","https://cdn.shibe.online/shibes/d8349a2436420cf5a89a0010e91bf8dfbdd9d1cc.jpg","https://cdn.shibe.online/shibes/eb465ef1906dccd215e7a243b146c19e1af66c67.jpg","https://cdn.shibe.online/shibes/3d14e3c32863195869e7a8ba22229f457780008b.jpg","https://cdn.shibe.online/shibes/79cedc1a08302056f9819f39dcdf8eb4209551a3.jpg","https://cdn.shibe.online/shibes/4440aa827f88c04baa9c946f72fc688a34173581.jpg","https://cdn.shibe.online/shibes/94ea4a2d4b9cb852e9c1ff599f6a4acfa41a0c55.jpg","https://cdn.shibe.online/shibes/f4478196e441aef0ada61bbebe96ac9a573b2e5d.jpg","https://cdn.shibe.online/shibes/96d4db7c073526a35c626fc7518800586fd4ce67.jpg","https://cdn.shibe.online/shibes/196f3ed10ee98557328c7b5db98ac4a539224927.jpg","https://cdn.shibe.online/shibes/d12b07349029ca015d555849bcbd564d8b69fdbf.jpg","https://cdn.shibe.online/shibes/80fba84353000476400a9849da045611a590c79f.jpg","https://cdn.shibe.online/shibes/94cb90933e179375608c5c58b3d8658ef136ad3c.jpg","https://cdn.shibe.online/shibes/8447e67b5d622ef0593485316b0c87940a0ef435.jpg","https://cdn.shibe.online/shibes/c39a1d83ad44d2427fc8090298c1062d1d849f7e.jpg","https://cdn.shibe.online/shibes/6f38b9b5b8dbf187f6e3313d6e7583ec3b942472.jpg","https://cdn.shibe.online/shibes/81a2cbb9a91c6b1d55dcc702cd3f9cfd9a111cae.jpg","https://cdn.shibe.online/shibes/f1f6ed56c814bd939645138b8e195ff392dfd799.jpg","https://cdn.shibe.online/shibes/204a4c43cfad1cdc1b76cccb4b9a6dcb4a5246d8.jpg","https://cdn.shibe.online/shibes/9f34919b6154a88afc7d001c9d5f79b2e465806f.jpg","https://cdn.shibe.online/shibes/6f556a64a4885186331747c432c4ef4820620d14.jpg","https://cdn.shibe.online/shibes/bbd18ae7aaf976f745bc3dff46b49641313c26a9.jpg","https://cdn.shibe.online/shibes/6a2b286a28183267fca2200d7c677eba73b1217d.jpg","https://cdn.shibe.online/shibes/06767701966ed64fa7eff2d8d9e018e9f10487ee.jpg","https://cdn.shibe.online/shibes/7aafa4880b15b8f75d916b31485458b4a8d96815.jpg","https://cdn.shibe.online/shibes/b501169755bcf5c1eca874ab116a2802b6e51a2e.jpg","https://cdn.shibe.online/shibes/a8989bad101f35cf94213f17968c33c3031c16fc.jpg","https://cdn.shibe.online/shibes/f5d78feb3baa0835056f15ff9ced8e3c32bb07e8.jpg","https://cdn.shibe.online/shibes/75db0c76e86fbcf81d3946104c619a7950e62783.jpg","https://cdn.shibe.online/shibes/8ac387d1b252595bbd0723a1995f17405386b794.jpg","https://cdn.shibe.online/shibes/4379491ef4662faa178f791cc592b52653fb24b3.jpg","https://cdn.shibe.online/shibes/4caeee5f80add8c3db9990663a356e4eec12fc0a.jpg","https://cdn.shibe.online/shibes/99ef30ea8bb6064129da36e5673649e957cc76c0.jpg","https://cdn.shibe.online/shibes/aeac6a5b0a07a00fba0ba953af27734d2361fc10.jpg","https://cdn.shibe.online/shibes/9a217cfa377cc50dd8465d251731be05559b2142.jpg","https://cdn.shibe.online/shibes/65f6047d8e1d247af353532db018b08a928fd62a.jpg","https://cdn.shibe.online/shibes/fcead395cbf330b02978f9463ac125074ac87ab4.jpg","https://cdn.shibe.online/shibes/79451dc808a3a73f99c339f485c2bde833380af0.jpg","https://cdn.shibe.online/shibes/bedf90869797983017f764165a5d97a630b7054b.jpg","https://cdn.shibe.online/shibes/dd20e5801badd797513729a3645c502ae4629247.jpg","https://cdn.shibe.online/shibes/88361ee50b544cb1623cb259bcf07b9850183e65.jpg","https://cdn.shibe.online/shibes/0ebcfd98e8aa61c048968cb37f66a2b5d9d54d4b.jpg"]
                  let kya = list[Math.floor(Math.random() * list.length)]
                  dxxoo.sendFileFromUrl(from, kya, 'Dog.jpeg', 'Doggo ', id)
              break
           case 'wpanime' :
                  const walnime = ['https://cdn.nekos.life/wallpaper/QwGLg4oFkfY.png','https://cdn.nekos.life/wallpaper/bUzSjcYxZxQ.jpg','https://cdn.nekos.life/wallpaper/j49zxzaUcjQ.jpg','https://cdn.nekos.life/wallpaper/YLTH5KuvGX8.png','https://cdn.nekos.life/wallpaper/Xi6Edg133m8.jpg','https://cdn.nekos.life/wallpaper/qvahUaFIgUY.png','https://cdn.nekos.life/wallpaper/leC8q3u8BSk.jpg','https://cdn.nekos.life/wallpaper/tSUw8s04Zy0.jpg','https://cdn.nekos.life/wallpaper/sqsj3sS6EJE.png','https://cdn.nekos.life/wallpaper/HmjdX_s4PU4.png','https://cdn.nekos.life/wallpaper/Oe2lKgLqEXY.jpg','https://cdn.nekos.life/wallpaper/GTwbUYI-xTc.jpg','https://cdn.nekos.life/wallpaper/nn_nA8wTeP0.png','https://cdn.nekos.life/wallpaper/Q63o6v-UUa8.png','https://cdn.nekos.life/wallpaper/ZXLFm05K16Q.jpg','https://cdn.nekos.life/wallpaper/cwl_1tuUPuQ.png','https://cdn.nekos.life/wallpaper/wWhtfdbfAgM.jpg','https://cdn.nekos.life/wallpaper/3pj0Xy84cPg.jpg','https://cdn.nekos.life/wallpaper/sBoo8_j3fkI.jpg','https://cdn.nekos.life/wallpaper/gCUl_TVizsY.png','https://cdn.nekos.life/wallpaper/LmTi1k9REW8.jpg','https://cdn.nekos.life/wallpaper/sbq_4WW2PUM.jpg','https://cdn.nekos.life/wallpaper/QOSUXEbzDQA.png','https://cdn.nekos.life/wallpaper/khaqGIHsiqk.jpg','https://cdn.nekos.life/wallpaper/iFtEXugqQgA.png','https://cdn.nekos.life/wallpaper/deFKIDdRe1I.jpg','https://cdn.nekos.life/wallpaper/OHZVtvDm0gk.jpg','https://cdn.nekos.life/wallpaper/YZYa00Hp2mk.jpg','https://cdn.nekos.life/wallpaper/R8nPIKQKo9g.png','https://cdn.nekos.life/wallpaper/brn3qpRBEE.jpg','https://cdn.nekos.life/wallpaper/ADTEQdaHhFI.png','https://cdn.nekos.life/wallpaper/MGvWl6om-Fw.jpg','https://cdn.nekos.life/wallpaper/YGmpjZW3AoQ.jpg','https://cdn.nekos.life/wallpaper/hNCgoY-mQPI.jpg','https://cdn.nekos.life/wallpaper/3db40hylKs8.png','https://cdn.nekos.life/wallpaper/iQ2FSo5nCF8.jpg','https://cdn.nekos.life/wallpaper/meaSEfeq9QM.png','https://cdn.nekos.life/wallpaper/CmEmn79xnZU.jpg','https://cdn.nekos.life/wallpaper/MAL18nB-yBI.jpg','https://cdn.nekos.life/wallpaper/FUuBi2xODuI.jpg','https://cdn.nekos.life/wallpaper/ez-vNNuk6Ck.jpg','https://cdn.nekos.life/wallpaper/K4-z0Bc0Vpc.jpg','https://cdn.nekos.life/wallpaper/Y4JMbswrNg8.jpg','https://cdn.nekos.life/wallpaper/ffbPXIxt4-0.png','https://cdn.nekos.life/wallpaper/x63h_W8KFL8.jpg','https://cdn.nekos.life/wallpaper/lktzjDRhWyg.jpg','https://cdn.nekos.life/wallpaper/j7oQtvRZBOI.jpg','https://cdn.nekos.life/wallpaper/MQQEAD7TUpQ.png','https://cdn.nekos.life/wallpaper/lEG1-Eeva6Y.png','https://cdn.nekos.life/wallpaper/Loh5wf0O5Aw.png','https://cdn.nekos.life/wallpaper/yO6ioREenLA.png','https://cdn.nekos.life/wallpaper/4vKWTVgMNDc.jpg','https://cdn.nekos.life/wallpaper/Yk22OErU8eg.png','https://cdn.nekos.life/wallpaper/Y5uf1hsnufE.png','https://cdn.nekos.life/wallpaper/xAmBpMUd2Zw.jpg','https://cdn.nekos.life/wallpaper/f_RWFoWciRE.jpg','https://cdn.nekos.life/wallpaper/Y9qjP2Y__PA.jpg','https://cdn.nekos.life/wallpaper/eqEzgohpPwc.jpg','https://cdn.nekos.life/wallpaper/s1MBos_ZGWo.jpg','https://cdn.nekos.life/wallpaper/PtW0or_Pa9c.png','https://cdn.nekos.life/wallpaper/32EAswpy3M8.png','https://cdn.nekos.life/wallpaper/Z6eJZf5xhcE.png','https://cdn.nekos.life/wallpaper/xdiSF731IFY.jpg','https://cdn.nekos.life/wallpaper/Y9r9trNYadY.png','https://cdn.nekos.life/wallpaper/8bH8CXn-sOg.jpg','https://cdn.nekos.life/wallpaper/a02DmIFzRBE.png','https://cdn.nekos.life/wallpaper/MnrbXcPa7Oo.png','https://cdn.nekos.life/wallpaper/s1Tc9xnugDk.jpg','https://cdn.nekos.life/wallpaper/zRqEx2gnfmg.jpg','https://cdn.nekos.life/wallpaper/PtW0or_Pa9c.png','https://cdn.nekos.life/wallpaper/0ECCRW9soHM.jpg','https://cdn.nekos.life/wallpaper/kAw8QHl_wbM.jpg','https://cdn.nekos.life/wallpaper/ZXcaFmpOlLk.jpg','https://cdn.nekos.life/wallpaper/WVEdi9Ng8UE.png','https://cdn.nekos.life/wallpaper/IRu29rNgcYU.png','https://cdn.nekos.life/wallpaper/LgIJ_1AL3rM.jpg','https://cdn.nekos.life/wallpaper/DVD5_fLJEZA.jpg','https://cdn.nekos.life/wallpaper/siqOQ7k8qqk.jpg','https://cdn.nekos.life/wallpaper/CXNX_15eGEQ.png','https://cdn.nekos.life/wallpaper/s62tGjOTHnk.jpg','https://cdn.nekos.life/wallpaper/tmQ5ce6EfJE.png','https://cdn.nekos.life/wallpaper/Zju7qlBMcQ4.jpg','https://cdn.nekos.life/wallpaper/CPOc_bMAh2Q.png','https://cdn.nekos.life/wallpaper/Ew57S1KtqsY.jpg','https://cdn.nekos.life/wallpaper/hVpFbYJmZZc.jpg','https://cdn.nekos.life/wallpaper/sb9_J28pftY.jpg','https://cdn.nekos.life/wallpaper/JDoIi_IOB04.jpg','https://cdn.nekos.life/wallpaper/rG76AaUZXzk.jpg','https://cdn.nekos.life/wallpaper/9ru2luBo360.png','https://cdn.nekos.life/wallpaper/ghCgiWFxGwY.png','https://cdn.nekos.life/wallpaper/OSR-i-Rh7ZY.png','https://cdn.nekos.life/wallpaper/65VgtPyweCc.jpg','https://cdn.nekos.life/wallpaper/3vn-0FkNSbM.jpg','https://cdn.nekos.life/wallpaper/u02Y0-AJPL0.jpg','https://cdn.nekos.life/wallpaper/-Z-0fGflRc.jpg','https://cdn.nekos.life/wallpaper/3VjNKqEPp58.jpg','https://cdn.nekos.life/wallpaper/NoG4lKnk6Sc.jpg','https://cdn.nekos.life/wallpaper/xiTxgRMA_IA.jpg','https://cdn.nekos.life/wallpaper/yq1ZswdOGpg.png','https://cdn.nekos.life/wallpaper/4SUxw4M3UMA.png','https://cdn.nekos.life/wallpaper/cUPnQOHNLg0.jpg','https://cdn.nekos.life/wallpaper/zczjuLWRisA.jpg','https://cdn.nekos.life/wallpaper/TcxvU_diaC0.png','https://cdn.nekos.life/wallpaper/7qqWhEF_uoY.jpg','https://cdn.nekos.life/wallpaper/J4t_7DvoUZw.jpg','https://cdn.nekos.life/wallpaper/xQ1Pg5D6J4U.jpg','https://cdn.nekos.life/wallpaper/aIMK5Ir4xho.jpg','https://cdn.nekos.life/wallpaper/6gneEXrNAWU.jpg','https://cdn.nekos.life/wallpaper/PSvNdoISWF8.jpg','https://cdn.nekos.life/wallpaper/SjgF2-iOmV8.jpg','https://cdn.nekos.life/wallpaper/vU54ikOVY98.jpg','https://cdn.nekos.life/wallpaper/QjnfRwkRU-Q.jpg','https://cdn.nekos.life/wallpaper/uSKqzz6ZdXc.png','https://cdn.nekos.life/wallpaper/AMrcxZOnVBE.jpg','https://cdn.nekos.life/wallpaper/N1l8SCMxamE.jpg','https://cdn.nekos.life/wallpaper/n2cBaTo-J50.png','https://cdn.nekos.life/wallpaper/ZXcaFmpOlLk.jpg','https://cdn.nekos.life/wallpaper/7bwxy3elI7o.png','https://cdn.nekos.life/wallpaper/7VW4HwF6LcM.jpg','https://cdn.nekos.life/wallpaper/YtrPAWul1Ug.png','https://cdn.nekos.life/wallpaper/1p4_Mmq95Ro.jpg','https://cdn.nekos.life/wallpaper/EY5qz5iebJw.png','https://cdn.nekos.life/wallpaper/aVDS6iEAIfw.jpg','https://cdn.nekos.life/wallpaper/veg_xpHQfjE.jpg','https://cdn.nekos.life/wallpaper/meaSEfeq9QM.png','https://cdn.nekos.life/wallpaper/Xa_GtsKsy-s.png','https://cdn.nekos.life/wallpaper/6Bx8R6D75eM.png','https://cdn.nekos.life/wallpaper/zXOGXH_b8VY.png','https://cdn.nekos.life/wallpaper/VQcviMxoQ00.png','https://cdn.nekos.life/wallpaper/CJnRl-PKWe8.png','https://cdn.nekos.life/wallpaper/zEWYfFL_Ero.png','https://cdn.nekos.life/wallpaper/_C9Uc5MPaz4.png','https://cdn.nekos.life/wallpaper/zskxNqNXyG0.jpg','https://cdn.nekos.life/wallpaper/g7w14PjzzcQ.jpg','https://cdn.nekos.life/wallpaper/KavYXR_GRB4.jpg','https://cdn.nekos.life/wallpaper/Z_r9WItzJBc.jpg','https://cdn.nekos.life/wallpaper/Qps-0JD6834.jpg','https://cdn.nekos.life/wallpaper/Ri3CiJIJ6M8.png','https://cdn.nekos.life/wallpaper/ArGYIpJwehY.jpg','https://cdn.nekos.life/wallpaper/uqYKeYM5h8w.jpg','https://cdn.nekos.life/wallpaper/h9cahfuKsRg.jpg','https://cdn.nekos.life/wallpaper/iNPWKO8d2a4.jpg','https://cdn.nekos.life/wallpaper/j2KoFVhsNig.jpg','https://cdn.nekos.life/wallpaper/z5Nc-aS6QJ4.jpg','https://cdn.nekos.life/wallpaper/VUFoK8l1qs0.png','https://cdn.nekos.life/wallpaper/rQ8eYh5mXN8.png','https://cdn.nekos.life/wallpaper/D3NxNISDavQ.png','https://cdn.nekos.life/wallpaper/Z_CiozIenrU.jpg','https://cdn.nekos.life/wallpaper/np8rpfZflWE.jpg','https://cdn.nekos.life/wallpaper/ED-fgS09gik.jpg','https://cdn.nekos.life/wallpaper/AB0Cwfs1X2w.jpg','https://cdn.nekos.life/wallpaper/DZBcYfHouiI.jpg','https://cdn.nekos.life/wallpaper/lC7pB-GRAcQ.png','https://cdn.nekos.life/wallpaper/zrI-sBSt2zE.png','https://cdn.nekos.life/wallpaper/RJhylwaCLk.jpg','https://cdn.nekos.life/wallpaper/6km5m_GGIuw.png','https://cdn.nekos.life/wallpaper/3db40hylKs8.png','https://cdn.nekos.life/wallpaper/oggceF06ONQ.jpg','https://cdn.nekos.life/wallpaper/ELdH2W5pQGo.jpg','https://cdn.nekos.life/wallpaper/Zun_n5pTMRE.png','https://cdn.nekos.life/wallpaper/VqhFKG5U15c.png','https://cdn.nekos.life/wallpaper/NsMoiW8JZ60.jpg','https://cdn.nekos.life/wallpaper/XE4iXbw__Us.png','https://cdn.nekos.life/wallpaper/a9yXhS2zbhU.jpg','https://cdn.nekos.life/wallpaper/jjnd31_3Ic8.jpg','https://cdn.nekos.life/wallpaper/Nxanxa-xO3s.png','hithuttps://cdn.nekos.life/wallpaper/dBHlPcbuDc4.jpg','https://cdn.nekos.life/wallpaper/6wUZIavGVQU.jpg','https://cdn.nekos.life/wallpaper/-Z-0fGflRc.jpg','https://cdn.nekos.life/wallpaper/H9OUpIrF4gU.jpg','https://cdn.nekos.life/wallpaper/xlRdH3fBMz4.jpg','https://cdn.nekos.life/wallpaper/7IzUIeaae9o.jpg','https://cdn.nekos.life/wallpaper/FZCVL6PyWq0.jpg','https://cdn.nekos.life/wallpaper/5dG-HH6d0yw.png','https://cdn.nekos.life/wallpaper/ddxyA37HiwE.png','https://cdn.nekos.life/wallpaper/I0oj_jdCD4k.jpg','https://cdn.nekos.life/wallpaper/ABchTV97_Ts.png','https://cdn.nekos.life/wallpaper/58C37kkq39Y.png','https://cdn.nekos.life/wallpaper/HMS5mK7WSGA.jpg','https://cdn.nekos.life/wallpaper/1O3Yul9ojS8.jpg','https://cdn.nekos.life/wallpaper/hdZI1XsYWYY.jpg','https://cdn.nekos.life/wallpaper/h8pAJJnBXZo.png','https://cdn.nekos.life/wallpaper/apO9K9JIUp8.jpg','https://cdn.nekos.life/wallpaper/p8f8IY_2mwg.jpg','https://cdn.nekos.life/wallpaper/HY1WIB2r_cE.jpg','https://cdn.nekos.life/wallpaper/u02Y0-AJPL0.jpg','https://cdn.nekos.life/wallpaper/jzN74LcnwE8.png','https://cdn.nekos.life/wallpaper/IeAXo5nJhjw.jpg','https://cdn.nekos.life/wallpaper/7lgPyU5fuLY.jpg','https://cdn.nekos.life/wallpaper/f8SkRWzXVxk.png','https://cdn.nekos.life/wallpaper/ZmDTpGGeMR8.jpg','https://cdn.nekos.life/wallpaper/AMrcxZOnVBE.jpg','https://cdn.nekos.life/wallpaper/ZhP-f8Icmjs.jpg','https://cdn.nekos.life/wallpaper/7FyUHX3fE2o.jpg','https://cdn.nekos.life/wallpaper/CZoSLK-5ng8.png','https://cdn.nekos.life/wallpaper/pSNDyxP8l3c.png','https://cdn.nekos.life/wallpaper/AhYGHF6Fpck.jpg','https://cdn.nekos.life/wallpaper/ic6xRRptRes.jpg','https://cdn.nekos.life/wallpaper/89MQq6KaggI.png','https://cdn.nekos.life/wallpaper/y1DlFeHHTEE.png']
                  let walnimek = walnime[Math.floor(Math.random() * walnime.length)]
                  dxxoo.sendFileFromUrl(from, walnimek, 'Nimek.jpg', '', message.id)
               break
          case 'anime':
              if (args.length == 0) return dxxoo.reply(from, `Untuk menggunakan ${prefix}anime\nSilahkan ketik: ${prefix}anime [query]\nContoh: ${prefix}anime random\n\nquery yang tersedia:\nrandom, waifu, husbu, neko`, id)
              if (args[0] == 'random' || args[0] == 'waifu' || args[0] == 'husbu' || args[0] == 'neko') {
                  fetch('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/random/anime/' + args[0] + '.txt')
                  .then(res => res.text())
                  .then(body => {
                      let randomnime = body.split('\n')
                      let randomnimex = randomnime[Math.floor(Math.random() * randomnime.length)]
                      dxxoo.sendFileFromUrl(from, randomnimex, '', 'Nee..', id)
                  })
                  .catch(() => {
                      dxxoo.reply(from, 'Ada yang Error!', id)
                  })
              } else {
                  dxxoo.reply(from, `Maaf query tidak tersedia. Silahkan ketik ${prefix}anime untuk melihat list query`)
              }
              break
          case 'kpop':
              if (args.length == 0) return dxxoo.reply(from, `Untuk menggunakan ${prefix}kpop\nSilahkan ketik: ${prefix}kpop [query]\nContoh: ${prefix}kpop bts\n\nquery yang tersedia:\nblackpink, exo, bts`, id)
              if (args[0] == 'blackpink' || args[0] == 'exo' || args[0] == 'bts') {
                  fetch('https://raw.githubusercontent.com/ArugaZ/grabbed-results/main/random/kpop/' + args[0] + '.txt')
                  .then(res => res.text())
                  .then(body => {
                      let randomkpop = body.split('\n')
                      let randomkpopx = randomkpop[Math.floor(Math.random() * randomkpop.length)]
                      dxxoo.sendFileFromUrl(from, randomkpopx, '', 'Nee..', id)
                  })
                  .catch(() => {
                      dxxoo.reply(from, 'Ada yang Error!', id)
                  })
              } else {
                  dxxoo.reply(from, `Maaf query tidak tersedia. Silahkan ketik ${prefix}kpop untuk melihat list query`)
              }
              break
          case 'memes':
              const randmeme = await meme.random()
              dxxoo.sendFileFromUrl(from, randmeme, '', '', id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          
          // Search Any
              case 'google':
                  const googleQuery = body.slice(8)
                  if(googleQuery == undefined || googleQuery == ' ') return dxxoo.reply(from, `*Hasil Pencarian : ${googleQuery}* tidak ditemukan`, id)
                  google({ 'query': googleQuery }).then(results => {
                  let vars = `_*Hasil Pencarian : ${googleQuery}*_\n`
                  for (let i = 0; i < results.length; i++) {
                      vars +=  `\n═════════════════\n\n*Judul* : ${results[i].title}\n\n*Deskripsi* : ${results[i].snippet}\n\n*Link* : ${results[i].link}\n\n`
                  }
                      dxxoo.reply(from, vars, id);
                  }).catch(e => {
                      console.log(e)
                      dxxoo.sendText(ownerNumber, 'Google Error : ' + e);
                  })
                  break
  	case 'dewabatch':
  		if (args.length == 0) return dxxoo.reply(from, `Untuk mencari anime batch dari Dewa Batch, ketik ${prefix}dewabatch judul\n\nContoh: ${prefix}dewabatch naruto`, id)
  		rugaapi.dewabatch(args[0])
  		.then(async(res) => {
  		await dxxoo.sendFileFromUrl(from, `${res.link}`, '', `${res.text}`, id)
  		})
  		break
          case 'images':
              if (args.length == 0) return dxxoo.reply(from, `Untuk mencari gambar dari pinterest\nketik: ${prefix}images [search]\ncontoh: ${prefix}images naruto`, id)
              const cariwall = body.slice(8)
              const hasilwall = await images.fdci(cariwall)
              await dxxoo.sendFileFromUrl(from, hasilwall, '', '', id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'sreddit':
              if (args.length == 0) return dxxoo.reply(from, `Untuk mencari gambar dari sub reddit\nketik: ${prefix}sreddit [search]\ncontoh: ${prefix}sreddit naruto`, id)
              const carireddit = body.slice(9)
              const hasilreddit = await images.sreddit(carireddit)
              await dxxoo.sendFileFromUrl(from, hasilreddit, '', '', id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
  	    break
          case 'resep':
              if (args.length == 0) return dxxoo.reply(from, `Untuk mencari resep makanan\nCaranya ketik: ${prefix}resep [search]\n\ncontoh: ${prefix}resep tahu`, id)
              const cariresep = body.slice(7)
              const hasilresep = await resep.resep(cariresep)
              await dxxoo.reply(from, hasilresep + '\n\nIni kak resep makanannya..', id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'nekopoi':
               rugapoi.getLatest()
              .then((result) => {
                  rugapoi.getVideo(result.link)
                  .then((res) => {
                      let heheq = '\n'
                      for (let i = 0; i < res.links.length; i++) {
                          heheq += `${res.links[i]}\n`
                      }
                      dxxoo.reply(from, `Title: ${res.title}\n\nLink:\n${heheq}\nmasih tester bntr :v`)
                  })
              })
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'stalkig':
              if (args.length == 0) return dxxoo.reply(from, `Untuk men-stalk akun instagram seseorang\nketik ${prefix}stalkig [username]\ncontoh: ${prefix}stalkig ini.arga`, id)
              const igstalk = await rugaapi.stalkig(args[0])
              const igstalkpict = await rugaapi.stalkigpict(args[0])
              await dxxoo.sendFileFromUrl(from, igstalkpict, '', igstalk, id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'cuaca':
              if (args.length == 0) return dxxoo.reply(from, `Untuk melihat cuaca pada suatu daerah\nketik: ${prefix}cuaca [daerah]`, id)
              const cuacaq = body.slice(7)
              const cuacap = await rugaapi.cuaca(cuacaq)
              await dxxoo.reply(from, cuacap, id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'lyrics':
          case 'lirik':
              if (args.length == 0) return dxxoo.reply(from, `Untuk mencari lirik dari sebuah lagu\bketik: ${prefix}lirik [judul_lagu]`, id)
              rugaapi.lirik(body.slice(7))
              .then(async (res) => {
                  await dxxoo.reply(from, `Lirik Lagu: ${body.slice(7)}\n\n${res}`, id)
              })
              break
          case 'chord':
              if (args.length == 0) return dxxoo.reply(from, `Untuk mencari lirik dan chord dari sebuah lagu\bketik: ${prefix}chord [judul_lagu]`, id)
              const chordq = body.slice(7)
              const chordp = await rugaapi.chord(chordq)
              await dxxoo.reply(from, chordp, id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'ss': //jika error silahkan buka file di folder settings/api.json dan ubah apiSS 'API-KEY' yang kalian dapat dari website https://apiflash.com/
              if (args.length == 0) return dxxoo.reply(from, `Membuat bot men-screenshot sebuah web\n\nPemakaian: ${prefix}ss [url]\n\ncontoh: ${prefix}ss http://google.com`, id)
              const scrinshit = await meme.ss(args[0])
              await dxxoo.sendFile(from, scrinshit, 'ss.jpg', 'cekrek', id)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
          case 'play'://silahkan kalian custom sendiri jika ada yang ingin diubah
              if (args.length == 0) return dxxoo.reply(from, `Untuk mencari lagu dari youtube\n\nPenggunaan: ${prefix}play judul lagu`, id)
              axios.get(`https://arugaytdl.herokuapp.com/search?q=${body.slice(6)}`)
              .then(async (res) => {
                  await dxxoo.sendFileFromUrl(from, `${res.data[0].thumbnail}`, ``, `Lagu ditemukan\n\nJudul: ${res.data[0].title}\nDurasi: ${res.data[0].duration}detik\nUploaded: ${res.data[0].uploadDate}\nView: ${res.data[0].viewCount}\n\nsedang dikirim`, id)
  				rugaapi.ytmp3(`https://youtu.be/${res.data[0].id}`)
  				.then(async(res) => {
  					if (res.status == 'error') return dxxoo.sendFileFromUrl(from, `${res.link}`, '', `${res.error}`)
  					await dxxoo.sendFileFromUrl(from, `${res.thumb}`, '', `Lagu ditemukan\n\nJudul ${res.title}\n\nSabar lagi dikirim`, id)
  					await dxxoo.sendFileFromUrl(from, `${res.link}`, '', '', id)
  					.catch(() => {
  						dxxoo.reply(from, `URL Ini ${args[0]} Sudah pernah di Download sebelumnya. URL akan di Reset setelah 1 Jam/60 Menit`, id)
  					})
  				})
              })
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
  		case 'movie':
  			if (args.length == 0) return dxxoo.reply(from, `Untuk mencari suatu movie dari website sdmovie.fun\nketik: ${prefix}movie judulnya`, id)
  			rugaapi.movie((body.slice(7)))
  			.then(async (res) => {
  				if (res.status == 'error') return dxxoo.reply(from, res.hasil, id)
  				await dxxoo.sendFileFromUrl(from, res.link, 'movie.jpg', res.hasil, id)
  			})
  			break
          case 'whatanime':
              if (isMedia && type === 'image' || quotedMsg && quotedMsg.type === 'image') {
                  if (isMedia) {
                      var mediaData = await decryptMedia(message, uaOverride)
                  } else {
                      var mediaData = await decryptMedia(quotedMsg, uaOverride)
                  }
                  const fetch = require('node-fetch')
                  const imgBS4 = `data:${mimetype};base64,${mediaData.toString('base64')}`
                  dxxoo.reply(from, 'Searching....', id)
                  fetch('https://trace.moe/api/search', {
                      method: 'POST',
                      body: JSON.stringify({ image: imgBS4 }),
                      headers: { "Content-Type": "application/json" }
                  })
                  .then(respon => respon.json())
                  .then(resolt => {
                  	if (resolt.docs && resolt.docs.length <= 0) {
                  		dxxoo.reply(from, 'Maaf, saya tidak tau ini anime apa, pastikan gambar yang akan di Search tidak Buram/Kepotong', id)
                  	}
                      const { is_adult, title, title_chinese, title_romaji, title_english, episode, similarity, filename, at, tokenthumb, anilist_id } = resolt.docs[0]
                      teks = ''
                      if (similarity < 0.92) {
                      	teks = '*Saya memiliki keyakinan rendah dalam hal ini* :\n\n'
                      }
                      teks += `➸ *Title Japanese* : ${title}\n➸ *Title chinese* : ${title_chinese}\n➸ *Title Romaji* : ${title_romaji}\n➸ *Title English* : ${title_english}\n`
                      teks += `➸ *R-18?* : ${is_adult}\n`
                      teks += `➸ *Eps* : ${episode.toString()}\n`
                      teks += `➸ *Kesamaan* : ${(similarity * 100).toFixed(1)}%\n`
                      var video = `https://media.trace.moe/video/${anilist_id}/${encodeURIComponent(filename)}?t=${at}&token=${tokenthumb}`;
                      dxxoo.sendFileFromUrl(from, video, 'anime.mp4', teks, id).catch(() => {
                          dxxoo.reply(from, teks, id)
                      })
                  })
                  .catch(() => {
                      dxxoo.reply(from, 'Ada yang Error!', id)
                  })
              } else {
  				dxxoo.reply(from, `Maaf format salah\n\nSilahkan kirim foto dengan caption ${prefix}whatanime\n\nAtau reply foto dengan caption ${prefix}whatanime`, id)
  			}
              break
              
          // Other Command
          case 'shopee':
              if (!isGroupMsg) return aruga.reply(from, `Perintah ini hanya bisa di gunakan dalam group!`, id)
              if (args.length == 0) return aruga.reply(from, `Kirim perintah *${prefix}shopee [ Query ]*\n\nContoh : *${prefix}shopee HP Samsul a20*`, id)
              const shopek = body.slice(8)
              aruga.reply(from, 'Wait.....', id)
              try {
                  const dataplai = await axios.get(`https://api.vhtear.com/shopee?query=${shopek}&count=5&apikey=${vhtearkey}`)
                  const dataplay = dataplai.data.result
                   let shopeq = `*「 SHOPEE 」*\n\n*Hasil Pencarian : ${shopek}*\n`
                  for (let i = 0; i < dataplay.items.length; i++) {
                      shopeq += `\n─────────────────\n\n• *Nama* : ${dataplay.items[i].nama}\n• Harga* : ${dataplay.items[i].harga}\n• *Terjual* : ${dataplay.items[i].terjual}\n• *Lokasi Toko* : ${dataplay.items[i].shop_location}\n• *Deskripsi* : ${dataplay.items[i].description}\n• *Link Product : ${dataplay.items[i].link_product}*\n`
                  }
                  await aruga.sendFileFromUrl(from, dataplay.items[0].image_cover, `shopee.jpg`, shopeq, id)
              } catch (err){
                  console.log(err)
              }
              break
              case 'spamcall':
          if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
                  if (args.length !== 1) return dxxoo.reply(from, `Untuk menggunakan fitur spamcall, ketik :\n${prefix}spamcall 8xxxxxxxxxx\n\nContoh: ${prefix}spamcall 81288888888`, id)
                  rugaapi.spamcall(args[0])
                  .then(async (res) => {
                      await dxxoo.reply(from, `${res}`, id)
                  })
                  break
              case 'spamcall2':
          if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
                  if (args.length !== 1) return dxxoo.reply(from, `Untuk menggunakan fitur spamcall, ketik :\n${prefix}spamcall 8xxxxxxxxxx\n\nContoh: ${prefix}spamcall 81288888888`, id)
                  rugaapi.spamcall2(args[0])
                  .then(async (res) => {
                      await dxxoo.reply(from, `${res}`, id)
                  })
                  break 
          case 'resi':
              if (args.length !== 2) return dxxoo.reply(from, `Maaf, format pesan salah.\nSilahkan ketik pesan dengan ${prefix}resi <kurir> <no_resi>\n\nKurir yang tersedia:\njne, pos, tiki, wahana, jnt, rpx, sap, sicepat, pcp, jet, dse, first, ninja, lion, idl, rex`, id)
              const kurirs = ['jne', 'pos', 'tiki', 'wahana', 'jnt', 'rpx', 'sap', 'sicepat', 'pcp', 'jet', 'dse', 'first', 'ninja', 'lion', 'idl', 'rex']
              if (!kurirs.includes(args[0])) return dxxoo.sendText(from, `Maaf, jenis ekspedisi pengiriman tidak didukung layanan ini hanya mendukung ekspedisi pengiriman ${kurirs.join(', ')} Tolong periksa kembali.`)
              console.log('Memeriksa No Resi', args[1], 'dengan ekspedisi', args[0])
              cekResi(args[0], args[1]).then((result) => dxxoo.sendText(from, result))
              break
          case 'tts':
              if (args.length == 0) return dxxoo.reply(from, `Mengubah teks menjadi sound (google voice)\nketik: ${prefix}tts <kode_bahasa> <teks>\ncontoh : ${prefix}tts id halo\nuntuk kode bahasa cek disini : https://anotepad.com/note/read/5xqahdy8`)
              const ttsGB = require('node-gtts')(args[0])
              const dataText = body.slice(8)
                  if (dataText === '') return dxxoo.reply(from, 'apa teksnya syg..', id)
                  try {
                      ttsGB.save('./media/tts.mp3', dataText, function () {
                      dxxoo.sendPtt(from, './media/tts.mp3', id)
                      })
                  } catch (err) {
                      dxxoo.reply(from, err, id)
                  }
              break
          case 'translate':
              if (args.length != 1) return dxxoo.reply(from, `Maaf, format pesan salah.\nSilahkan reply sebuah pesan dengan caption ${prefix}translate <kode_bahasa>\ncontoh ${prefix}translate id`, id)
              if (!quotedMsg) return dxxoo.reply(from, `Maaf, format pesan salah.\nSilahkan reply sebuah pesan dengan caption ${prefix}translate <kode_bahasa>\ncontoh ${prefix}translate id`, id)
              const quoteText = quotedMsg.type == 'chat' ? quotedMsg.body : quotedMsg.type == 'image' ? quotedMsg.caption : ''
              translate(quoteText, args[0])
                  .then((result) => dxxoo.sendText(from, result))
                  .catch(() => dxxoo.sendText(from, 'Error, Kode bahasa salah.'))
              break
  		case 'covidindo':
  			rugaapi.covidindo()
  			.then(async (res) => {
  				await dxxoo.reply(from, `${res}`, id)
  			})
  			break
          case 'ceklokasi':
              if (quotedMsg.type !== 'location') return dxxoo.reply(from, `Maaf, format pesan salah.\nKirimkan lokasi dan reply dengan caption ${prefix}ceklokasi`, id)
              console.log(`Request Status Zona Penyebaran Covid-19 (${quotedMsg.lat}, ${quotedMsg.lng}).`)
              const zoneStatus = await getLocationData(quotedMsg.lat, quotedMsg.lng)
              if (zoneStatus.kode !== 200) dxxoo.sendText(from, 'Maaf, Terjadi error ketika memeriksa lokasi yang anda kirim.')
              let datax = ''
              for (let i = 0; i < zoneStatus.data.length; i++) {
                  const { zone, region } = zoneStatus.data[i]
                  const _zone = zone == 'green' ? 'Hijau* (Aman) \n' : zone == 'yellow' ? 'Kuning* (Waspada) \n' : 'Merah* (Bahaya) \n'
                  datax += `${i + 1}. Kel. *${region}* Berstatus *Zona ${_zone}`
              }
              const text = `*CEK LOKASI PENYEBARAN COVID-19*\nHasil pemeriksaan dari lokasi yang anda kirim adalah *${zoneStatus.status}* ${zoneStatus.optional}\n\nInformasi lokasi terdampak disekitar anda:\n${datax}`
              dxxoo.sendText(from, text)
              break
          case 'shortlink':
              if (args.length == 0) return dxxoo.reply(from, `ketik ${prefix}shortlink <url>`, id)
              if (!isUrl(args[0])) return dxxoo.reply(from, 'Maaf, url yang kamu kirim tidak valid.', id)
              const shortlink = await urlShortener(args[0])
              await dxxoo.sendText(from, shortlink)
              .catch(() => {
                  dxxoo.reply(from, 'Ada yang Error!', id)
              })
              break
  		case 'bapakfont':
  			if (args.length == 0) return dxxoo.reply(from, `Mengubah kalimat menjadi alayyyyy\n\nketik ${prefix}bapakfont kalimat`, id)
  			rugaapi.bapakfont(body.slice(11))
  			.then(async(res) => {
  				await dxxoo.reply(from, `${res}`, id)
  			})
  			break
          case 'hilihfont':
              if (args.length == 0) return dxxoo.reply(from, `Mengubah kalimat menjadi hilih gitu deh\n\nketik ${prefix}hilihfont kalimat`, id)
              rugaapi.hilihfont(body.slice(11))
              .then(async(res) => {
                  await dxxoo.reply(from, `${res}`, id)
              })
              break
              case 'groupinfo' :
              case 'gcinfo' :
                      if (!isGroupMsg) return dxxoo.reply(from, 'Perintah ini hanya bisa di gunakan dalam group!', message.id)
                      var totalMem = chat.groupMetadata.participants.length
                      var desc = chat.groupMetadata.desc
                      var groupname = name
                      var grouppic = await dxxoo.getProfilePicFromServer(chat.id)
                      if (grouppic == undefined) {
                           var pfp = errorurl
                      } else {
                           var pfp = grouppic 
                      }
                      await dxxoo.sendFileFromUrl(from, pfp, 'group.png', `*「 GROUP INFO 」*
  *➸ Name : ${groupname}* 
  *➸ Members : ${totalMem}*
  *➸ Group Description* 
  ${desc}\n\nBy : @dimaass.cc`)
              break
          case 'namaninja':
          if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
              if (args.length == 0) return dxxoo.reply(from, `Untuk mengganti nama kamu menjadi nama ninja\nketik ${prefix}namaninja namakamu`, id)
              rugaapi.namaninja(body.slice(10))
              .then(async(res) => {
                  await dxxoo.reply(from, `${res}`, id)
              })
              break
  
  		//Fun Menu
          case 'say':
             const says = args.join(' ')
             await dxxoo.sendText(from, `${says}`)
          break
          case 'santet':
                      if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
                      if (mentionedJidList.length === 0) return dxxoo.reply(from, 'Tag member yang mau disantet\n\nContoh : #santet @tag | kalo berak kaga di siram', id)
                      if (args.length === 1) return dxxoo.reply(from, 'Masukkan alasan kenapa menyantet dia!!\n\nContoh : #santet @tag | kalo berak kaga di siram', id)
                          const terima1 = santet[Math.floor(Math.random() * (santet.length))]
                          const target = arg.split('|')[0]
                          const alasan = arg.split('|')[1]
                          await dxxoo.sendTextWithMentions(from, `Santet terkirim ke ${target}, Dengan alasan${alasan}\n\nJenis Santet Yang di Terima Korban adalah *${terima1}*`)
                  break
          case 'kutuk':
                      if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
                      if (mentionedJidList.length === 0) return dxxoo.reply(from, 'Tag member yang mau dikutuk\n\nContoh : #kutuk @tag | kalo berak kaga di siram', id)
                      if (args.length === 1) return dxxoo.reply(from, 'Masukkan alasan kenapa menyantet dia!!\n\nContoh : #kutuk @tag | kalo berak kaga di siram', id)
                          const terima2 = kutuk[Math.floor(Math.random() * (kutuk.length))]
                          const target2 = arg.split('|')[0]
                          const alasan2 = arg.split('|')[1]
                          await dxxoo.sendTextWithMentions(from, `Kutuk kau ${target2} jadi *${terima2}*`)
                  break
          case 'sider':
              if (!isGroupMsg) return dxxoo.reply(from, `Perintah ini hanya bisa di gunakan dalam group!`, id)                
              if (!quotedMsg) return dxxoo.reply(from, `Reply Pesan Eug Neng!`, id)
              if (!quotedMsgObj.fromMe) return dxxoo.reply(from, `Reply Pesan Eug Ngab!`, id)
              try {
                  const reader = await dxxoo.getMessageReaders(quotedMsgObj.id)
                  let list = ''
                  for (let pembaca of reader) {
                  list += `- @${pembaca.id.replace(/@c.us/g, '')}\n` 
              }
                  dxxoo.sendTextWithMentions(from, `Ciee, Ngeread...\n${list}`)
              } catch(err) {
                  console.log(err)
                  dxxoo.reply(from, `Maap Bre blm ada yang ngeread pesan lau`, id)    
              }
              break
              case 'koin':
                  const side = Math.floor(Math.random() * 2) + 1
                  if (side == 1) {
                    dxxoo.sendStickerfromUrl(from, 'https://i.ibb.co/YTWZrZV/2003-indonesia-500-rupiah-copy.png', { method: 'get' })
                  } else {
                    dxxoo.sendStickerfromUrl(from, 'https://i.ibb.co/bLsRM2P/2003-indonesia-500-rupiah-copy-1.png', { method: 'get' })
                  }
                  break
              case 'dadu':
                  const dice = Math.floor(Math.random() * 6) + 1
                  await dxxoo.sendStickerfromUrl(from, 'https://www.random.org/dice/dice' + dice + '.png', { method: 'get' })
                  break
              case 'kapankah':
                  const when = args.join(' ')
                  const ans = kapankah[Math.floor(Math.random() * (kapankah.length))]
                  if (!when) dxxoo.reply(from, '⚠️ Format salah! Ketik *#menu* untuk penggunaan.')
                  await dxxoo.sendText(from, `Pertanyaan: *${when}* \n\nJawaban: ${ans}`)
                  break
              case 'nilai':
              case 'rate':
                  const rating = args.join(' ')
                  const awr = rate[Math.floor(Math.random() * (rate.length))]
                  if (!rating) dxxoo.reply(from, '⚠️ Format salah! Ketik *#menu* untuk penggunaan.')
                  await dxxoo.sendText(from, `Pertanyaan: *${rating}* \n\nJawaban: ${awr}`)
                  break
              case 'apakah':
                  const nanya = args.join(' ')
                  const jawab = apakah[Math.floor(Math.random() * (apakah.length))]
                  if (!nanya) dxxoo.reply(from, '⚠️ Format salah! Ketik *#menu* untuk penggunaan.')
                  await dxxoo.sendText(from, `Pertanyaan: *${nanya}* \n\nJawaban: ${jawab}`)
                  break
               case 'bisakah':
                  const bsk = args.join(' ')
                  const jbsk = bisakah[Math.floor(Math.random() * (bisakah.length))]
                  if (!bsk) dxxoo.reply(from, '⚠️ Format salah! Ketik *#menu* untuk penggunaan.')
                  await dxxoo.sendText(from, `Pertanyaan: *${bsk}* \n\nJawaban: ${jbsk}`)
                  break
      case 'tod':
      dxxoo.reply(from, 'Sebelum bermain berjanjilah akan melaksanakan apapun perintah yang diberikan.\n\nSilahkan Pilih:\n➥ #truth\n➥ #dare', id)
      break
      case 'truth':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
              fetch('https://raw.githubusercontent.com/AlvioAdjiJanuar/random/main/truth.txt')
              .then(res => res.text())
              .then(body => {
                  let truthx = body.split('\n')
                  let truthz = truthx[Math.floor(Math.random() * truthx.length)]
                  dxxoo.reply(from, truthz, id)
              })
              .catch(() => {
                  dxxoo.reply(from, 'Hayolohhh, ada yang error!!', id)
              })
              break
      case 'dare':
      if (!isGroupMsg) return dxxoo.reply(from, menuId.textPrem())
              fetch('https://raw.githubusercontent.com/AlvioAdjiJanuar/random/main/dare.txt')
              .then(res => res.text())
              .then(body => {
                  let darex = body.split('\n')
                  let darez = darex[Math.floor(Math.random() * darex.length)]
                  dxxoo.reply(from, darez, id)
              })
              .catch(() => {
                  dxxoo.reply(from, 'Hayolohhh, ada yang error!!', id)
              })
              break
          case 'klasemen':
  		case 'klasmen':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
  			const klasemen = db.get('group').filter({id: groupId}).map('members').value()[0]
              let urut = Object.entries(klasemen).map(([key, val]) => ({id: key, ...val})).sort((a, b) => b.denda - a.denda);
              let textKlas = "*Klasemen Denda Sementara*\n"
              let i = 1;
              urut.forEach((klsmn) => {
              textKlas += i+". @"+klsmn.id.replace('@c.us', '')+" ➤ Rp"+formatin(klsmn.denda)+"\n"
              i++
              });
              await dxxoo.sendTextWithMentions(from, textKlas)
  			break
  
          // Group Commands (group admin only)
  	    case 'add':
              if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!isBotGroupAdmins) return dxxoo.reply(from, 'Gagal, silahkan tambahkan bot sebagai admin grup!', id)
  	        if (args.length !== 1) return dxxoo.reply(from, `Untuk menggunakan ${prefix}add\nPenggunaan: ${prefix}add <nomor>\ncontoh: ${prefix}add 628xxx`, id)
                  try {
                      await dxxoo.addParticipant(from,`${args[0]}@c.us`)
                  } catch {
                      dxxoo.reply(from, 'Tidak dapat menambahkan target', id)
                  }
              break
          case 'kick':
              if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!isBotGroupAdmins) return dxxoo.reply(from, 'Gagal, silahkan tambahkan bot sebagai admin grup!', id)
              if (mentionedJidList.length === 0) return dxxoo.reply(from, 'Maaf, format pesan salah.\nSilahkan tag satu atau lebih orang yang akan dikeluarkan', id)
              if (mentionedJidList[0] === botNumber) return await dxxoo.reply(from, 'Maaf, format pesan salah.\nTidak dapat mengeluarkan akun bot sendiri', id)
              await dxxoo.sendTextWithMentions(from, `Request diterima, mengeluarkan:\n${mentionedJidList.map(x => `@${x.replace('@c.us', '')}`).join('\n')}`)
              for (let i = 0; i < mentionedJidList.length; i++) {
                  if (groupAdmins.includes(mentionedJidList[i])) return await dxxoo.sendText(from, 'Gagal, kamu tidak bisa mengeluarkan admin grup.')
                  await dxxoo.removeParticipant(groupId, mentionedJidList[i])
              }
              break
          case 'promote':
              if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!isBotGroupAdmins) return dxxoo.reply(from, 'Gagal, silahkan tambahkan bot sebagai admin grup!', id)
              if (mentionedJidList.length !== 1) return dxxoo.reply(from, 'Maaf, hanya bisa mempromote 1 user', id)
              if (groupAdmins.includes(mentionedJidList[0])) return await dxxoo.reply(from, 'Maaf, user tersebut sudah menjadi admin.', id)
              if (mentionedJidList[0] === botNumber) return await dxxoo.reply(from, 'Maaf, format pesan salah.\nTidak dapat mempromote akun bot sendiri', id)
              await dxxoo.promoteParticipant(groupId, mentionedJidList[0])
              await dxxoo.sendTextWithMentions(from, `Request diterima, menambahkan @${mentionedJidList[0].replace('@c.us', '')} sebagai admin.`)
              break
          case 'demote':
              if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!isBotGroupAdmins) return dxxoo.reply(from, 'Gagal, silahkan tambahkan bot sebagai admin grup!', id)
              if (mentionedJidList.length !== 1) return dxxoo.reply(from, 'Maaf, hanya bisa mendemote 1 user', id)
              if (!groupAdmins.includes(mentionedJidList[0])) return await dxxoo.reply(from, 'Maaf, user tersebut belum menjadi admin.', id)
              if (mentionedJidList[0] === botNumber) return await dxxoo.reply(from, 'Maaf, format pesan salah.\nTidak dapat mendemote akun bot sendiri', id)
              await dxxoo.demoteParticipant(groupId, mentionedJidList[0])
              await dxxoo.sendTextWithMentions(from, `Request diterima, menghapus jabatan @${mentionedJidList[0].replace('@c.us', '')}.`)
              break
          case 'bye':
              if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              dxxoo.sendText(from, 'Good bye... ( ⇀‸↼‶ )').then(() => dxxoo.leaveGroup(groupId))
              break
          case 'del':
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!quotedMsg) return dxxoo.reply(from, `Maaf, format pesan salah silahkan.\nReply pesan bot dengan caption ${prefix}del`, id)
              if (!quotedMsgObj.fromMe) return dxxoo.reply(from, `Maaf, format pesan salah silahkan.\nReply pesan bot dengan caption ${prefix}del`, id)
              dxxoo.deleteMessage(quotedMsgObj.chatId, quotedMsgObj.id, false)
              break
          case 'tagall':
          case 'everyone':
              if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              const groupMem = await dxxoo.getGroupMembers(groupId)
              let hehex = '╔══✪〘 Mention All 〙✪══\n'
              for (let i = 0; i < groupMem.length; i++) {
                  hehex += '╠➥'
                  hehex += ` @${groupMem[i].id.replace(/@c.us/g, '')}\n`
              }
              hehex += '╚═〘 *O C T O P U S - B O T* 〙'
              await dxxoo.sendTextWithMentions(from, hehex)
              break
  		case 'simisimi':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
  			dxxoo.reply(from, `Untuk mengaktifkan simi-simi pada Group Chat\n\nPenggunaan\n${prefix}simi on --mengaktifkan\n${prefix}simi off --nonaktifkan\n`, id)
  			break
  		case 'simi':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
  			if (args.length !== 1) return dxxoo.reply(from, `Untuk mengaktifkan simi-simi pada Group Chat\n\nPenggunaan\n${prefix}simi on --mengaktifkan\n${prefix}simi off --nonaktifkan\n`, id)
  			if (args[0] == 'on') {
  				simi.push(chatId)
  				fs.writeFileSync('./settings/simi.json', JSON.stringify(simi))
                  dxxoo.reply(from, 'Mengaktifkan bot simi-simi!', id)
  			} else if (args[0] == 'off') {
  				let inxx = simi.indexOf(chatId)
  				simi.splice(inxx, 1)
  				fs.writeFileSync('./settings/simi.json', JSON.stringify(simi))
  				dxxoo.reply(from, 'Menonaktifkan bot simi-simi!', id)
  			} else {
  				dxxoo.reply(from, `Untuk mengaktifkan simi-simi pada Group Chat\n\nPenggunaan\n${prefix}simi on --mengaktifkan\n${prefix}simi off --nonaktifkan\n`, id)
  			}
  			break
  		case 'katakasar':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
  			dxxoo.reply(from, `Untuk mengaktifkan Fitur Kata Kasar pada Group Chat\n\nApasih kegunaan Fitur Ini? Apabila seseorang mengucapkan kata kasar akan mendapatkan denda\n\nPenggunaan\n${prefix}kasar on --mengaktifkan\n${prefix}kasar off --nonaktifkan\n\n${prefix}reset --reset jumlah denda`, id)
  			break
  		case 'kasar':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
  			if (args.length !== 1) return dxxoo.reply(from, `Untuk mengaktifkan Fitur Kata Kasar pada Group Chat\n\nApasih kegunaan Fitur Ini? Apabila seseorang mengucapkan kata kasar akan mendapatkan denda\n\nPenggunaan\n${prefix}kasar on --mengaktifkan\n${prefix}kasar off --nonaktifkan\n\n${prefix}reset --reset jumlah denda`, id)
  			if (args[0] == 'on') {
  				ngegas.push(chatId)
  				fs.writeFileSync('./settings/ngegas.json', JSON.stringify(ngegas))
  				dxxoo.reply(from, 'Fitur Anti Kasar sudah di Aktifkan', id)
  			} else if (args[0] == 'off') {
  				let nixx = ngegas.indexOf(chatId)
  				ngegas.splice(nixx, 1)
  				fs.writeFileSync('./settings/ngegas.json', JSON.stringify(ngegas))
  				dxxoo.reply(from, 'Fitur Anti Kasar sudah di non-Aktifkan', id)
  			} else {
  				dxxoo.reply(from, `Untuk mengaktifkan Fitur Kata Kasar pada Group Chat\n\nApasih kegunaan Fitur Ini? Apabila seseorang mengucapkan kata kasar akan mendapatkan denda\n\nPenggunaan\n${prefix}kasar on --mengaktifkan\n${prefix}kasar off --nonaktifkan\n\n${prefix}reset --reset jumlah denda`, id)
  			}
  			break
  		case 'reset':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
  			const reset = db.get('group').find({ id: groupId }).assign({ members: []}).write()
              if(reset){
  				await dxxoo.sendText(from, "Klasemen telah direset.")
              }
  			break
  		case 'mutegrup':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!isBotGroupAdmins) return dxxoo.reply(from, 'Gagal, silahkan tambahkan bot sebagai admin grup!', id)
  			if (args.length !== 1) return dxxoo.reply(from, `Untuk mengubah settingan group chat agar hanya admin saja yang bisa chat\n\nPenggunaan:\n${prefix}mutegrup on --aktifkan\n${prefix}mutegrup off --nonaktifkan`, id)
              if (args[0] == 'on') {
  				dxxoo.setGroupToAdminsOnly(groupId, true).then(() => dxxoo.sendText(from, 'Berhasil mengubah agar hanya admin yang dapat chat!'))
  			} else if (args[0] == 'off') {
  				dxxoo.setGroupToAdminsOnly(groupId, false).then(() => dxxoo.sendText(from, 'Berhasil mengubah agar semua anggota dapat chat!'))
  			} else {
  				dxxoo.reply(from, `Untuk mengubah settingan group chat agar hanya admin saja yang bisa chat\n\nPenggunaan:\n${prefix}mutegrup on --aktifkan\n${prefix}mutegrup off --nonaktifkan`, id)
  			}
  			break
  		case 'setprofile':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!isBotGroupAdmins) return dxxoo.reply(from, 'Gagal, silahkan tambahkan bot sebagai admin grup!', id)
  			if (isMedia && type == 'image' || isQuotedImage) {
  				const dataMedia = isQuotedImage ? quotedMsg : message
  				const _mimetype = dataMedia.mimetype
  				const mediaData = await decryptMedia(dataMedia, uaOverride)
  				const imageBase64 = `data:${_mimetype};base64,${mediaData.toString('base64')}`
  				await dxxoo.setGroupIcon(groupId, imageBase64)
  			} else if (args.length === 1) {
  				if (!isUrl(url)) { await dxxoo.reply(from, 'Maaf, link yang kamu kirim tidak valid.', id) }
  				dxxoo.setGroupIconByUrl(groupId, url).then((r) => (!r && r !== undefined)
  				? dxxoo.reply(from, 'Maaf, link yang kamu kirim tidak memuat gambar.', id)
  				: dxxoo.reply(from, 'Berhasil mengubah profile group', id))
  			} else {
  				dxxoo.reply(from, `Commands ini digunakan untuk mengganti icon/profile group chat\n\n\nPenggunaan:\n1. Silahkan kirim/reply sebuah gambar dengan caption ${prefix}setprofile\n\n2. Silahkan ketik ${prefix}setprofile linkImage`)
  			}
  			break
  		case 'welcome':
  			if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
              if (!isGroupAdmins) return dxxoo.reply(from, 'Gagal, perintah ini hanya dapat digunakan oleh admin grup!', id)
              if (!isBotGroupAdmins) return dxxoo.reply(from, 'Gagal, silahkan tambahkan bot sebagai admin grup!', id)
  			if (args.length !== 1) return dxxoo.reply(from, `Membuat BOT menyapa member yang baru join kedalam group chat!\n\nPenggunaan:\n${prefix}welcome on --aktifkan\n${prefix}welcome off --nonaktifkan`, id)
  			if (args[0] == 'on') {
  				welcome.push(chatId)
  				fs.writeFileSync('./settings/welcome.json', JSON.stringify(welcome))
  				dxxoo.reply(from, 'Welcome Message sekarang diaktifkan!', id)
  			} else if (args[0] == 'off') {
  				let xporn = welcome.indexOf(chatId)
  				welcome.splice(xporn, 1)
  				fs.writeFileSync('./settings/welcome.json', JSON.stringify(welcome))
  				dxxoo.reply(from, 'Welcome Message sekarang dinonaktifkan', id)
  			} else {
  				dxxoo.reply(from, `Membuat BOT menyapa member yang baru join kedalam group chat!\n\nPenggunaan:\n${prefix}welcome on --aktifkan\n${prefix}welcome off --nonaktifkan`, id)
  			}
  			break
  			
          //Owner Group
          case 'kickall': //mengeluarkan semua member
          if (!isGroupMsg) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai didalam grup!', id)
          let isOwner = chat.groupMetadata.owner == pengirim
          if (!isOwner) return dxxoo.reply(from, 'Maaf, perintah ini hanya dapat dipakai oleh owner grup!', id)
          if (!isBotGroupAdmins) return dxxoo.reply(from, 'Gagal, silahkan tambahkan bot sebagai admin grup!', id)
              const allMem = await dxxoo.getGroupMembers(groupId)
              for (let i = 0; i < allMem.length; i++) {
                  if (groupAdmins.includes(allMem[i].id)) {
  
                  } else {
                      await dxxoo.removeParticipant(groupId, allMem[i].id)
                  }
              }
              dxxoo.reply(from, 'Success kick all member', id)
          break
  
          //Owner Bot
          case 'ban':
              if (!isOwnerBot) return dxxoo.reply(from, 'Perintah ini hanya untuk Owner bot!', id)
              if (args.length == 0) return dxxoo.reply(from, `Untuk banned seseorang agar tidak bisa menggunakan commands\n\nCaranya ketik: \n${prefix}ban add 628xx --untuk mengaktifkan\n${prefix}ban del 628xx --untuk nonaktifkan\n\ncara cepat ban banyak digrup ketik:\n${prefix}ban @tag @tag @tag`, id)
              if (args[0] == 'add') {
                  banned.push(args[1]+'@c.us')
                  fs.writeFileSync('./settings/banned.json', JSON.stringify(banned))
                  dxxoo.reply(from, 'Success banned target!')
              } else
              if (args[0] == 'del') {
                  let xnxx = banned.indexOf(args[1]+'@c.us')
                  banned.splice(xnxx,1)
                  fs.writeFileSync('./settings/banned.json', JSON.stringify(banned))
                  dxxoo.reply(from, 'Success unbanned target!')
              } else {
               for (let i = 0; i < mentionedJidList.length; i++) {
                  banned.push(mentionedJidList[i])
                  fs.writeFileSync('./settings/banned.json', JSON.stringify(banned))
                  dxxoo.reply(from, 'Success ban target!', id)
                  }
              }
              break
          case 'bc': //untuk broadcast atau promosi
              if (!isOwnerBot) return dxxoo.reply(from, 'Perintah ini hanya untuk Owner bot!', id)
              if (args.length == 0) return dxxoo.reply(from, `Untuk broadcast ke semua chat ketik:\n${prefix}bc [isi chat]`)
              let msg = body.slice(4)
              const chatz = await dxxoo.getAllChatIds()
              for (let idk of chatz) {
                  var cvk = await dxxoo.getChatById(idk)
                  if (!cvk.isReadOnly) dxxoo.sendText(idk, `〘 *A R U G A  B C* 〙\n\n${msg}`)
                  if (cvk.isReadOnly) dxxoo.sendText(idk, `〘 *A R U G A  B C* 〙\n\n${msg}`)
              }
              dxxoo.reply(from, 'Broadcast Success!', id)
              break
          case 'leaveall': //mengeluarkan bot dari semua group serta menghapus chatnya
              if (!isOwnerBot) return dxxoo.reply(from, 'Perintah ini hanya untuk Owner bot', id)
              const allChatz = await dxxoo.getAllChatIds()
              const allGroupz = await dxxoo.getAllGroups()
              for (let gclist of allGroupz) {
                  await dxxoo.sendText(gclist.contact.id, `Maaf bot sedang pembersihan, total chat aktif : ${allChatz.length}`)
                  await dxxoo.leaveGroup(gclist.contact.id)
                  await dxxoo.deleteChat(gclist.contact.id)
              }
              dxxoo.reply(from, 'Success leave all group!', id)
              break
          case 'clearall': //menghapus seluruh pesan diakun bot
              if (!isOwnerBot) return dxxoo.reply(from, 'Perintah ini hanya untuk Owner bot', id)
              const allChatx = await dxxoo.getAllChats()
              for (let dchat of allChatx) {
                  await dxxoo.deleteChat(dchat.id)
              }
              dxxoo.reply(from, 'Success clear all chat!', id)
              break
          default:
              break
          }
  		
  		// Simi-simi function
  		if ((!isCmd && isGroupMsg && isSimi) && message.type === 'chat') {
  			axios.get(`https://arugaz.herokuapp.com/api/simisimi?kata=${encodeURIComponent(message.body)}&apikey=${apiSimi}`)
  			.then((res) => {
  				if (res.data.status == 403) return dxxoo.sendText(ownerNumber, `${res.data.result}\n\n${res.data.pesan}`)
  				dxxoo.reply(from, `Simi berkata: ${res.data.result}`, id)
  			})
  			.catch((err) => {
  				dxxoo.reply(from, `${err}`, id)
  			})
  		}
  		
  		// Kata kasar function
  		if(!isCmd && isGroupMsg && isNgegas) {
              const find = db.get('group').find({ id: groupId }).value()
              if(find && find.id === groupId){
                  const cekuser = db.get('group').filter({id: groupId}).map('members').value()[0]
                  const isIn = inArray(pengirim, cekuser)
                  if(cekuser && isIn !== false){
                      if(isKasar){
                          const denda = db.get('group').filter({id: groupId}).map('members['+isIn+']').find({ id: pengirim }).update('denda', n => n + 5000).write()
                          if(denda){
                              await dxxoo.reply(from, "Jangan badword bodoh\nDenda +5.000\nTotal : Rp"+formatin(denda.denda), id)
                          }
                      }
                  } else {
                      const cekMember = db.get('group').filter({id: groupId}).map('members').value()[0]
                      if(cekMember.length === 0){
                          if(isKasar){
                              db.get('group').find({ id: groupId }).set('members', [{id: pengirim, denda: 5000}]).write()
                          } else {
                              db.get('group').find({ id: groupId }).set('members', [{id: pengirim, denda: 0}]).write()
                          }
                      } else {
                          const cekuser = db.get('group').filter({id: groupId}).map('members').value()[0]
                          if(isKasar){
                              cekuser.push({id: pengirim, denda: 5000})
                              await dxxoo.reply(from, "Jangan badword bodoh\nDenda +5.000", id)
                          } else {
                              cekuser.push({id: pengirim, denda: 0})
                          }
                          db.get('group').find({ id: groupId }).set('members', cekuser).write()
                      }
                  }
              } else {
                  if(isKasar){
                      db.get('group').push({ id: groupId, members: [{id: pengirim, denda: 5000}] }).write()
                      await dxxoo.reply(from, "Jangan badword bodoh\nDenda +5.000\nTotal : Rp5.000", id)
                  } else {
                      db.get('group').push({ id: groupId, members: [{id: pengirim, denda: 0}] }).write()
                  }
              }
          }
      } catch (err) {
          console.log(color('[EROR]', 'red'), err)
      }
  }
  