Advertisement
SilkKheldar

XPv3

Nov 13th, 2022 (edited)
591
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let version  = "4.2";
  2. let createdt = "17 March 2023";
  3. let usage    = '!addcom !xp -ul=moderator -cd=5 $(eval q="$(querystring)";$(urlfetch json https://pastebin.com/raw/nK9mF4Y4))';
  4. let designer = "CharismaticZoe";
  5.  
  6. dates =
  7. [
  8.   [20231012,"1.000.000.000","631.259",  "12 October 2023",  "12-10-2023"],
  9.   [20231011,"999.836.669","630.908",  "11 October 2023",  "11-10-2023"],
  10.   [20231010,"999.582.459","630.243",  "10 October 2023",  "10-10-2023"],
  11.   [20231001,"996.823.362","625.858",  "1 October 2023",  "1-10-2023"],
  12.   [20230928,"995.253.301","623.330",  "28 September 2023",  "28-9-2023"],
  13.   [20230923,"988.912.097","620.738",  "23 September 2023",  "23-9-2023"],
  14.   [20230921,"980.911.897","619.233",  "21 September 2023",  "21-9-2023"],
  15.   [20230920,"979.815.872","618.202",  "20 September 2023",  "20-9-2023"],
  16.   [20230915,"976.759.905","614.601",  "15 September 2023",  "15-9-2023"],
  17.   [20230914,"970.448.185","613.014",  "14 September 2023",  "14-9-2023"],
  18.   [20230907,"953.530.802","607.458",  "7 September 2023",  "7-9-2023"],
  19.   [20230905,"946.014.069","605.218",  "5 September 2023",  "5-9-2023"],
  20.   [20230901,"937.323.819","602.026",  "1 September 2023",  "1-9-2023"],
  21.   [20230831,"936.579.739","600.961",  "31 August 2023",  "31-8-2023"],
  22.   [20230615,"869.944.092","550.000",  "15 June 2023","15-6-2023"],
  23.   [20230606,"865.046.891","546.090",  "6 june 2023","6-6-2023"],
  24.   [20230529,"860.775.006","541.323",  "29 may 2023","29-5-2023"],
  25.   [20230524,"855.186.914","538.320",  "24 may 2023","24-5-2023"],
  26.   [20230516,"852.533.427","534.558",  "16 may 2023","16-5-2023"],
  27.   [20230422,"831.640.922","521.255",  "22 April 2023","22-4-2023"],
  28.   [20230414,"821.128.053","516.751",  "14 April 2023","14-4-2023"],
  29.   [20230406,"813.500.370","513.097",  "6 April 2023","6-4-2023"],
  30.   [20230402,"800.000.445","510.288",  "2 April 2023","2-4-2023"],
  31.   [20230401,"798.480.895","510.000",  "1 April 2023","1-4-2023"],
  32.   [20230317,"770.888.808","500.000",  "17 March 2023","17-3-2023"],
  33.   [20230316,"769.436.948","499.371",  "16 March 2023","16-3-2023"],
  34.   [20230315,"764.927.208","497.843",  "15 March 2023","15-3-2023"],
  35.   [20230314,"762.750.318","497.549",  "14 March 2023","14-3-2023"],
  36.   [20230312,"756.657.930","495.399",  "12 March 2023","12-3-2023"],
  37.   [20230309,"745.952.269","493.041",  "9 March 2023","9-3-2023"],
  38.   [20230308,"745.952.269","492.451",  "8 March 2023","8-3-2023"],
  39.   [20230302,"727.161.481","488.750",  "3 March 2023","2-3-2023"],
  40.   [20230224,"700.001.048","482.054",  "24 February 2023","24-2-2023"],
  41.   [20230223,"696.689.288","481.661",  "23 February 2023","23-2-2023"],
  42.   [20230221,"687.381.368","480.250",  "21 February 2023","21-2-2023"],
  43.   [20230216,"678.043.095","476.678",  "16 February 2023","16-2-2023"],
  44.   [20230207,"657.717.969","469.082",  "7 February 2023","7-2-2023"],
  45.   [20230202,"649.166.931","464.346",  "2 February 2023","2-2-2023"],
  46.   [20230129,"640.126.801","461.050",  "29 January 2023","29-1-2023"],
  47.   [20230127,"634.550.143","459.298",  "27 January 2023","27-1-2023"],
  48.   [20230123,"625.419.044","456.323",  "23 January 2023","22-1-2023"],
  49.   [20230122,"625.001.189","455.724",  "22 January 2023","22-1-2023"],
  50.   [20230121,"618.098.801","453.832",  "21 January 2023","21-1-2023"],
  51.   [20230117,"611.712.926","451.533",  "17 January 2023","17-1-2023"],
  52.   [20230114,"606.915.051","450.000",  "14 January 2023","14-1-2023"],
  53.   [20230113,"604.654.064","449.033",  "13 January 2023","13-1-2023"],
  54.   [20230111,"600.012.264","448.067",  "11 January 2023","11-1-2023"],
  55.   [20230110,"594.890.943","447.824",  "10 January 2023","10-1-2023"],
  56.   [20230107,"588.290.943","445.341",  "7 January 2023","7-1-2023"],
  57.   [20230103,"579.420.623","442.897",  "3 January 2023","3-1-2023"],
  58.   [20221231,"573.717.364","441.520",  "31 december 2022","31-12-2022"],
  59.   [20221224,"561.297.654","437.787",  "24 december 2022","24-12-2022"],
  60.   [20221217,"549.454.877","432.944",  "17 december 2022","17-12-2022"],
  61.   [20221215,"546.606.622","431.594",  "15 december 2022","15-12-2022"],
  62.   [20221212,"542.739.772","429.675",  "12 december 2022","12-12-2022"],
  63.   [20221211,"541.115.962","429.003",  "11 december 2022","11-12-2022"],
  64.   [20221201,"531.730.536","423.913",   "1 december 2022", "1-12-2022"],
  65.   [20221128,"527.175.060","421.561",  "28 November 2022","28-11-2022"],
  66.   [20221127,"523.358.680","420.622",  "27 November 2022","27-11-2022"],
  67.   [20221126,"519.494.270","419.837",  "26 November 2022","26-11-2022"],
  68.   [20221121,"517.506.849","417.538",  "21 November 2022","21-11-2022"],
  69.   [20221114,"514.158.392","415.227",  "14 November 2022","14-11-2022"],
  70.   [20221110,"511.527.778","412.218",  "10 November 2022","10-11-2022"],
  71.   [20221108,"508.794.503","410.571",   "8 November 2022", "8-11-2022"],
  72.   [20221105,"505.744.513","408.653",   "5 November 2022", "5-11-2022"],
  73.   [20221031,"500.007.208","405.203",   "31 Oktober 2022","31-10-2022"],
  74.   [20221020,"490.340.413","400.000",   "20 October 2022","20-10-2022"],
  75.   [20221017,"486.430.211","398.075",   "17 October 2022","17-10-2022"],
  76.   [20221012,"478.551.790","394.481",   "12 October 2022","12-10-2022"],
  77.   [20221002,"468.731.478","388.412",    "2 October 2022", "2-10-2022"],
  78.   [20220924,"463.865.718","384.043", "24 September 2022", "24-9-2022"],
  79.   [20220905,"447.067.085","370.417",  "5 September 2022",  "5-9-2022"],
  80.   [20220904,"445.448.705","369.688",  "4 September 2022",  "4-9-2022"]
  81. ];
  82.  
  83. message_start     = "/me ";
  84. message_middle_1  = " xp ";
  85. message_middle_2  = " pókemon caught on ";
  86. message_middle_p_1 = " pókemon were caught and ";
  87. message_middle_p_2 = " xp was earned between ";
  88. message_middle_p_3 = " and ";
  89.  
  90. let message;
  91.  
  92. if (q == null||q=="")
  93. {
  94.   message = message_start + dates[0][1]+ message_middle_1 + dates[0][2] + message_middle_2 + dates[0][3];
  95. }
  96. else
  97. {
  98.   let date1;
  99.   let date2;
  100.   var teststring1 = q.replaceAll("%20", " ");
  101.   var teststring2 = teststring1.replaceAll("\\", "-");
  102.   var teststring2 = teststring1.replaceAll("%2F", "-");
  103.   var teststring3 = teststring2.replaceAll("/", "-");
  104.   var teststring3 = teststring2.replaceAll("%5C", "-");
  105.   let dLen    = dates.length;
  106.  
  107.   PlaceSpace = teststring3.indexOf(" ");
  108.  
  109.   if(PlaceSpace == -1)
  110.   {
  111.     var PlaceSepSM = teststring3.indexOf("-");
  112.     var PlaceSepMY = teststring3.lastIndexOf("-");
  113.     if(PlaceSepSM > 0)
  114.     {
  115.       dayte =  '0'+ teststring3.slice(0,PlaceSepSM);
  116.       day = dayte.slice(-2);
  117.       lengthS = PlaceSepMY- PlaceSepSM -1;
  118.       if(lengthS >= 1)
  119.       {  
  120.         var mntte =  '0'+ teststring3.substr(PlaceSepSM + 1, lengthS);
  121.         mnt = mntte.slice(-2);
  122.         var year =  teststring3.substr(PlaceSepMY+ 1);
  123.         search= year + mnt + day ;
  124.         let dLen =  dates.length;
  125.         for (let i = 0; i < dLen; i++)
  126.         {
  127.           rdat = dates[i][0] ;
  128.           if(rdat == search)
  129.           {
  130.             message = message_start + dates[i][1]+ message_middle_1 + dates[i][2] + message_middle_2 + dates[i][3];
  131.             break;
  132.           }
  133.           if(rdat < search)
  134.           {
  135.             message =  message_start + 'No data has been found for the date ' + teststring3 + '. Closest earlier known date is ' + dates[i][3] + ' with ' + dates[i][1] + ' xp and ' + dates[i][2] + ' pókemon caught' ;
  136.             break;
  137.           }
  138.           if (i == dLen - 1)
  139.           {
  140.             message =  message_start + 'No data has been found for the date ' + teststring3 + '. the earliest known date is ' + dates[i][3] + ' with ' + dates[i][1] + ' xp and ' + dates[i][2] + ' pókemon caught' ;
  141.             break;
  142.           }
  143.         }
  144.       }
  145.       else
  146.       {
  147.         message =  message_start + 'No data has been found for the date ' + teststring3 + '. last known date is ' + dates[0][3] + ' with ' + dates[0][1] + ' xp and ' + dates[0][2] + ' pókemon caught' ;  
  148.       }
  149.     }
  150.     else
  151.     {
  152.       uq = q.toUpperCase();
  153.       message =  message_start + 'No data has been found for the date ' + teststring3 + '. last known date is ' + dates[0][3] + ' with ' + dates[0][1] + ' xp and ' + dates[0][2] + ' pókemon caught' ;
  154.       switch (uq)
  155.       {
  156.         case "LIST":
  157.           let check;
  158.           message = message_start + 'Last known dates: ';
  159.           let sep = ' ';
  160.           for (let i = 0; i < dLen; i++)
  161.           {
  162.             check = message.length + dates[i][4].length;
  163.             if(check >=400)
  164.             {
  165.               break;
  166.             }
  167.             message = message + sep + dates[i][4];
  168.             sep = ', ';
  169.           }
  170.           break;
  171.  
  172.         case "LISTL":
  173.           let check3;
  174.           message = message_start + 'Last known dates: ';
  175.           let sep3 = ' ';
  176.           for (let i = 0; i < dLen; i++)
  177.           {
  178.             check3 = message.length + dates[i][4].length;
  179.             if(check3 >=400)
  180.             {
  181.               break;
  182.             }
  183.             message = message + sep3 + dates[i][4];
  184.             sep3 = ', ';
  185.           }
  186.           break;
  187.  
  188.         case "LISTF":
  189.           let check2;
  190.           let sep2 = ' ';
  191.           message = message_start + 'First known dates: ';
  192.           for (let i = dLen-1; i > 1; i--)
  193.           {
  194.             check2 = message.length + dates[i][4].length;
  195.             if(check2 >=400)
  196.             {
  197.               break;
  198.             }
  199.             message = message + sep2 + dates[i][4];
  200.             sep2 = ', ';
  201.           }
  202.           break;
  203.  
  204.  
  205.         case "HELP":
  206.           message =  message_start + 'Type !xp for the last know xp.  Type !xp LISTL for a list of last know dates (max 400 positions). Type !xp LISTF for a list of first know dates (max 400 positions). Type !xp <date> for values on date. Type !xp <date><space><date> for comparison between 2 dates. Type !xp version for version data. !xp Milestones for milestone dates';
  207.           break;
  208.  
  209.         case "ASK":
  210.           message =  '@Jaytheunderdog can you show your XP please :rolling_eyes: ';
  211.           break;
  212.  
  213.         case "PARTNER":
  214.           message =  '@JayTheUnderdog became twitch partner om the 30th august 2023';
  215.           break;
  216.  
  217.         case "MILESTONES":
  218.           message =  '20-10-2022:400K, 28-11-2023: 10K Raids, 14-1-2023:450K, 17-3-2023: 500K , 6-4-2023: 10K Trash raids , 23-5-2023: Hit Legend, 15-6-2023: 550K, 1-7-2023: Hit Veteran, 10-8-2023: Hit Veteran again, 15-8-2023: Hit Expert, 28-8-2023: Hit Legend again, 29-8-2023:600K, 12-10-2023:1B XP, 12-11-2023: Hit Legend again, 7-1-2024: 700K, 22-3-2024: Hit Veteran again, 28-3-2024: 750K,';
  219.           break;
  220.  
  221.         case "VERSION":
  222.           message =  message_start + 'Vesion: ' + version + ' (' + createdt +') by ' + designer;
  223.           break;
  224.  
  225.       }
  226.     }
  227.   }
  228.   else
  229.   {
  230.     day1t = teststring3.slice(0,PlaceSpace );
  231.     var PlaceSepSM = day1t.indexOf("-");
  232.     var PlaceSepMY = day1t.lastIndexOf("-");
  233.     let caughtday1;
  234.     let caughtxpy1;
  235.     let displayday1;
  236.     let msgday1;
  237.     if(PlaceSepSM > 0)
  238.     {
  239.       dayte =  '0'+ teststring3.slice(0,PlaceSepSM);
  240.       day = dayte.slice(-2);
  241.       lengthS = PlaceSepMY- PlaceSepSM -1;
  242.       if(lengthS >= 1)
  243.       {  
  244.         let blncont = false;
  245.         var mntte   = '0'+ teststring3.substr(PlaceSepSM + 1, lengthS);
  246.         mnt         = mntte.slice(-2);
  247.         lengthS     = PlaceSpace - PlaceSepMY-1;
  248.         var year    = teststring3.substr(PlaceSepMY+ 1, lengthS);
  249.         search      = year + mnt + day ;
  250.  
  251.  
  252.         for (let i = 0; i < dLen; i++)
  253.         {
  254.           rdat = dates[i][0] ;
  255.           caughtday1  = dates[i][2];
  256.           caughtxpy1  = dates[i][1];
  257.           displayday1 = dates[i][3];
  258.           blncont = 'first';
  259.           if(rdat == search)
  260.           {
  261.             blncont = 'true';
  262.             break;
  263.           }
  264.           if(rdat < search)
  265.           {
  266.             blncont     = 'closest';
  267.             break;
  268.           }
  269.         }
  270.         if(blncont == 'true')
  271.         {
  272.           msgday1 =  ' ';
  273.         }
  274.         if(blncont == 'closest')
  275.         {
  276.           msgday1 = 'No data has been found for the date ' + day1t + ' the closest earlier day is ' + displayday1 + '. ';
  277.         }
  278.         if(blncont == 'first')
  279.         {
  280.           msgday1 =   'No data has been found for the date ' + day1t + '.  First known date is ' + displayday1 + '. ';
  281.         }
  282.       }
  283.       else
  284.       {
  285.         caughtday1  = dates[dLen-1][2];
  286.         caughtxpy1  = dates[dLen-1][1];
  287.         displayday1 = dates[dLen-1][3];
  288.         msgday1 =   'No data has been found for the date ' + day1t + '.  First known date is ' + displayday1 + '. ';
  289.         message = msgday1;
  290.       }
  291.     }
  292.     else
  293.     {
  294.       caughtday1  = dates[dLen-1][2];
  295.       caughtxpy1  = dates[dLen-1][1];
  296.       displayday1 = dates[dLen-1][3];
  297.       msgday1 =   'No data has been found for the date ' + day1t + '.  First known date is ' + displayday1 + '. ';
  298.  
  299.     }  
  300.     day2t = teststring3.slice(PlaceSpace+1 );
  301.     var PlaceSepSM2 = day2t.indexOf("-");
  302.     var PlaceSepMY2 = day2t.lastIndexOf("-");
  303.     let search2;
  304.     let msgday2;
  305.     let blncont2   = false;
  306.     let caughtday2;
  307.     let caughtxpy2;
  308.     let displayday2;
  309.     if(PlaceSepSM2 > 0)
  310.     {
  311.       day2te =  '0'+ day2t.slice(0,PlaceSepSM2);
  312.       day2 = day2te.slice(-2);
  313.       lengthS2 =  PlaceSepMY2 - PlaceSepSM2-1 ;
  314.       if(lengthS2 >= 1)
  315.       {
  316.         var mntte2     = '0'+ day2t.substr(PlaceSepSM2 + 1, lengthS2);
  317.         mnt2           = mntte2.slice(-2);
  318.         lengthS2       =  PlaceSepMY2;
  319.         var year2      = day2t.substr(PlaceSepMY2+1, 4);
  320.         search2        = year2 + mnt2 + day2 ;
  321.         for (let i = 0; i < dLen; i++)
  322.         {
  323.           rdat2 = dates[i][0] ;
  324.           caughtday2  = dates[i][2];
  325.           caughtxpy2  = dates[i][1];
  326.           displayday2 = dates[i][3];
  327.           if(rdat2 == search2)
  328.           {
  329.             blncont2    = 'true';
  330.             break;
  331.           }
  332.           else
  333.           {
  334.             if(rdat2 < search2)
  335.             {
  336.               blncont2     = 'closest';
  337.               break;
  338.             }
  339.             else
  340.             {
  341.               caughtday2  = dates[0][2];
  342.               caughtxpy2  = dates[0][1];
  343.               displayday2 = dates[0][3];
  344.               blncont2 = 'last';
  345.             }
  346.           }
  347.         }
  348.         if(blncont2 == 'true')
  349.         {
  350.           msgday2 =  ' ';
  351.         }
  352.         if(blncont2 == 'closest')
  353.         {
  354.           msgday2 = 'No data has been found for the date ' + day2t + ' the closest earlier day is ' + displayday2 + '. ';
  355.         }
  356.         if(blncont2 == 'last')
  357.         {
  358.           msgday2 =   'No data has been found for the date ' + day2t + '. Last known date is ' + displayday2 + '. ';
  359.         }
  360.       }
  361.       else
  362.       {
  363.         caughtday2  = dates[0][2];
  364.         caughtxpy2  = dates[0][1];
  365.         displayday2 = dates[0][3];
  366.         msgday2 =   'No data has been found for the date ' + day2t + '. Last known  date is ' + displayday1 + '. ';
  367.       }
  368.     }
  369.     else
  370.     {
  371.       caughtday2  = dates[0][2];
  372.       caughtxpy2  = dates[0][1];
  373.       displayday2 = dates[0][3];
  374.       msgday2 =   'No data has been found for the date ' + day2t + '. Last known  date is ' + displayday1 + '. ';
  375.     }
  376.     var countsting1 = caughtday1.replaceAll(".", "");
  377.     var countsting2 = caughtday2.replaceAll(".", "");
  378.     var intday1 = parseInt(countsting1);
  379.     var intday2 = parseInt(countsting2);
  380.     var Iresult = Math.abs(intday1 - intday2);
  381.     var strIresult = Iresult.toLocaleString('nl-NL', { minimumFractionDigits: 0 });
  382.     var xpcountsting1 = caughtxpy1.replaceAll(".", "");
  383.     var xpcountsting2 = caughtxpy2.replaceAll(".", "");
  384.     var xpintday1 = parseInt(xpcountsting1);
  385.     var xpintday2 = parseInt(xpcountsting2);
  386.     var xpIresult = Math.abs(xpintday1 - xpintday2);
  387.     var strxpIresult = xpIresult.toLocaleString('nl-NL', { minimumFractionDigits: 0 });
  388.     message = message_start + msgday1 + msgday2 + strIresult + message_middle_p_1 + strxpIresult + message_middle_p_2 + displayday1 + message_middle_p_3 + displayday2;
  389.   }
  390. }
  391. message;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement