hypixel-api-reborn 9.0.3 → 11.0.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 (105) hide show
  1. package/.prettierrc +13 -0
  2. package/README.md +28 -16
  3. package/package.json +60 -58
  4. package/src/API/getAPIStatus.js +8 -7
  5. package/src/API/getBoosters.js +6 -5
  6. package/src/API/getGameCounts.js +6 -5
  7. package/src/API/getGuild.js +18 -17
  8. package/src/API/getLeaderboards.js +13 -12
  9. package/src/API/getPlayer.js +22 -26
  10. package/src/API/getRecentGames.js +18 -17
  11. package/src/API/getServerInfo.js +66 -77
  12. package/src/API/getStatus.js +8 -7
  13. package/src/API/getWatchdogStats.js +6 -5
  14. package/src/API/index.js +19 -9
  15. package/src/API/skyblock/getEndedSkyblockAuctions.js +10 -9
  16. package/src/API/skyblock/getSkyblockAuctions.js +64 -64
  17. package/src/API/skyblock/getSkyblockAuctionsByPlayer.js +11 -10
  18. package/src/API/skyblock/getSkyblockBazaar.js +10 -9
  19. package/src/API/skyblock/getSkyblockMember.js +28 -24
  20. package/src/API/skyblock/getSkyblockNews.js +6 -5
  21. package/src/API/skyblock/getSkyblockProfiles.js +44 -40
  22. package/src/Client.js +406 -430
  23. package/src/Errors.js +44 -38
  24. package/src/Private/defaultCache.js +77 -0
  25. package/src/Private/rateLimit.js +79 -98
  26. package/src/Private/requests.js +65 -39
  27. package/src/Private/updater.js +45 -42
  28. package/src/Private/uuidCache.js +37 -33
  29. package/src/Private/validate.js +97 -97
  30. package/src/index.js +82 -83
  31. package/src/structures/APIIncident.js +78 -78
  32. package/src/structures/APIStatus.js +47 -47
  33. package/src/structures/Boosters/Booster.js +83 -87
  34. package/src/structures/Color.js +129 -129
  35. package/src/structures/Game.js +164 -160
  36. package/src/structures/GameCounts.js +151 -151
  37. package/src/structures/Guild/Guild.js +204 -218
  38. package/src/structures/Guild/GuildMember.js +66 -66
  39. package/src/structures/Guild/GuildRank.js +48 -48
  40. package/src/structures/ItemBytes.js +33 -36
  41. package/src/structures/Leaderboard.js +31 -31
  42. package/src/structures/MiniGames/Arcade.js +567 -569
  43. package/src/structures/MiniGames/ArenaBrawl.js +52 -56
  44. package/src/structures/MiniGames/BedWars.js +423 -329
  45. package/src/structures/MiniGames/BlitzSurvivalGames.js +172 -148
  46. package/src/structures/MiniGames/BuildBattle.js +53 -53
  47. package/src/structures/MiniGames/CopsAndCrims.js +90 -90
  48. package/src/structures/MiniGames/Duels.js +694 -460
  49. package/src/structures/MiniGames/MegaWalls.js +137 -137
  50. package/src/structures/MiniGames/MurderMystery.js +93 -93
  51. package/src/structures/MiniGames/Paintball.js +67 -67
  52. package/src/structures/MiniGames/Pit.js +19 -19
  53. package/src/structures/MiniGames/Quakecraft.js +101 -101
  54. package/src/structures/MiniGames/SkyWars.js +508 -559
  55. package/src/structures/MiniGames/SmashHeroes.js +144 -151
  56. package/src/structures/MiniGames/SpeedUHC.js +115 -57
  57. package/src/structures/MiniGames/TNTGames.js +116 -116
  58. package/src/structures/MiniGames/TurboKartRacers.js +201 -71
  59. package/src/structures/MiniGames/UHC.js +164 -143
  60. package/src/structures/MiniGames/VampireZ.js +60 -60
  61. package/src/structures/MiniGames/Walls.js +52 -52
  62. package/src/structures/MiniGames/Warlords.js +62 -62
  63. package/src/structures/MiniGames/WoolWars.js +123 -0
  64. package/src/structures/Pet.js +96 -97
  65. package/src/structures/Pets.js +64 -64
  66. package/src/structures/Player.js +433 -453
  67. package/src/structures/PlayerCosmetics.js +100 -95
  68. package/src/structures/RecentGame.js +57 -57
  69. package/src/structures/ServerInfo.js +78 -78
  70. package/src/structures/SkyBlock/Auctions/Auction.js +104 -104
  71. package/src/structures/SkyBlock/Auctions/AuctionInfo.js +54 -54
  72. package/src/structures/SkyBlock/Auctions/BaseAuction.js +45 -45
  73. package/src/structures/SkyBlock/Auctions/Bid.js +48 -48
  74. package/src/structures/SkyBlock/Auctions/PartialAuction.js +25 -25
  75. package/src/structures/SkyBlock/Bazzar/Order.js +38 -38
  76. package/src/structures/SkyBlock/Bazzar/Product.js +53 -53
  77. package/src/structures/SkyBlock/News/SkyblockNews.js +60 -68
  78. package/src/structures/SkyBlock/SkyblockInventoryItem.js +124 -102
  79. package/src/structures/SkyBlock/SkyblockMember.js +820 -675
  80. package/src/structures/SkyBlock/SkyblockPet.js +71 -71
  81. package/src/structures/SkyBlock/SkyblockProfile.js +60 -60
  82. package/src/structures/Status.js +41 -41
  83. package/src/structures/Watchdog/Stats.js +36 -36
  84. package/src/utils/Constants.js +2789 -795
  85. package/src/utils/SkyblockUtils.js +208 -164
  86. package/src/utils/arrayTools.js +4 -4
  87. package/src/utils/divide.js +5 -5
  88. package/src/utils/guildExp.js +57 -67
  89. package/src/utils/index.js +13 -9
  90. package/src/utils/isGuildID.js +3 -3
  91. package/src/utils/isUUID.js +5 -5
  92. package/src/utils/oscillation.js +15 -23
  93. package/src/utils/removeSnakeCase.js +22 -35
  94. package/src/utils/rgbToHexColor.js +8 -0
  95. package/src/utils/romanize.js +11 -0
  96. package/src/utils/toIGN.js +20 -20
  97. package/src/utils/toUuid.js +19 -19
  98. package/src/utils/varInt.js +17 -21
  99. package/typings/index.d.ts +3532 -2625
  100. package/src/API/getFriends.js +0 -13
  101. package/src/API/getKeyInfo.js +0 -9
  102. package/src/API/getRankedSkyWars.js +0 -10
  103. package/src/structures/Friend.js +0 -38
  104. package/src/structures/KeyInfo.js +0 -42
  105. package/src/structures/MiniGames/SkyWarsRanked.js +0 -45
@@ -1,35 +1,22 @@
1
- /**
2
- * @param {object} obj
3
- * @return {object}
4
- */
5
- const single = (obj) => Object.keys(obj).reduce((pV, cV) => ({ ...pV, [cV.replace(/_[a-z]/gi, (x) => x[1].toUpperCase())]: obj[cV] }), {});
6
- /**
7
- * @param {object} obj
8
- * @return {boolean}
9
- */
10
- function validateJSON (obj) {
11
- return (typeof obj === 'object') && (JSON.stringify(obj)[0] === '{');
12
- }
13
- /**
14
- * @param {object} obj
15
- * @param {boolean} lowerCase
16
- * @return {object}
17
- */
18
- function recursive (obj, lowerCase = false) {
19
- if (!validateJSON(obj)) return obj;
20
- return Object.keys(obj).reduce((pV, cV) => ({ ...pV, [(lowerCase ? cV : cV.toLowerCase()).replace(/_[a-z]/gi, (x) => x[1].toUpperCase())]: recursive(obj[cV]) }), {});
21
- }
22
- /**
23
- * @param {string} str
24
- * @return {string}
25
- */
26
- function removeSnakeCaseString (str) {
27
- if (typeof str !== 'string') return null;
28
- return str.toLowerCase().replace(/_[a-z]/gi, (x) => x[1].toUpperCase());
29
- }
30
- module.exports = {
31
- single,
32
- recursive,
33
- validateJSON,
34
- removeSnakeCaseString
35
- };
1
+ // eslint-disable-next-line require-jsdoc
2
+ const single = (obj) => Object.keys(obj).reduce((pV, cV) => ({ ...pV, [cV.replace(/_[a-z]/gi, (x) => x[1].toUpperCase())]: obj[cV] }), {});
3
+ // eslint-disable-next-line require-jsdoc
4
+ function validateJSON(obj) {
5
+ return typeof obj === 'object' && JSON.stringify(obj)[0] === '{';
6
+ }
7
+ // eslint-disable-next-line require-jsdoc
8
+ function recursive(obj, lowerCase = false) {
9
+ if (!validateJSON(obj)) return obj;
10
+ return Object.keys(obj).reduce((pV, cV) => ({ ...pV, [(lowerCase ? cV : cV.toLowerCase()).replace(/_[a-z]/gi, (x) => x[1].toUpperCase())]: recursive(obj[cV]) }), {});
11
+ }
12
+ // eslint-disable-next-line require-jsdoc
13
+ function removeSnakeCaseString(str) {
14
+ if (typeof str !== 'string') return null;
15
+ return str.toLowerCase().replace(/_[a-z]/gi, (x) => x[1].toUpperCase());
16
+ }
17
+ module.exports = {
18
+ single,
19
+ recursive,
20
+ validateJSON,
21
+ removeSnakeCaseString
22
+ };
@@ -0,0 +1,8 @@
1
+ module.exports = (rgb) => {
2
+ let hexCode = '#';
3
+ for (const num of rgb) {
4
+ const hex = Number(num).toString(16);
5
+ hexCode += hex.length === 1 ? '0' + hex : hex;
6
+ }
7
+ return hexCode;
8
+ };
@@ -0,0 +1,11 @@
1
+ module.exports = (num) => {
2
+ if (isNaN(num)) return NaN;
3
+ const digits = String(+num).split('');
4
+ const key = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
5
+ let roman = '';
6
+ let i = 3;
7
+ while (i--) {
8
+ roman = (key[+digits.pop() + i * 10] || '') + roman;
9
+ }
10
+ return Array(+digits.join('') + 1).join('M') + roman;
11
+ };
@@ -1,20 +1,20 @@
1
- const fetch = require('../Private/uuidCache.js');
2
- const isUUID = require('./isUUID.js');
3
- const Errors = require('../Errors');
4
-
5
- module.exports = async (input) => {
6
- if (!input) throw new Error(Errors.NO_NICKNAME_UUID);
7
- if (typeof input !== 'string') throw new Error(Errors.UUID_NICKNAME_MUST_BE_A_STRING);
8
- if (isUUID(input)) input = input.replace(/-/g, '');
9
- else throw new Error(Errors.MALFORMED_UUID);
10
- try {
11
- const res = await fetch(`https://sessionserver.mojang.com/session/minecraft/profile/${input}`, input);
12
- const parsedRes = await res.json();
13
- if (parsedRes.error) {
14
- return Promise.reject(new Error(Errors.MALFORMED_UUID));
15
- }
16
- return parsedRes.name;
17
- } catch {
18
- throw new Error(Errors.PLAYER_DOES_NOT_EXIST);
19
- }
20
- };
1
+ const fetch = require('../Private/uuidCache.js');
2
+ const isUUID = require('./isUUID.js');
3
+ const Errors = require('../Errors');
4
+
5
+ module.exports = async (input) => {
6
+ if (!input) throw new Error(Errors.NO_NICKNAME_UUID);
7
+ if (typeof input !== 'string') throw new Error(Errors.UUID_NICKNAME_MUST_BE_A_STRING);
8
+ if (isUUID(input)) input = input.replace(/-/g, '');
9
+ else throw new Error(Errors.MALFORMED_UUID);
10
+ try {
11
+ const res = await fetch(`https://sessionserver.mojang.com/session/minecraft/profile/${input}`, input);
12
+ const parsedRes = await res.json();
13
+ if (parsedRes.error) {
14
+ return Promise.reject(new Error(Errors.MALFORMED_UUID));
15
+ }
16
+ return parsedRes.name;
17
+ } catch {
18
+ throw new Error(Errors.PLAYER_DOES_NOT_EXIST);
19
+ }
20
+ };
@@ -1,19 +1,19 @@
1
- const fetch = require('../Private/uuidCache');
2
- const isUUID = require('./isUUID.js');
3
- const Errors = require('../Errors');
4
-
5
- module.exports = async (input) => {
6
- if (!input) throw new Error(Errors.NO_NICKNAME_UUID);
7
- if (typeof input !== 'string') throw new Error(Errors.UUID_NICKNAME_MUST_BE_A_STRING);
8
- if (isUUID(input)) return input.replace(/-/g, '');
9
- try {
10
- const res = await fetch(`https://api.mojang.com/users/profiles/minecraft/${input}`, input);
11
- const parsedRes = await res.json();
12
- if (parsedRes.error) {
13
- return Promise.reject(new Error(Errors.MALFORMED_UUID));
14
- }
15
- return parsedRes.id;
16
- } catch {
17
- throw new Error(Errors.PLAYER_DOES_NOT_EXIST);
18
- }
19
- };
1
+ const fetch = require('../Private/uuidCache');
2
+ const isUUID = require('./isUUID.js');
3
+ const Errors = require('../Errors');
4
+
5
+ module.exports = async (input) => {
6
+ if (!input) throw new Error(Errors.NO_NICKNAME_UUID);
7
+ if (typeof input !== 'string') throw new Error(Errors.UUID_NICKNAME_MUST_BE_A_STRING);
8
+ if (isUUID(input)) return input.replace(/-/g, '');
9
+ try {
10
+ const res = await fetch(`https://api.mojang.com/users/profiles/minecraft/${input}`, input);
11
+ const parsedRes = await res.json();
12
+ if (res.status === 404) {
13
+ return Promise.reject(new Error(Errors.PLAYER_DOES_NOT_EXIST));
14
+ }
15
+ return parsedRes.id;
16
+ } catch {
17
+ throw new Error(Errors.PLAYER_DOES_NOT_EXIST);
18
+ }
19
+ };
@@ -1,21 +1,17 @@
1
- /**
2
- * Converts varInts to js numbers
3
- * @param {number[]|string[]} bytes Array of string hex or numbers to be read as minecraft var ints.
4
- * @returns {number} A good old js number
5
- */
6
- function readVarInt(bytes) {
7
- let numRead = 0;
8
- let result = 0;
9
- do {
10
- const read = bytes[numRead];
11
- const value = (read & 0b01111111);
12
- result |= (value << (7 * numRead));
13
- numRead++;
14
- if (numRead > 5) {
15
- return NaN;
16
- }
17
- } while (numRead < bytes.length);
18
-
19
- return result;
20
- }
21
- module.exports = readVarInt;
1
+ // eslint-disable-next-line require-jsdoc
2
+ function readVarInt(bytes) {
3
+ let numRead = 0;
4
+ let result = 0;
5
+ do {
6
+ const read = bytes[numRead];
7
+ const value = read & 0b01111111;
8
+ result |= value << (7 * numRead);
9
+ numRead++;
10
+ if (numRead > 5) {
11
+ return NaN;
12
+ }
13
+ } while (numRead < bytes.length);
14
+
15
+ return result;
16
+ }
17
+ module.exports = readVarInt;