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
@@ -32,16 +32,6 @@ class Paintball {
32
32
  * @type {number}
33
33
  */
34
34
  this.wins = data.wins || 0;
35
- /**
36
- * Losses
37
- * @type {number}
38
- */
39
- this.losses = data.losses || 0;
40
- /**
41
- * Win Loss ratio
42
- * @type {number}
43
- */
44
- this.WLRatio = divide(this.wins, this.losses);
45
35
  /**
46
36
  * Shots fired
47
37
  * @type {number}
@@ -56,12 +46,42 @@ class Paintball {
56
46
  * Forcefield Time
57
47
  * @type {number}
58
48
  */
59
- this.forcefieldTime = data.forcefieldTime || 0;
49
+ this.forceFieldTime = data.forcefieldTime || 0;
60
50
  /**
61
51
  * Hat
62
52
  * @type {string}
63
53
  */
64
54
  this.hat = data.hat || 'None';
55
+ /**
56
+ * Adrenaline Perk Level
57
+ * @type {number}
58
+ */
59
+ this.adrenaline = data.adrenaline || 0;
60
+ /**
61
+ * Endurance Perk Level
62
+ * @type {number}
63
+ */
64
+ this.endurance = data.endurance || 0;
65
+ /**
66
+ * Fortune Perk Level
67
+ * @type {number}
68
+ */
69
+ this.fortune = data.fortune || 0;
70
+ /**
71
+ * Godfather Perk Level
72
+ * @type {number}
73
+ */
74
+ this.godfather = data.godfather || 0;
75
+ /**
76
+ * Superluck Perk Level
77
+ * @type {number}
78
+ */
79
+ this.superluck = data.superluck || 0;
80
+ /**
81
+ * Transfusion Perk Level
82
+ * @type {number}
83
+ */
84
+ this.transfusion = data.transfusion || 0;
65
85
  }
66
86
  }
67
87
  module.exports = Paintball;
@@ -30,7 +30,7 @@ class Pit {
30
30
  * @type {number}
31
31
  */
32
32
  this.level =
33
- Pit.calcLevel(this.prestige, this.prestige > 0 ? this.xp - Prestiges[this.prestige - 1].SumXp : this.xp).level ??
33
+ Pit.calcLevel(this.prestige, 0 < this.prestige ? this.xp - Prestiges[this.prestige - 1].SumXp : this.xp).level ??
34
34
  0;
35
35
  /**
36
36
  * Kills
@@ -169,7 +169,7 @@ class Pit {
169
169
  edited.push(new PitInventoryItem(inventory[i]));
170
170
  }
171
171
  return edited;
172
- } catch (e) {
172
+ } catch {
173
173
  return [];
174
174
  }
175
175
  };
@@ -191,7 +191,7 @@ class Pit {
191
191
  edited.push(new PitInventoryItem(chest[i]));
192
192
  }
193
193
  return edited;
194
- } catch (e) {
194
+ } catch {
195
195
  return [];
196
196
  }
197
197
  };
@@ -221,7 +221,7 @@ class Pit {
221
221
  static calcLevel(prestige, xp) {
222
222
  const multiplier = Prestiges[prestige].Multiplier;
223
223
  let level = 0;
224
- while (xp > 0 && level < 120) {
224
+ while (0 < xp && 120 > level) {
225
225
  const levelXp = Levels[Math.floor(level / 10)].Xp * multiplier;
226
226
  if (xp >= levelXp * 10) {
227
227
  xp -= levelXp * 10;
@@ -229,7 +229,6 @@ class Pit {
229
229
  } else {
230
230
  const gain = Math.floor(xp / levelXp);
231
231
  level += gain;
232
- xp -= gain * levelXp;
233
232
  xp = 0;
234
233
  }
235
234
  }
@@ -1,4 +1,55 @@
1
1
  const divide = require('../../utils/divide');
2
+
3
+ class QuakecraftMode {
4
+ /**
5
+ * @param {object} data Quakecraft data
6
+ * @param {string} gamemode Gamemode Name
7
+ */
8
+ constructor(data, gamemode) {
9
+ if (gamemode) gamemode = `_${gamemode}`;
10
+ /**
11
+ * Wins
12
+ * @type {number}
13
+ */
14
+ this.wins = data[`wins${gamemode}`] || 0;
15
+ /**
16
+ * Kills
17
+ * @type {number}
18
+ */
19
+ this.kills = data[`kills${gamemode}`] || 0;
20
+ /**
21
+ * Deaths
22
+ * @type {number}
23
+ */
24
+ this.deaths = data[`deaths${gamemode}`] || 0;
25
+ /**
26
+ * Kill Death ratio
27
+ * @type {number}
28
+ */
29
+ this.KDRatio = divide(this.kills, this.deaths);
30
+ /**
31
+ * Kill streaks
32
+ * @type {number}
33
+ */
34
+ this.killstreaks = data[`killstreaks${gamemode}`] || 0;
35
+ /**
36
+ * Distance travelled
37
+ * @type {number}
38
+ */
39
+ this.distanceTravelled = data[`distance_travelled${gamemode}`] || 0;
40
+ /**
41
+ * Shots fired
42
+ * @type {number}
43
+ */
44
+ this.shotsFired = data[`shots_fired${gamemode}`] || 0;
45
+ /**
46
+ * Headshots
47
+ * @type {number}
48
+ */
49
+ this.headshots = data[`headshots${gamemode}`] || 0;
50
+ }
51
+ }
52
+
2
53
  /**
3
54
  * Quakecraft class
4
55
  */
@@ -12,90 +63,102 @@ class Quakecraft {
12
63
  * @type {number}
13
64
  */
14
65
  this.coins = data.coins || 0;
66
+ /**
67
+ * Solo Quakecraft stats
68
+ * @type {QuakecraftMode}
69
+ */
70
+ this.solo = new QuakecraftMode(data);
71
+ /**
72
+ * Teams Quakecraft stats
73
+ * @type {QuakecraftMode}
74
+ */
75
+ this.teams = new QuakecraftMode(data, 'teams');
76
+ /**
77
+ * Wins
78
+ * @type {number}
79
+ */
80
+ this.wins = this.solo.wins + this.teams.wins;
15
81
  /**
16
82
  * Kills
17
83
  * @type {number}
18
84
  */
19
- this.kills = (data.kills || 0) + (data.kills_teams || 0);
85
+ this.kills = this.solo.kills + this.teams.kills;
20
86
  /**
21
87
  * Deaths
22
88
  * @type {number}
23
89
  */
24
- this.deaths = (data.deaths || 0) + (data.deaths_teams || 0);
90
+ this.deaths = this.solo.deaths + this.teams.deaths;
25
91
  /**
26
92
  * Kill Death ratio
27
93
  * @type {number}
28
94
  */
29
95
  this.KDRatio = divide(this.kills, this.deaths);
30
96
  /**
31
- * Wins
97
+ * Kill streaks
32
98
  * @type {number}
33
99
  */
34
- this.wins = (data.wins || 0) + (data.wins_teams || 0);
100
+ this.killstreaks = this.solo.killstreaks + this.teams.killstreaks;
35
101
  /**
36
102
  * Distance travelled
37
103
  * @type {number}
38
104
  */
39
- this.distanceTravelled = data.distance_travelled + data.distance_travelled_teams || 0;
105
+ this.distanceTravelled = this.solo.distanceTravelled + this.teams.distanceTravelled;
40
106
  /**
41
- * Headshots
107
+ * Shots fired
42
108
  * @type {number}
43
109
  */
44
- this.headshots = (data.headshots || 0) + (data.headshots_teams || 0);
110
+ this.shotsFired = this.solo.shotsFired + this.teams.shotsFired;
45
111
  /**
46
- * Shots fired
112
+ * Headshots
47
113
  * @type {number}
48
114
  */
49
- this.shotsFired = (data.shots_fired || 0) + (data.shots_fired_teams || 0);
115
+ this.headshots = this.solo.headshots + this.teams.headshots;
50
116
  /**
51
- * Kill streaks
52
- * @type {number}
117
+ * Instant Respawn
118
+ * @type {boolean}
53
119
  */
54
- this.killstreaks = (data.killstreaks || 0) + (data.killstreaks_teams || 0);
120
+ this.instantRespawn = data.instantRespawn || false;
55
121
  /**
56
- * Highest killstreak
57
- * @type {number}
122
+ * Kill Prefix Color
123
+ * @type {string}
124
+ */
125
+ this.killPrefixColor = data.selectedKillPrefix || '';
126
+ /**
127
+ * Show Prefix
128
+ * @type {boolean}
129
+ */
130
+ this.showPrefix = data.showKillPrefix || false;
131
+ /**
132
+ * Kill Sound
133
+ * @type {string}
58
134
  */
59
- this.highestKillstreak = data.highest_killstreak || 0;
135
+ this.killSound = data.killsound || '';
60
136
  /**
61
- * Solo
62
- * @type {QuakecraftModeStats}
137
+ * Barrel
138
+ * @type {string}
63
139
  */
64
- this.solo = {
65
- kills: data.kills || 0,
66
- deaths: data.deaths || 0,
67
- KDRatio: divide(data.kills, data.deaths),
68
- wins: data.wins || 0,
69
- distanceTravelled: data.distance_travelled || 0,
70
- headshots: data.headshots || 0,
71
- shotsFired: data.shots_fired || 0,
72
- killstreaks: data.killstreaks || 0
73
- };
140
+ this.barrel = data.barrel || '';
74
141
  /**
75
- * Teams
76
- * @type {QuakecraftModeStats}
142
+ * Case
143
+ * @type {string}
77
144
  */
78
- this.teams = {
79
- kills: data.kills_teams || 0,
80
- deaths: data.deaths_teams || 0,
81
- KDRatio: divide(data.kills_teams, data.deaths_teams),
82
- wins: data.wins_teams || 0,
83
- distanceTravelled: data.distance_travelled_teams || 0,
84
- headshots: data.headshots_teams || 0,
85
- shotsFired: data.shots_fired_teams || 0,
86
- killstreaks: data.killstreaks_teams || 0
87
- };
145
+ this.case = data.case || '';
146
+ /**
147
+ * Muzzle
148
+ * @type {string}
149
+ */
150
+ this.muzzle = data.muzzle || '';
151
+ /**
152
+ * Sight
153
+ * @type {string}
154
+ */
155
+ this.sight = data.sight || '';
156
+ /**
157
+ * Trigger
158
+ * @type {string}
159
+ */
160
+ this.trigger = data.trigger || '';
88
161
  }
89
162
  }
163
+
90
164
  module.exports = Quakecraft;
91
- /**
92
- * @typedef {object} QuakecraftModeStats
93
- * @property {number} kills Kills
94
- * @property {number} deaths Deaths
95
- * @property {number} KDRatio Kill Death ratio
96
- * @property {number} wins Wins
97
- * @property {number} distanceTravelled Distance travelled
98
- * @property {number} headshots Headshots
99
- * @property {number} killstreaks Killstreaks
100
- * @property {number} shotsFired Shots fired
101
- */