hypixel-api-reborn 11.2.0 → 11.3.0

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 (101) hide show
  1. package/README.md +1 -1
  2. package/eslint.config.mjs +71 -0
  3. package/package.json +14 -20
  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/housing/getActiveHouses.js +7 -0
  18. package/src/API/housing/getHouse.js +9 -0
  19. package/src/API/housing/getPlayerHouses.js +11 -0
  20. package/src/API/index.js +6 -1
  21. package/src/API/skyblock/getAuction.js +8 -6
  22. package/src/API/skyblock/getAuctions.js +15 -12
  23. package/src/API/skyblock/getAuctionsByPlayer.js +1 -1
  24. package/src/API/skyblock/getBazaar.js +1 -3
  25. package/src/API/skyblock/getBingo.js +1 -2
  26. package/src/API/skyblock/getBingoByPlayer.js +3 -3
  27. package/src/API/skyblock/getEndedAuctions.js +1 -0
  28. package/src/API/skyblock/getFireSales.js +1 -1
  29. package/src/API/skyblock/getGarden.js +7 -0
  30. package/src/API/skyblock/getGovernment.js +1 -2
  31. package/src/API/skyblock/getMember.js +5 -2
  32. package/src/API/skyblock/getMuseum.js +1 -0
  33. package/src/API/skyblock/getNews.js +1 -0
  34. package/src/API/skyblock/getProfiles.js +5 -2
  35. package/src/Client.js +88 -16
  36. package/src/Private/rateLimit.js +7 -11
  37. package/src/Private/requests.js +12 -13
  38. package/src/Private/updater.js +2 -3
  39. package/src/Private/uuidCache.js +1 -2
  40. package/src/Private/validate.js +19 -19
  41. package/src/index.js +5 -0
  42. package/src/structures/APIIncident.js +1 -2
  43. package/src/structures/APIStatus.js +0 -1
  44. package/src/structures/Boosters/Booster.js +9 -8
  45. package/src/structures/Game.js +1 -1
  46. package/src/structures/Guild/Guild.js +19 -36
  47. package/src/structures/Guild/GuildMember.js +2 -2
  48. package/src/structures/House.js +54 -0
  49. package/src/structures/MiniGames/Arcade.js +798 -312
  50. package/src/structures/MiniGames/ArenaBrawl.js +98 -32
  51. package/src/structures/MiniGames/BedWars.js +197 -194
  52. package/src/structures/MiniGames/BlitzSurvivalGames.js +381 -129
  53. package/src/structures/MiniGames/BuildBattle.js +19 -8
  54. package/src/structures/MiniGames/CopsAndCrims.js +253 -25
  55. package/src/structures/MiniGames/Duels.js +905 -664
  56. package/src/structures/MiniGames/MegaWalls.js +390 -51
  57. package/src/structures/MiniGames/MurderMystery.js +151 -30
  58. package/src/structures/MiniGames/Paintball.js +31 -11
  59. package/src/structures/MiniGames/Pit.js +4 -5
  60. package/src/structures/MiniGames/Quakecraft.js +113 -50
  61. package/src/structures/MiniGames/SkyWars.js +528 -372
  62. package/src/structures/MiniGames/SmashHeroes.js +201 -73
  63. package/src/structures/MiniGames/SpeedUHC.js +77 -24
  64. package/src/structures/MiniGames/TNTGames.js +242 -73
  65. package/src/structures/MiniGames/TurboKartRacers.js +55 -115
  66. package/src/structures/MiniGames/UHC.js +144 -132
  67. package/src/structures/MiniGames/VampireZ.js +70 -37
  68. package/src/structures/MiniGames/Warlords.js +126 -1
  69. package/src/structures/MiniGames/WoolWars.js +60 -9
  70. package/src/structures/Pet.js +1 -1
  71. package/src/structures/Player.js +43 -128
  72. package/src/structures/PlayerCosmetics.js +5 -4
  73. package/src/structures/SkyBlock/Auctions/AuctionInfo.js +2 -1
  74. package/src/structures/SkyBlock/Auctions/BaseAuction.js +1 -1
  75. package/src/structures/SkyBlock/News/SkyblockNews.js +15 -15
  76. package/src/structures/SkyBlock/PlayerBingo.js +7 -14
  77. package/src/structures/SkyBlock/SkyblockGarden.js +146 -0
  78. package/src/structures/SkyBlock/SkyblockInventoryItem.js +4 -28
  79. package/src/structures/SkyBlock/SkyblockMember.js +90 -228
  80. package/src/structures/SkyBlock/SkyblockPet.js +3 -4
  81. package/src/structures/SkyBlock/Static/Bingo.js +10 -11
  82. package/src/structures/SkyBlock/Static/BingoData.js +1 -1
  83. package/src/structures/Static/Achievement.js +16 -15
  84. package/src/structures/Static/AchievementTier.js +2 -2
  85. package/src/structures/Static/Quest.js +2 -2
  86. package/src/utils/Constants.js +522 -520
  87. package/src/utils/{guildExp.js → Guild.js} +42 -12
  88. package/src/utils/Player.js +112 -0
  89. package/src/utils/SkyblockUtils.js +482 -192
  90. package/src/utils/arrayTools.js +1 -1
  91. package/src/utils/divide.js +1 -1
  92. package/src/utils/index.js +2 -1
  93. package/src/utils/isGuildID.js +1 -1
  94. package/src/utils/oscillation.js +4 -2
  95. package/src/utils/removeSnakeCase.js +11 -7
  96. package/src/utils/rgbToHexColor.js +1 -1
  97. package/src/utils/romanize.js +3 -3
  98. package/src/utils/toUuid.js +4 -4
  99. package/src/utils/varInt.js +2 -2
  100. package/typings/index.d.ts +1186 -967
  101. package/src/utils/toIGN.js +0 -24
@@ -1,4 +1,236 @@
1
1
  const divide = require('../../utils/divide');
2
+
3
+ class TNTRun {
4
+ /**
5
+ * @param {object} data TNT Games data
6
+ */
7
+ constructor(data) {
8
+ /**
9
+ * Wins
10
+ * @type {number}
11
+ */
12
+ this.wins = data.wins_tntrun || 0;
13
+ /**
14
+ * Best Time (in seconds)
15
+ * @type {number}
16
+ */
17
+ this.bestTime = data.record_tntrun || 0;
18
+ /**
19
+ * Deaths
20
+ * @type {number}
21
+ */
22
+ this.deaths = data.deaths_tntrun || 0;
23
+ /**
24
+ * Slowness Potion Perk Level
25
+ * @type {number}
26
+ */
27
+ this.slownessPotions = data.new_tntrun_slowness_potions || 0;
28
+ /**
29
+ * Speed Potion Perk Level
30
+ * @type {number}
31
+ */
32
+ this.speedPotions = data.new_tntrun_speed_potions || 0;
33
+ /**
34
+ * Double Jump Perk Level
35
+ * @type {number}
36
+ */
37
+ this.doubleJumps = data.new_tntrun_double_jumps || 0;
38
+ /**
39
+ * prefix
40
+ * @type {string}
41
+ */
42
+ this.prefix = data.prefix_tntrun || '';
43
+ }
44
+ }
45
+ class PVPRun {
46
+ /**
47
+ * @param {object} data TNT Games data
48
+ */
49
+ constructor(data) {
50
+ /**
51
+ * Wins
52
+ * @type {number}
53
+ */
54
+ this.wins = data.wins_pvprun || 0;
55
+ /**
56
+ * Best Time Alive (in seconds)
57
+ * @type {number}
58
+ */
59
+ this.bestTime = data.record_pvprun || 0;
60
+ /**
61
+ * Kills
62
+ * @type {number}
63
+ */
64
+ this.kills = data.kills_pvprun || 0;
65
+ /**
66
+ * Daths
67
+ * @type {number}
68
+ */
69
+ this.deaths = data.deaths_pvprun || 0;
70
+ /**
71
+ * KDRatio
72
+ * @type {number}
73
+ */
74
+ this.KDRatio = divide(this.kills, this.deaths);
75
+ /**
76
+ * Regeneration Perk Level
77
+ * @type {number}
78
+ */
79
+ this.regeneration = data.new_pvprun_regeneration || 0;
80
+ /**
81
+ * Notoriety Perk Level
82
+ * @type {number}
83
+ */
84
+ this.notoriety = data.new_pvprun_notoriety || 0;
85
+ /**
86
+ * Fortitude Perk Level
87
+ * @type {number}
88
+ */
89
+ this.fortitude = data.new_pvprun_fortitude || 0;
90
+ /**
91
+ * Double Jump Perk level
92
+ * @type {number}
93
+ */
94
+ this.doubleJumps = data.new_pvprun_double_jumps || 0;
95
+ /**
96
+ * Prefix
97
+ * @type {string}
98
+ */
99
+ this.prefix = data.prefix_pvprun || '';
100
+ }
101
+ }
102
+ class BowSpleef {
103
+ /**
104
+ * @param {object} data TNT Games data
105
+ */
106
+ constructor(data) {
107
+ /**
108
+ * wins
109
+ * @type {number}
110
+ */
111
+ this.wins = data.wins_bowspleef || 0;
112
+ /**
113
+ * tags
114
+ * @type {number}
115
+ */
116
+ this.tags = data.tags_bowspleef || 0;
117
+ /**
118
+ * deaths
119
+ * @type {number}
120
+ */
121
+ this.deaths = data.deaths_bowspleef || 0;
122
+ /**
123
+ * prefix
124
+ * @type {string}
125
+ */
126
+ this.prefix = data.prefix_bowspleef || '';
127
+ }
128
+ }
129
+ class TNTTag {
130
+ /**
131
+ * @param {object} data TNT Games data
132
+ */
133
+ constructor(data) {
134
+ /**
135
+ * Wins
136
+ * @type {number}
137
+ */
138
+ this.wins = data.wins_tntag || 0;
139
+ /**
140
+ * Kills
141
+ * @type {number}
142
+ */
143
+ this.kills = data.kills_tntag || 0;
144
+ /**
145
+ * Deaths
146
+ * @type {number}
147
+ */
148
+ this.deaths = data.deaths_tntag || 0;
149
+ /**
150
+ * KDRatio
151
+ * @type {number}
152
+ */
153
+ this.KDRatio = divide(this.kills, this.deaths);
154
+ /**
155
+ * Speed Perk Level
156
+ * @type {number}
157
+ */
158
+ this.speed = data.new_tntag_speedy || 0;
159
+ /**
160
+ * Blast Protection Perk Level
161
+ * @type {number}
162
+ */
163
+ this.blastProtection = data.tag_blastprotection || 0;
164
+ /**
165
+ * Speed It Up Perk Level
166
+ * @type {number}
167
+ */
168
+ this.speedItUp = data.tag_speeditup || 0;
169
+ /**
170
+ * Slow It Down Perk Level
171
+ * @type {number}
172
+ */
173
+ this.slowItDown = data.tag_slowitdown || 0;
174
+ /**
175
+ * Prefix
176
+ * @type {string}
177
+ */
178
+ this.prefix = data.prefix_tntag || '';
179
+ }
180
+ }
181
+ class TNTWizards {
182
+ /**
183
+ * @param {object} data TNT Games data
184
+ */
185
+ constructor(data) {
186
+ /**
187
+ * Wins
188
+ * @type {number}
189
+ */
190
+ this.wins = data.wins_capture || 0;
191
+ /**
192
+ * Kills
193
+ * @type {number}
194
+ */
195
+ this.kills = data.kills_capture || 0;
196
+ /**
197
+ * Assists
198
+ * @type {number}
199
+ */
200
+ this.assists = data.assists_capture || 0;
201
+ /**
202
+ * Deaths
203
+ * @type {number}
204
+ */
205
+ this.deaths = data.deaths_capture || 0;
206
+ /**
207
+ * KDRatio
208
+ * @type {number}
209
+ */
210
+ this.KDRatio = divide(this.kills, this.deaths);
211
+ /**
212
+ * Points
213
+ * @type {number}
214
+ */
215
+ this.points = data.points_capture || 0;
216
+ /**
217
+ * Kinetic Healing
218
+ * @type {number}
219
+ */
220
+ this.kineticHealing = data.kinetic_healing_capture || 0;
221
+ /**
222
+ * Air Time (In seconds)
223
+ * @type {number}
224
+ */
225
+ this.airTime = data.air_time_capture || 0;
226
+ /**
227
+ * Prefix
228
+ * @type {string}
229
+ */
230
+ this.prefix = data.prefix_capture || '';
231
+ }
232
+ }
233
+
2
234
  /**
3
235
  * The TNT Games class
4
236
  */
@@ -26,91 +258,28 @@ class TNTGames {
26
258
  * TNT Run
27
259
  * @type {TNTRun}
28
260
  */
29
- this.tntrun = {
30
- wins: data.wins_tntrun || 0,
31
- deaths: data.deaths_tntrun || 0,
32
- KDRatio: divide(data.wins_tntrun, data.deaths_tntrun),
33
- record: data.record_tntrun || 0
34
- };
261
+ this.tntrun = new TNTRun(data);
35
262
  /**
36
263
  * PVP Run
37
264
  * @type {PVPRun}
38
265
  */
39
- this.pvprun = {
40
- kills: data.kills_pvprun || 0,
41
- wins: data.wins_pvprun || 0,
42
- deaths: data.deaths_pvprun || 0,
43
- KDRatio: divide(data.kills_pvprun, data.deaths_pvprun),
44
- record: data.record_pvprun || 0
45
- };
266
+ this.pvpRun = new PVPRun(data);
46
267
  /**
47
- * TNT Tag
48
- * @type {TNTTag}
268
+ * Bowspleef
269
+ * @type {BowSpleef}
49
270
  */
50
- this.tnttag = {
51
- kills: data.kills_tntag || 0,
52
- wins: data.wins_tntag || 0,
53
- speed: data.tag_speed || 0
54
- };
271
+ this.bowSpleef = new BowSpleef(data);
55
272
  /**
56
- * Bowspleef
57
- * @type {Bowspleef}
273
+ * TNT Tag
274
+ * @type {TNTTag}
58
275
  */
59
- this.bowspleef = {
60
- wins: data.wins_bowspleef || 0,
61
- tags: data.tags_bowspleef || 0,
62
- deaths: data.deaths_bowspleef || 0
63
- };
276
+ this.tnttag = new TNTTag(data);
64
277
  /**
65
278
  * Wizards
66
279
  * @type {TNTWizards}
67
280
  */
68
- this.wizards = {
69
- points: data.points_capture || 0,
70
- class: data.capture_class ?? null,
71
- kills: data.kills_capture || 0,
72
- assists: data.assists_capture || 0,
73
- wins: data.wins_capture || 0,
74
- deaths: data.deaths_capture || 0,
75
- KDRatio: divide(data.kills_capture, data.deaths_capture)
76
- };
281
+ this.wizards = new TNTWizards(data);
77
282
  }
78
283
  }
79
- /**
80
- * @typedef {object} TNTRun
81
- * @property {number} wins Wins
82
- * @property {number} deaths Deaths
83
- * @property {number} KDRatio Kill/Death ratio
84
- * @property {number} record Record in seconds
85
- */
86
- /**
87
- * @typedef {object} PVPRun
88
- * @property {number} kills Kills
89
- * @property {number} wins Wins
90
- * @property {number} deaths Deaths
91
- * @property {number} KDRatio Kill/Death ratio
92
- * @property {number} record Record in seconds
93
- */
94
- /**
95
- * @typedef {object} TNTTag
96
- * @property {number} kills Kills
97
- * @property {number} wins Wins
98
- * @property {number} speed Speed
99
- */
100
- /**
101
- * @typedef {object} Bowspleef
102
- * @property {number} wins Wins
103
- * @property {number} tags Tags
104
- * @property {number} deaths Deaths
105
- */
106
- /**
107
- * @typedef {object} TNTWizards
108
- * @property {number} points Points
109
- * @property {string} class Class
110
- * @property {number} kills Kills
111
- * @property {number} assists Assists
112
- * @property {number} wins Wins
113
- * @property {number} deaths Deaths
114
- * @property {number} KDRatio Kill/Death ratio
115
- */
284
+
116
285
  module.exports = TNTGames;
@@ -1,3 +1,42 @@
1
+ class TurboKartRacersMap {
2
+ /**
3
+ * @param {object} data TurboKartRacers data
4
+ * @param {string} mapName TurboKartRacers Map
5
+ */
6
+ constructor(data, mapName) {
7
+ /**
8
+ * Map
9
+ * @type {string}
10
+ */
11
+ this.map = mapName;
12
+ /**
13
+ * Plays
14
+ * @type {number}
15
+ */
16
+ this.plays = data[`${mapName}_plays`] || 0;
17
+ /**
18
+ * Box Pickups
19
+ * @type {number}
20
+ */
21
+ this.boxPickups = data[`box_pickups_${mapName}`] || 0;
22
+ /**
23
+ * Bronze Trophies
24
+ * @type {number}
25
+ */
26
+ this.bronzeTrophies = data[`bronze_trophy_${mapName}`] || 0;
27
+ /**
28
+ * Silver Trophies
29
+ * @type {number}
30
+ */
31
+ this.silverTrophies = data[`silver_trophy_${mapName}`] || 0;
32
+ /**
33
+ * Gold Trophies
34
+ * @type {number}
35
+ */
36
+ this.goldTrophies = data[`gold_trophy_${mapName}`] || 0;
37
+ }
38
+ }
39
+
1
40
  /**
2
41
  * TurboKartRacers class
3
42
  */
@@ -41,136 +80,36 @@ class TurboKartRacers {
41
80
  * @type {number}
42
81
  */
43
82
  this.boxPickups = data.box_pickups || 0;
44
- /**
45
- * HypixelGP Box pickups
46
- * @type {number}
47
- */
48
- this.hypixelgpBoxPickups = data.box_pickups_hypixelgp || 0;
49
- /**
50
- * Retro Box pickups
51
- * @type {number}
52
- */
53
- this.retroBoxPickups = data.box_pickups_retro || 0;
54
- /**
55
- * Olympus Box pickups
56
- * @type {number}
57
- */
58
- this.olympusBoxPickups = data.box_pickups_olympus || 0;
59
- /**
60
- * Canyon Box pickups
61
- * @type {number}
62
- */
63
- this.canyonBoxPickups = data.box_pickups_canyon || 0;
64
- /**
65
- * Jungle Rusg Box pickups
66
- * @type {number}
67
- */
68
- this.junglerushBoxPickups = data.box_pickups_junglerush || 0;
69
83
  /**
70
84
  * Horn
71
85
  * @type {'DEFAULT' | 'SHY' | 'ALIEN' | 'TAXI' | 'KLAXON' | 'TRICYCLE' | 'ALARM' | 'KLOON' | 'TEDDY' | 'TRUCK' | 'JERRY'}
72
86
  */
73
87
  this.horn = data.horn || 'DEFAULT';
74
88
  /**
75
- * Retro Map Plays
76
- * @type {number}
89
+ * retro Map Stats
90
+ * @type {TurboKartRacersMap}
77
91
  */
78
- this.retroPlays = data.retro_plays || 0;
92
+ this.retro = new TurboKartRacersMap(data, 'retro');
79
93
  /**
80
- * Hypixel GP Map Plays
81
- * @type {number}
94
+ * HypixelHP Map Stats
95
+ * @type {TurboKartRacersMap}
82
96
  */
83
- this.hypixelgpPlays = data.hypixelgp_plays || 0;
97
+ this.hypixelgp = new TurboKartRacersMap(data, 'hypixelgp');
84
98
  /**
85
- * Olympus Map Plays
86
- * @type {number}
99
+ * Olympus Map Stats
100
+ * @type {TurboKartRacersMap}
87
101
  */
88
- this.olympusPlays = data.olympus_plays || 0;
102
+ this.olympus = new TurboKartRacersMap(data, 'olympus');
89
103
  /**
90
- * Jungle Rush Map Plays
91
- * @type {number}
92
- */
93
- this.junglerushPlays = data.junglerush_plays || 0;
94
- /**
95
- * Canyon Map Plays
96
- * @type {number}
104
+ * Jungle Rush Map Stats
105
+ * @type {TurboKartRacersMap}
97
106
  */
98
- this.canyonPlays = data.canyon_plays || 0;
107
+ this.junglerush = new TurboKartRacersMap(data, 'junglerush');
99
108
  /**
100
- * Retro Bronze Trophies
101
- * @type {number}
102
- */
103
- this.retroBronzeTrophies = data.bronze_trophy_retro || 0;
104
- /**
105
- * Jungle Rush Map Plays
106
- * @type {number}
107
- */
108
- this.retroSilverTrophies = data.silver_trophy_retro || 0;
109
- /**
110
- * Jungle Rush Map Plays
111
- * @type {number}
112
- */
113
- this.retroGoldTrophies = data.gold_trophy_retro || 0;
114
- /**
115
- * hypixelgp Bronze Trophies
116
- * @type {number}
117
- */
118
- this.hypixelgpBronzeTrophies = data.bronze_trophy_hypixelgp || 0;
119
- /**
120
- * hypixelgp Silver Trophies
121
- * @type {number}
122
- */
123
- this.hypixelgpSilverTrophies = data.silver_trophy_hypixelgp || 0;
124
- /**
125
- * hypixelgp Gold Trophies
126
- * @type {number}
127
- */
128
- this.hypixelgpGoldTrophies = data.gold_trophy_hypixelgp || 0;
129
- /**
130
- * olympus Bronze Trophies
131
- * @type {number}
132
- */
133
- this.olympusBronzeTrophies = data.bronze_trophy_olympus || 0;
134
- /**
135
- * olympus Silver Trophies
136
- * @type {number}
137
- */
138
- this.olympusSilverTrophies = data.silver_trophy_olympus || 0;
139
- /**
140
- * olympus Gold Trophies
141
- * @type {number}
142
- */
143
- this.olympusGoldTrophies = data.gold_trophy_olympus || 0;
144
- /**
145
- * junglerush Bronze Trophies
146
- * @type {number}
147
- */
148
- this.junglerushBronzeTrophies = data.bronze_trophy_junglerush || 0;
149
- /**
150
- * junglerush Silver Trophies
151
- * @type {number}
152
- */
153
- this.junglerushSilverTrophies = data.silver_trophy_junglerush || 0;
154
- /**
155
- * junglerush Gold Trophies
156
- * @type {number}
157
- */
158
- this.junglerushGoldTrophies = data.gold_trophy_junglerush || 0;
159
- /**
160
- * Canyon Bronze Trophies
161
- * @type {number}
162
- */
163
- this.canyonBronzeTrophies = data.gold_trophy_canyon || 0;
164
- /**
165
- * Canyon Silver Trophies
166
- * @type {number}
167
- */
168
- this.canyonSilverTrophies = data.gold_trophy_canyon || 0;
169
- /**
170
- * Canyon Gold Trophies
171
- * @type {number}
109
+ * Canyon Map Stats
110
+ * @type {TurboKartRacersMap}
172
111
  */
173
- this.canyonGoldTrophies = data.gold_trophy_canyon || 0;
112
+ this.canyon = new TurboKartRacersMap(data, 'canyon');
174
113
  /**
175
114
  * Bananas Recived
176
115
  * @type {number}
@@ -198,4 +137,5 @@ class TurboKartRacers {
198
137
  this.grandPrixTokens = data.grand_prix_tokens || 0;
199
138
  }
200
139
  }
140
+
201
141
  module.exports = TurboKartRacers;