hypixel-api-reborn 11.2.0 → 11.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +1 -1
  2. package/eslint.config.mjs +71 -0
  3. package/package.json +11 -17
  4. package/src/API/getAchievements.js +1 -0
  5. package/src/API/getBoosters.js +1 -0
  6. package/src/API/getChallenges.js +1 -0
  7. package/src/API/getGameCounts.js +1 -0
  8. package/src/API/getGuild.js +4 -3
  9. package/src/API/getGuildAchievements.js +1 -0
  10. package/src/API/getLeaderboards.js +1 -1
  11. package/src/API/getPlayer.js +1 -0
  12. package/src/API/getQuests.js +1 -0
  13. package/src/API/getRecentGames.js +5 -9
  14. package/src/API/getServerInfo.js +40 -37
  15. package/src/API/getStatus.js +1 -0
  16. package/src/API/getWatchdogStats.js +1 -0
  17. package/src/API/skyblock/getAuction.js +8 -6
  18. package/src/API/skyblock/getAuctions.js +15 -12
  19. package/src/API/skyblock/getAuctionsByPlayer.js +1 -1
  20. package/src/API/skyblock/getBazaar.js +1 -3
  21. package/src/API/skyblock/getBingo.js +1 -2
  22. package/src/API/skyblock/getBingoByPlayer.js +3 -3
  23. package/src/API/skyblock/getEndedAuctions.js +1 -0
  24. package/src/API/skyblock/getFireSales.js +1 -1
  25. package/src/API/skyblock/getGovernment.js +1 -2
  26. package/src/API/skyblock/getMember.js +1 -0
  27. package/src/API/skyblock/getMuseum.js +1 -0
  28. package/src/API/skyblock/getNews.js +1 -0
  29. package/src/API/skyblock/getProfiles.js +1 -0
  30. package/src/Client.js +42 -14
  31. package/src/Private/rateLimit.js +7 -11
  32. package/src/Private/requests.js +11 -12
  33. package/src/Private/updater.js +2 -3
  34. package/src/Private/uuidCache.js +1 -2
  35. package/src/Private/validate.js +19 -19
  36. package/src/structures/APIIncident.js +1 -2
  37. package/src/structures/APIStatus.js +0 -1
  38. package/src/structures/Boosters/Booster.js +9 -8
  39. package/src/structures/Game.js +1 -1
  40. package/src/structures/Guild/Guild.js +19 -36
  41. package/src/structures/Guild/GuildMember.js +2 -2
  42. package/src/structures/MiniGames/Arcade.js +242 -240
  43. package/src/structures/MiniGames/ArenaBrawl.js +11 -11
  44. package/src/structures/MiniGames/BedWars.js +197 -194
  45. package/src/structures/MiniGames/BlitzSurvivalGames.js +24 -23
  46. package/src/structures/MiniGames/CopsAndCrims.js +1 -0
  47. package/src/structures/MiniGames/Duels.js +9 -11
  48. package/src/structures/MiniGames/Pit.js +4 -5
  49. package/src/structures/MiniGames/SkyWars.js +197 -186
  50. package/src/structures/MiniGames/SmashHeroes.js +36 -34
  51. package/src/structures/MiniGames/SpeedUHC.js +17 -4
  52. package/src/structures/MiniGames/UHC.js +26 -25
  53. package/src/structures/MiniGames/WoolWars.js +6 -5
  54. package/src/structures/Pet.js +1 -1
  55. package/src/structures/Player.js +13 -104
  56. package/src/structures/PlayerCosmetics.js +5 -4
  57. package/src/structures/SkyBlock/Auctions/AuctionInfo.js +2 -1
  58. package/src/structures/SkyBlock/Auctions/BaseAuction.js +1 -1
  59. package/src/structures/SkyBlock/News/SkyblockNews.js +15 -15
  60. package/src/structures/SkyBlock/PlayerBingo.js +7 -14
  61. package/src/structures/SkyBlock/SkyblockInventoryItem.js +4 -28
  62. package/src/structures/SkyBlock/SkyblockMember.js +78 -223
  63. package/src/structures/SkyBlock/SkyblockPet.js +3 -4
  64. package/src/structures/SkyBlock/Static/Bingo.js +10 -11
  65. package/src/structures/SkyBlock/Static/BingoData.js +1 -1
  66. package/src/structures/Static/Achievement.js +16 -15
  67. package/src/structures/Static/AchievementTier.js +2 -2
  68. package/src/structures/Static/Quest.js +2 -2
  69. package/src/utils/Constants.js +17 -517
  70. package/src/utils/{guildExp.js → Guild.js} +42 -12
  71. package/src/utils/Player.js +112 -0
  72. package/src/utils/SkyblockUtils.js +449 -192
  73. package/src/utils/arrayTools.js +1 -1
  74. package/src/utils/divide.js +1 -1
  75. package/src/utils/index.js +2 -1
  76. package/src/utils/isGuildID.js +1 -1
  77. package/src/utils/oscillation.js +4 -2
  78. package/src/utils/removeSnakeCase.js +11 -7
  79. package/src/utils/rgbToHexColor.js +1 -1
  80. package/src/utils/romanize.js +3 -3
  81. package/src/utils/toUuid.js +4 -4
  82. package/src/utils/varInt.js +2 -2
  83. package/typings/index.d.ts +272 -162
  84. package/src/utils/toIGN.js +0 -24
@@ -1,7 +1,5 @@
1
1
  module.exports = {
2
- skyblock_year_0: 1.5602757e12,
3
-
4
- duels_divisions: [
2
+ duelsDivisions: [
5
3
  { name: 'Rookie', key: 'rookie' },
6
4
  { name: 'Iron', key: 'iron' },
7
5
  { name: 'Gold', key: 'gold' },
@@ -14,8 +12,7 @@ module.exports = {
14
12
  { name: 'WORLD MASTER', key: 'world_master' },
15
13
  { name: "WORLD'S BEST", key: 'worlds_best' }
16
14
  ],
17
-
18
- leveling_xp: {
15
+ levelingXp: {
19
16
  1: 50,
20
17
  2: 125,
21
18
  3: 200,
@@ -67,8 +64,7 @@ module.exports = {
67
64
  49: 3700000,
68
65
  50: 4000000
69
66
  },
70
-
71
- xp_past_50: {
67
+ xpPast50: {
72
68
  51: 4300000,
73
69
  52: 4600000,
74
70
  53: 4900000,
@@ -80,8 +76,7 @@ module.exports = {
80
76
  59: 6700000,
81
77
  60: 7000000
82
78
  },
83
-
84
- runecrafting_xp: {
79
+ runecraftingXp: {
85
80
  1: 50,
86
81
  2: 100,
87
82
  3: 125,
@@ -108,32 +103,7 @@ module.exports = {
108
103
  24: 15300,
109
104
  25: 19050
110
105
  },
111
-
112
- skills: [
113
- 'farming',
114
- 'mining',
115
- 'combat',
116
- 'foraging',
117
- 'fishing',
118
- 'enchanting',
119
- 'alchemy',
120
- 'taming',
121
- 'carpentry',
122
- 'runecrafting'
123
- ],
124
-
125
- skills_achievements: {
126
- farming: 'skyblockHarvester',
127
- mining: 'skyblockExcavator',
128
- combat: 'skyblockCombat',
129
- foraging: 'skyblockGatherer',
130
- fishing: 'skyblockAngler',
131
- enchanting: 'skyblockAugmentation',
132
- alchemy: 'skyblockConcoctor',
133
- taming: 'skyblockDomesticator'
134
- },
135
-
136
- skills_cap: {
106
+ skillsCap: {
137
107
  taming: 50,
138
108
  farming: 60,
139
109
  mining: 60,
@@ -144,10 +114,10 @@ module.exports = {
144
114
  alchemy: 50,
145
115
  carpentry: 50,
146
116
  runecrafting: 25,
147
- dungeons: 50
117
+ dungeons: 50,
118
+ social: 25
148
119
  },
149
-
150
- dungeon_xp: {
120
+ dungeonXp: {
151
121
  1: 50,
152
122
  2: 75,
153
123
  3: 110,
@@ -200,8 +170,7 @@ module.exports = {
200
170
  50: 1.1625e8,
201
171
  55: 1e9
202
172
  },
203
-
204
- hotm_xp: {
173
+ hotmXp: {
205
174
  1: 0,
206
175
  2: 3000,
207
176
  3: 9000,
@@ -210,8 +179,7 @@ module.exports = {
210
179
  6: 100000,
211
180
  7: 150000
212
181
  },
213
-
214
- social_xp: {
182
+ socialXp: {
215
183
  1: 50,
216
184
  2: 100,
217
185
  3: 150,
@@ -238,20 +206,7 @@ module.exports = {
238
206
  24: 40000,
239
207
  25: 50000
240
208
  },
241
-
242
- slayer_xp: {
243
- 1: 5,
244
- 2: 15,
245
- 3: 200,
246
- 4: 1000,
247
- 5: 5000,
248
- 6: 20000,
249
- 7: 100000,
250
- 8: 400000,
251
- 9: 1000000
252
- },
253
-
254
- pet_score: {
209
+ petScore: {
255
210
  COMMON: 1,
256
211
  UNCOMMON: 2,
257
212
  RARE: 3,
@@ -259,8 +214,7 @@ module.exports = {
259
214
  LEGENDARY: 5,
260
215
  MYTHIC: 6
261
216
  },
262
-
263
- pet_rarity_offset: {
217
+ petRarityOffset: {
264
218
  COMMON: 0,
265
219
  UNCOMMON: 6,
266
220
  RARE: 11,
@@ -268,8 +222,7 @@ module.exports = {
268
222
  LEGENDARY: 20,
269
223
  MYTHIC: 20
270
224
  },
271
-
272
- pet_levels: [
225
+ petLevels: [
273
226
  100, 110, 120, 130, 145, 160, 175, 190, 210, 230, 250, 275, 300, 330, 360, 400, 440, 490, 540, 600, 660, 730, 800,
274
227
  880, 960, 1050, 1150, 1260, 1380, 1510, 1650, 1800, 1960, 2130, 2310, 2500, 2700, 2920, 3160, 3420, 3700, 4000,
275
228
  4350, 4750, 5200, 5700, 6300, 7000, 7800, 8700, 9700, 10800, 12000, 13300, 14700, 16200, 17800, 19500, 21300, 23200,
@@ -286,463 +239,6 @@ module.exports = {
286
239
  1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700,
287
240
  1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700, 1886700
288
241
  ],
289
-
290
- base_stats: {
291
- damage: 0,
292
- health: 100,
293
- defense: 0,
294
- effective_health: 100,
295
- strength: 0,
296
- damage_increase: 0,
297
- speed: 100,
298
- crit_chance: 20,
299
- crit_damage: 50,
300
- intelligence: 0
301
- },
302
-
303
- stat_template: {
304
- damage: 0,
305
- health: 0,
306
- defense: 0,
307
- effective_health: 0,
308
- strength: 0,
309
- damage_increase: 0,
310
- speed: 0,
311
- crit_chance: 0,
312
- crit_damage: 0,
313
- intelligence: 0
314
- },
315
-
316
- bonus_stats: {
317
- taming_skill: {
318
- 1: {
319
- pet_luck: 1
320
- }
321
- },
322
- fairy_souls: {
323
- 5: {
324
- health: 3,
325
- defense: 1,
326
- strength: 1,
327
- speed: 0
328
- },
329
- 10: {
330
- health: 3,
331
- defense: 1,
332
- strength: 1,
333
- speed: 0
334
- },
335
- 15: {
336
- health: 4,
337
- defense: 1,
338
- strength: 1,
339
- speed: 0
340
- },
341
- 20: {
342
- health: 4,
343
- defense: 1,
344
- strength: 1,
345
- speed: 0
346
- },
347
- 25: {
348
- health: 5,
349
- defense: 2,
350
- strength: 2,
351
- speed: 0
352
- },
353
- 30: {
354
- health: 5,
355
- defense: 1,
356
- strength: 1,
357
- speed: 0
358
- },
359
- 35: {
360
- health: 6,
361
- defense: 1,
362
- strength: 1,
363
- speed: 0
364
- },
365
- 40: {
366
- health: 6,
367
- defense: 1,
368
- strength: 1,
369
- speed: 0
370
- },
371
- 45: {
372
- health: 7,
373
- defense: 1,
374
- strength: 1,
375
- speed: 0
376
- },
377
- 50: {
378
- health: 7,
379
- defense: 2,
380
- strength: 2,
381
- speed: 1
382
- },
383
- 55: {
384
- health: 8,
385
- defense: 1,
386
- strength: 1,
387
- speed: 0
388
- },
389
- 60: {
390
- health: 8,
391
- defense: 1,
392
- strength: 1,
393
- speed: 0
394
- },
395
- 65: {
396
- health: 9,
397
- defense: 1,
398
- strength: 1,
399
- speed: 0
400
- },
401
- 70: {
402
- health: 9,
403
- defense: 1,
404
- strength: 1,
405
- speed: 0
406
- },
407
- 75: {
408
- health: 10,
409
- defense: 2,
410
- strength: 2,
411
- speed: 0
412
- },
413
- 80: {
414
- health: 10,
415
- defense: 1,
416
- strength: 1,
417
- speed: 0
418
- },
419
- 85: {
420
- health: 11,
421
- defense: 1,
422
- strength: 1,
423
- speed: 0
424
- },
425
- 90: {
426
- health: 11,
427
- defense: 1,
428
- strength: 1,
429
- speed: 0
430
- },
431
- 95: {
432
- health: 12,
433
- defense: 1,
434
- strength: 1,
435
- speed: 0
436
- },
437
- 100: {
438
- health: 12,
439
- defense: 2,
440
- strength: 2,
441
- speed: 1
442
- },
443
- 105: {
444
- health: 13,
445
- defense: 1,
446
- strength: 1,
447
- speed: 0
448
- },
449
- 110: {
450
- health: 13,
451
- defense: 1,
452
- strength: 1,
453
- speed: 0
454
- },
455
- 115: {
456
- health: 14,
457
- defense: 1,
458
- strength: 1,
459
- speed: 0
460
- },
461
- 120: {
462
- health: 14,
463
- defense: 1,
464
- strength: 1,
465
- speed: 0
466
- },
467
- 125: {
468
- health: 15,
469
- defense: 2,
470
- strength: 2,
471
- speed: 0
472
- },
473
- 130: {
474
- health: 15,
475
- defense: 1,
476
- strength: 1,
477
- speed: 0
478
- },
479
- 135: {
480
- health: 16,
481
- defense: 1,
482
- strength: 1,
483
- speed: 0
484
- },
485
- 140: {
486
- health: 16,
487
- defense: 1,
488
- strength: 1,
489
- speed: 0
490
- },
491
- 145: {
492
- health: 17,
493
- defense: 1,
494
- strength: 1,
495
- speed: 0
496
- },
497
- 150: {
498
- health: 17,
499
- defense: 2,
500
- strength: 2,
501
- speed: 1
502
- },
503
- 155: {
504
- health: 18,
505
- defense: 1,
506
- strength: 1,
507
- speed: 0
508
- },
509
- 160: {
510
- health: 18,
511
- defense: 1,
512
- strength: 1,
513
- speed: 0
514
- },
515
- 165: {
516
- health: 19,
517
- defense: 1,
518
- strength: 1,
519
- speed: 0
520
- },
521
- 170: {
522
- health: 19,
523
- defense: 1,
524
- strength: 1,
525
- speed: 0
526
- },
527
- 175: {
528
- health: 20,
529
- defense: 2,
530
- strength: 2,
531
- speed: 0
532
- },
533
- 180: {
534
- health: 20,
535
- defense: 1,
536
- strength: 1,
537
- speed: 0
538
- },
539
- 185: {
540
- health: 21,
541
- defense: 1,
542
- strength: 1,
543
- speed: 0
544
- },
545
- 190: {
546
- health: 21,
547
- defense: 1,
548
- strength: 1,
549
- speed: 0
550
- }
551
- },
552
-
553
- farming_skill: {
554
- 1: {
555
- health: 2
556
- },
557
- 15: {
558
- health: 3
559
- },
560
- 20: {
561
- health: 4
562
- },
563
- 26: {
564
- health: 5
565
- }
566
- },
567
-
568
- combat_skill: {
569
- 1: {
570
- crit_chance: 0.5,
571
- damage_increase: 0.04
572
- }
573
- },
574
-
575
- mining_skill: {
576
- 1: {
577
- defense: 1
578
- },
579
- 15: {
580
- defense: 2
581
- }
582
- },
583
-
584
- foraging_skill: {
585
- 1: {
586
- strength: 1
587
- },
588
- 15: {
589
- strength: 2
590
- }
591
- },
592
-
593
- fishing_skill: {
594
- 1: {
595
- health: 2
596
- },
597
- 15: {
598
- health: 3
599
- },
600
- 20: {
601
- health: 4
602
- },
603
- 26: {
604
- health: 5
605
- }
606
- },
607
-
608
- enchanting_skill: {
609
- 1: {
610
- intelligence: 1
611
- },
612
- 15: {
613
- intelligence: 2
614
- }
615
- },
616
-
617
- alchemy_skill: {
618
- 1: {
619
- intelligence: 1
620
- },
621
- 15: {
622
- intelligence: 2
623
- }
624
- },
625
-
626
- carpentry_skill: {
627
- 1: {}
628
- },
629
-
630
- runecrafting_skill: {
631
- 1: {}
632
- },
633
-
634
- zombie_slayer: {
635
- 1: {
636
- health: 2
637
- },
638
- 3: {
639
- health: 3
640
- },
641
- 5: {
642
- health: 4
643
- },
644
- 7: {
645
- health: 5
646
- },
647
- 9: {
648
- health: 6
649
- }
650
- },
651
-
652
- spider_slayer: {
653
- 1: {
654
- crit_damage: 1
655
- },
656
- 5: {
657
- crit_damage: 2
658
- },
659
- 7: {
660
- crit_damage: 0,
661
- crit_chance: 1
662
- },
663
- 8: {
664
- crit_chance: 0,
665
- crit_damage: 3
666
- }
667
- },
668
-
669
- wolf_slayer: {
670
- 1: {
671
- speed: 1
672
- },
673
- 2: {
674
- health: 2
675
- },
676
- 3: {
677
- speed: 1
678
- },
679
- 4: {
680
- health: 2
681
- },
682
- 5: {
683
- crit_damage: 1
684
- },
685
- 6: {
686
- health: 3
687
- },
688
- 7: {
689
- crit_damage: 2
690
- },
691
- 8: {
692
- speed: 1
693
- }
694
- },
695
-
696
- enchantments: {
697
- sharpness: {
698
- 1: {
699
- damage_multiplicator: 0.05
700
- }
701
- },
702
-
703
- ender: {
704
- 1: {
705
- damage_multiplicator: 0.12
706
- }
707
- },
708
-
709
- giant_killer: {
710
- 1: {
711
- damage_multiplicator: 0.05
712
- }
713
- },
714
-
715
- cubism: {
716
- 1: {
717
- damage_multiplicator: 0.1
718
- }
719
- },
720
-
721
- impaling: {
722
- 1: {
723
- damage_multiplicator: 0.125
724
- }
725
- },
726
-
727
- critical: {
728
- 1: {
729
- crit_damage: 10
730
- }
731
- },
732
-
733
- first_strike: {
734
- 1: {
735
- damage_multiplicator: 0.25
736
- }
737
- },
738
-
739
- power: {
740
- 1: {
741
- damage_multiplicator: 0.08
742
- }
743
- }
744
- }
745
- },
746
242
  leaderboardNames: {
747
243
  ARENA: 'ARENA',
748
244
  COPS_AND_CRIMS: 'MCGO',
@@ -805,6 +301,7 @@ module.exports = {
805
301
  WOOL_GAMES: 'Wool Wars'
806
302
  },
807
303
  SkyWarsPrestigeIcons: {
304
+ /* eslint-disable camelcase */
808
305
  default: '⋆',
809
306
  angel_1: '★',
810
307
  angel_2: '☆',
@@ -830,6 +327,7 @@ module.exports = {
830
327
  rainbow_prestige: '✺',
831
328
  mythic_prestige: 'ಠ_ಠ',
832
329
  favor_of_the_angel_prestige: '⚔'
330
+ /* eslint-enable camelcase */
833
331
  },
834
332
  games: [
835
333
  { name: 'Quake Craft', code: 'QUAKECRAFT', id: 2 },
@@ -869,6 +367,7 @@ module.exports = {
869
367
  { name: 'Idle', code: 'IDLE', id: -6 }
870
368
  ],
871
369
 
370
+ /* eslint-disable camelcase */
872
371
  bestiary: {
873
372
  dynamic: {
874
373
  name: 'Private Island',
@@ -3035,6 +2534,7 @@ module.exports = {
3035
2534
  ]
3036
2535
  }
3037
2536
  },
2537
+ /* eslint-enable camelcase */
3038
2538
  bestiaryBrackets: {
3039
2539
  1: [
3040
2540
  20, 40, 60, 100, 200, 400, 800, 1400, 2000, 3000, 6000, 12000, 20000, 30000, 40000, 50000, 60000, 72000, 86000,
@@ -1,5 +1,12 @@
1
+ /* eslint-disable jsdoc/require-jsdoc */
2
+ const GuildRank = require('../structures/Guild/GuildRank');
1
3
  const dateRegExp = /(\d{4})-(\d{2})-(\d{2})/;
2
- // eslint-disable-next-line require-jsdoc
4
+
5
+ function parseDate(date) {
6
+ date[1] -= 1;
7
+ return new Date(Math.round(new Date(new Date().setUTCFullYear(...date)).setUTCHours(5, 0, 0) / 1000) * 1000);
8
+ }
9
+
3
10
  function parseHistory(historyData) {
4
11
  return Object.entries(historyData).map((x, index) => ({
5
12
  day: x[0],
@@ -17,13 +24,6 @@ function parseHistory(historyData) {
17
24
  }));
18
25
  }
19
26
 
20
- // eslint-disable-next-line require-jsdoc
21
- function parseDate(date) {
22
- date[1] -= 1;
23
- return new Date(Math.round(new Date(new Date().setUTCFullYear(...date)).setUTCHours(5, 0, 0) / 1000) * 1000);
24
- }
25
-
26
- // eslint-disable-next-line require-jsdoc
27
27
  function getGuildLevel(exp) {
28
28
  const EXP_NEEDED = [
29
29
  100000, 150000, 250000, 500000, 750000, 1000000, 1250000, 1500000, 2000000, 2500000, 2500000, 2500000, 2500000,
@@ -32,15 +32,15 @@ function getGuildLevel(exp) {
32
32
 
33
33
  let level = 0;
34
34
 
35
- for (let i = 0; i <= 1000; i += 1) {
36
- let need = 0;
35
+ for (let i = 0; 1000 >= i; i += 1) {
36
+ let need;
37
37
  if (i >= EXP_NEEDED.length) {
38
38
  need = EXP_NEEDED[EXP_NEEDED.length - 1];
39
39
  } else {
40
40
  need = EXP_NEEDED[i];
41
41
  }
42
42
 
43
- if (exp - need < 0) {
43
+ if (0 > exp - need) {
44
44
  return Math.round((level + exp / need) * 100) / 100;
45
45
  }
46
46
  level += 1;
@@ -50,6 +50,28 @@ function getGuildLevel(exp) {
50
50
  return 1000;
51
51
  }
52
52
 
53
+ function ranks(data) {
54
+ return data.ranks && data.ranks.length
55
+ ? data.ranks.map((r) => new GuildRank(r)).sort((a, b) => a.priority - b.priority)
56
+ : [];
57
+ }
58
+
59
+ function expLimit(exp) {
60
+ return 2e5 < exp ? (7e5 < exp ? 2.5e5 + Math.round(exp * 0.03) : 2e5 + Math.round((exp - 2e5) / 10)) : exp;
61
+ }
62
+
63
+ function calculateExpHistory(data) {
64
+ const finalObj = {};
65
+ for (const day of Object.keys(data.members[0].expHistory)) {
66
+ let gexp = 0;
67
+ for (const member of data.members) {
68
+ gexp += member.expHistory[day] || 0;
69
+ }
70
+ finalObj[day] = expLimit(gexp);
71
+ }
72
+ return parseHistory(finalObj);
73
+ }
74
+
53
75
  /**
54
76
  * @typedef {object} ExpHistory
55
77
  * @property {string} day String Date ( unparsed )
@@ -57,4 +79,12 @@ function getGuildLevel(exp) {
57
79
  * @property {number} exp Experience of the day
58
80
  * @property {number} totalExp Experience earned from day 0 to this day
59
81
  */
60
- module.exports = { parseHistory, getGuildLevel };
82
+
83
+ module.exports = {
84
+ parseDate,
85
+ parseHistory,
86
+ getGuildLevel,
87
+ ranks,
88
+ expLimit,
89
+ calculateExpHistory
90
+ };