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,102 +1,124 @@
1
- /**
2
- * Item class
3
- */
4
- class SkyblockInventoryItem {
5
- /**
6
- * @param {object} data Item data
7
- */
8
- constructor (data) {
9
- /**
10
- * Item ID
11
- * @type {number}
12
- */
13
- this.itemId = data.id || 0;
14
- /**
15
- * Item count
16
- * @type {number}
17
- */
18
- this.count = data.Count || 0;
19
- /**
20
- * Item name
21
- * @type {string}
22
- */
23
- this.name = data.tag.display.Name !== null ? data.tag.display.Name.toString().replace(/§([1-9]|[a-f])|§/gm, '') : null;
24
- /**
25
- * Item lore
26
- * @type {string}
27
- */
28
- this.lore = data.tag.display.Lore.join('<br>');
29
- /**
30
- * Item lore
31
- * @type {string[]}
32
- */
33
- this.loreArray = data.tag.display.Lore;
34
- /**
35
- * Item lore for embed
36
- * @type {string}
37
- */
38
- this.loreForEmbed = this.lore.replace(/§([0-9]|[a-f])|§/gm, '').replace(/<br>/gm, '\n');
39
- /**
40
- * Item enchantments
41
- * @type {object}
42
- */
43
- this.enchantments = data.tag.ExtraAttributes.enchantments ? data.tag.ExtraAttributes.enchantments : null;
44
- /**
45
- * Anvil uses
46
- * @type {number}
47
- */
48
- this.anvilUses = data.tag.ExtraAttributes.anvil_uses ? data.tag.ExtraAttributes.anvil_uses : 0;
49
- /**
50
- * Damage
51
- * @type {number}
52
- */
53
- this.damage = data.Damage || 0;
54
- /**
55
- * What rarity the item has, as an uppercase string
56
- * @author linearaccelerator
57
- * @type {string}
58
- * @version >6.0.1
59
- */
60
- this.rarity = parseRarity(this.loreArray[this.loreArray.length - 1]);
61
- /**
62
- * The amount of dungeon stars the item has (each star equates to a 10% stat boost while in dungeons)
63
- * @author linearaccelerator
64
- * @type {number}
65
- */
66
- this.dungeonStars = this.name.match(/(\u272a)/g) ? this.name.match(/(\u272a)/g).length : 0;
67
- /**
68
- * Dungeon gear score of the item (or null if not present)
69
- * @author linearaccelerator
70
- * @type {number}
71
- */
72
- this.gearScore = parseGearScore(this.loreArray) || null;
73
- }
74
- /**
75
- * Item Name
76
- * @return {string}
77
- */
78
- toString () {
79
- return this.name;
80
- }
81
- }
82
- /**
83
- * parses rarity
84
- * @param {string} stringContainingRarity
85
- * @return {string}
86
- */
87
- function parseRarity (stringContainingRarity) {
88
- const rarityArray = ['COMMON', 'UNCOMMON', 'RARE', 'EPIC', 'LEGENDARY', 'MYTHIC', 'SUPREME', 'SPECIAL', 'VERY SPECIAL'];
89
- for (const rarity of rarityArray) {
90
- if (stringContainingRarity.includes(rarity)) return rarity;
91
- }
92
- }
93
- /**
94
- * @param {string[]} lore
95
- * @return {number}
96
- */
97
- function parseGearScore (lore) {
98
- for (const line of lore) {
99
- if (line.match(/Gear Score: §[0-9a-f](\d+)/)) return Number(line.match(/Gear Score: §d(\d+)/)[1]);
100
- }
101
- }
102
- module.exports = SkyblockInventoryItem;
1
+ const rgbToHexColor = require('../../utils/rgbToHexColor');
2
+
3
+ /**
4
+ * Item class
5
+ */
6
+ class SkyblockInventoryItem {
7
+ /**
8
+ * @param {object} data Item data
9
+ */
10
+ constructor(data) {
11
+ /**
12
+ * Item ID
13
+ * @type {number}
14
+ */
15
+ this.itemId = data.id || 0;
16
+ /**
17
+ * Item count
18
+ * @type {number}
19
+ */
20
+ this.count = data.Count || 0;
21
+ /**
22
+ * Item name
23
+ * @type {string}
24
+ */
25
+ this.name = data.tag.display.Name !== null ? data.tag.display.Name.toString().replace(/§([1-9]|[a-f])|§/gm, '') : null;
26
+ /**
27
+ * Item lore
28
+ * @type {string}
29
+ */
30
+ this.lore = data.tag.display.Lore.join('<br>');
31
+ /**
32
+ * Item lore
33
+ * @type {string[]}
34
+ */
35
+ this.loreArray = data.tag.display.Lore;
36
+ /**
37
+ * Item lore for embed
38
+ * @type {string}
39
+ */
40
+ this.loreForEmbed = this.lore.replace(/§([0-9]|[a-f])|§/gm, '').replace(/<br>/gm, '\n');
41
+ /**
42
+ * Hexadecimal color code of armor
43
+ * @type {string}
44
+ */
45
+ this.color = data.tag.ExtraAttributes.color ? rgbToHexColor(data.tag.ExtraAttributes.color.split(':')) : null;
46
+ /**
47
+ * Item enchantments
48
+ * @type {object}
49
+ */
50
+ this.enchantments = data.tag.ExtraAttributes.enchantments ? data.tag.ExtraAttributes.enchantments : null;
51
+ /**
52
+ * Armor reforge
53
+ * @type {string}
54
+ */
55
+ this.reforge = data.tag.ExtraAttributes.modifier ? data.tag.ExtraAttributes.modifier : null;
56
+ /**
57
+ * Equipment gemstones (if any)
58
+ * @type {SkyblockItemGemstone}
59
+ */
60
+ this.gemstones = data.tag.ExtraAttributes.gems
61
+ ? Object.entries(data.tag.ExtraAttributes.gems).map((gem) => {
62
+ // eslint-disable-next-line no-new-object
63
+ new Object({ type: gem[0].split('_')[0], quality: gem[1] });
64
+ })
65
+ : null;
66
+ /**
67
+ * Anvil uses
68
+ * @type {number}
69
+ */
70
+ this.anvilUses = data.tag.ExtraAttributes.anvil_uses ? data.tag.ExtraAttributes.anvil_uses : 0;
71
+ /**
72
+ * Damage
73
+ * @type {number}
74
+ */
75
+ this.damage = data.Damage || 0;
76
+ /**
77
+ * What rarity the item has, as an uppercase string
78
+ * @author linearaccelerator
79
+ * @type {string}
80
+ * @version >6.0.1
81
+ */
82
+ this.rarity = parseRarity(this.loreArray[this.loreArray.length - 1]);
83
+ /**
84
+ * The amount of dungeon stars the item has (each star equates to a 10% stat boost while in dungeons)
85
+ * @author linearaccelerator
86
+ * @type {number}
87
+ */
88
+ this.dungeonStars = this.name.match(/(\u272a)/g) ? this.name.match(/(\u272a)/g).length : 0;
89
+ /**
90
+ * Dungeon gear score of the item (or null if not present)
91
+ * @author linearaccelerator
92
+ * @type {number}
93
+ */
94
+ this.gearScore = parseGearScore(this.loreArray) || null;
95
+ }
96
+ /**
97
+ * Item Name
98
+ * @return {string}
99
+ */
100
+ toString() {
101
+ return this.name;
102
+ }
103
+ }
104
+ // eslint-disable-next-line require-jsdoc
105
+ function parseRarity(stringContainingRarity) {
106
+ const rarityArray = ['COMMON', 'UNCOMMON', 'RARE', 'EPIC', 'LEGENDARY', 'MYTHIC', 'DIVINE', 'SPECIAL', 'VERY SPECIAL'];
107
+ for (const rarity of rarityArray) {
108
+ if (stringContainingRarity.includes(rarity)) return rarity;
109
+ }
110
+ }
111
+ // eslint-disable-next-line require-jsdoc
112
+ function parseGearScore(lore) {
113
+ for (const line of lore) {
114
+ if (line.match(/Gear Score: §[0-9a-f](\d+)/)) return Number(line.match(/Gear Score: §d(\d+)/)[1]);
115
+ }
116
+ }
117
+
118
+ /**
119
+ * @typedef {object} SkyblockItemGemstone
120
+ * @property {string} type Gemstone type
121
+ * @property {string} quality Gemstone quality (rough, flawed, fine, flawless, perfect)
122
+ */
123
+
124
+ module.exports = SkyblockInventoryItem;