iMannys

activitywipe

Jul 30th, 2021
810
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const Discord = require("discord.js")
  2. const lastwipeschema = require("../../schemas/lastwipeschema")
  3. const playerschema = require("../../schemas/PlayerSchema")
  4. const nbx = require("noblox.js")
  5.  
  6. // Made by peter21340 on roblox or iMannys on Discord
  7. // I have made more advanced scripts, but I dont want to leak them.
  8.  
  9. module.exports = (client, app) => {
  10.     const checkTime = async () => {
  11.  
  12.         const pointtable = { // Displayed in minutes
  13.             1: 30,
  14.             2: 180,
  15.             3: 300,
  16.             4: 600,
  17.             5: 1140,
  18.             6: 1380,
  19.         }
  20.  
  21.         const activitytrackingchannel = client.channels.cache.get("870364723223334972")
  22.  
  23.         const result = await lastwipeschema.findOne()
  24.  
  25.  
  26.  
  27.         if (result != null) {
  28.             const lastwipe = result.lastwipe
  29.  
  30.             const lastday = lastwipe.getUTCDate()
  31.  
  32.             const now = new Date()
  33.             const day = now.getUTCDate()
  34.             const hours = now.getUTCHours()
  35.  
  36.             const month = now.getUTCMonth() + 1
  37.             const year = now.getUTCFullYear()
  38.  
  39.             if (day > lastday) {
  40.                 if (hours >= 1) { // needs to be 1 because of utc
  41.                     var activitytracking = new Discord.MessageEmbed()
  42.                         .setAuthor("GR Bot | Activity tracking", "https://i.imgur.com/dcuTbO6.png")
  43.                         .setTitle("Success!")
  44.                         .setDescription(`${day}/${month}/${year} leaderboard for experience`)
  45.                         .setTimestamp()
  46.                         .setColor("#0099ff")
  47.                         .setFooter("Made by peter21340")
  48.  
  49.                     const maxvalues = await playerschema.find().sort({ "activitytoday.onlyminutes": -1 }) // -1 for descending and 1 for ascending
  50.  
  51.                     for (let index = 0; index < maxvalues.length; index++) {
  52.                         const document = maxvalues[index];
  53.                         var pos = index + 1
  54.                         if (pos < 11) {
  55.                             var onlyminutes = document.activitytoday.onlyminutes
  56.  
  57.                             var eptoday = 0
  58.  
  59.  
  60.                             for (const [i, v] of Object.entries(pointtable)) {
  61.                                 if (onlyminutes >= 30) {
  62.                                     if (v % onlyminutes === 0) {
  63.                                         eptoday = i
  64.                                         break
  65.                                     } else if (v > onlyminutes) {
  66.                                         eptoday = i - 1
  67.                                         break
  68.                                     }
  69.                                 }
  70.                             }
  71.  
  72.                             var activitytodaystring = `${document.activitytoday.hours}h ${document.activitytoday.minutes}min`
  73.  
  74.                             activitytracking.addField(`${pos}) ${await nbx.getUsernameFromId(document.rbxId)} (${document.rbxId})`, `${activitytodaystring} (${eptoday})`)
  75.  
  76.                         }
  77.                     }
  78.  
  79.                     activitytrackingchannel.send(activitytracking)
  80.  
  81.  
  82.                     await playerschema.updateMany({}, {
  83.                         activitytoday: {
  84.                             hours: 0,
  85.                             minutes: 0
  86.                         }
  87.                     })
  88.  
  89.                     await lastwipeschema.updateMany({}, {
  90.                         lastwipe: now,
  91.                     })
  92.  
  93.                     console.log("ACTIVITY WIPED")
  94.                 }
  95.             }
  96.         } else {
  97.             await lastwipeschema.findOneAndUpdate({}, {
  98.                 lastwipe: new Date()
  99.             },
  100.                 {
  101.                     upsert: true
  102.                 })
  103.         }
  104.  
  105.         setTimeout(checkTime, 1000 * 60 * 10)
  106.     }
  107.     checkTime()
  108. }
RAW Paste Data