hypixel-api-reborn 11.3.2 → 11.3.3

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hypixel-api-reborn",
3
- "version": "11.3.2",
3
+ "version": "11.3.3",
4
4
  "description": "Feature-rich Hypixel API wrapper for Node.js",
5
5
  "main": "./src/index.js",
6
6
  "types": "./typings/index.d.ts",
@@ -16,12 +16,12 @@
16
16
  "url": "https://github.com/Hypixel-API-Reborn/hypixel-api-reborn/issues"
17
17
  },
18
18
  "scripts": {
19
- "lint": "npx eslint --cache src/",
20
- "lint:fix": "npx eslint --cache src/ --fix",
19
+ "lint": "npx eslint src/",
20
+ "lint:fix": "npx eslint src/ --fix",
21
21
  "tests": "npx mocha tests --exit --recursive",
22
22
  "docgen": " npx docgen -s src/ --custom docs/index.yml -o ./master.json",
23
- "prettier": "npx prettier --cache --write src/ typings/",
24
- "prettier:check": "npx prettier --cache --check src/ typings/"
23
+ "prettier": "npx prettier --write src/ typings/",
24
+ "prettier:check": "npx prettier --check src/ typings/"
25
25
  },
26
26
  "engines": {
27
27
  "node": ">=18.18.0"
@@ -32,7 +32,7 @@
32
32
  "node-fetch": "^3.3.2",
33
33
  "prismarine-nbt": "^2.5.0",
34
34
  "rss-parser": "^3.13.0",
35
- "skyhelper-networth": "^1.21.0"
35
+ "skyhelper-networth": "^1.22.0"
36
36
  },
37
37
  "license": "MIT",
38
38
  "readme": "https://hypixel.stavzdev.me/",
@@ -42,15 +42,15 @@
42
42
  "publisher": "StavZ",
43
43
  "devDependencies": {
44
44
  "@discordjs/docgen": "github:discordjs/docgen",
45
- "@types/node": "^20.14.11",
45
+ "@types/node": "^22.1.0",
46
46
  "chai": "^4.3.4",
47
- "eslint": "^9.7.0",
48
- "eslint-plugin-jsdoc": "^48.8.3",
49
- "globals": "^15.8.0",
47
+ "eslint": "^9.8.0",
48
+ "eslint-plugin-jsdoc": "^49.0.0",
49
+ "globals": "^15.9.0",
50
50
  "mocha": "^10.4.0",
51
51
  "node-env-run": "^4.0.2",
52
52
  "path": "^0.12.7",
53
53
  "prettier": "^3.3.3",
54
- "typescript": "^5.5.3"
54
+ "typescript": "^5.5.4"
55
55
  }
56
56
  }
@@ -2,9 +2,10 @@
2
2
  const Auction = require('../../structures/SkyBlock/Auctions/Auction');
3
3
  const AuctionInfo = require('../../structures/SkyBlock/Auctions/AuctionInfo');
4
4
  const Errors = require('../../Errors');
5
+ // eslint-disable-next-line no-underscore-dangle
6
+ let _makeRequest;
5
7
  async function getPage(page = 0, options = {}) {
6
- // eslint-disable-next-line no-underscore-dangle
7
- const content = await this._makeRequest(`/skyblock/auctions?page=${page}`, false);
8
+ const content = await _makeRequest(`/skyblock/auctions?page=${page}`, false);
8
9
  const result = {};
9
10
  if (!options.noInfo) result.info = new AuctionInfo(content);
10
11
  if (options.raw) result.auctions = content.auctions;
@@ -25,6 +26,8 @@ async function noReject(promise, args = [], retries = 3, cooldown = 100) {
25
26
  }
26
27
  }
27
28
  module.exports = async function (range, options = {}) {
29
+ // eslint-disable-next-line no-underscore-dangle
30
+ _makeRequest = this._makeRequest;
28
31
  options.retries ||= 3;
29
32
  options.cooldown ||= 100;
30
33
  if (null === range || '*' === range) range = [0, (await getPage(0, { noAuctions: true })).info.totalPages];
@@ -37,7 +40,7 @@ module.exports = async function (range, options = {}) {
37
40
  throw new Error(Errors.INVALID_OPTION_VALUE);
38
41
  }
39
42
  range = range.sort();
40
- const result = { auctions: [] };
43
+ const result = { info: null, Auctions: [] };
41
44
  const fetches = [];
42
45
  const failedPages = [];
43
46
  if (options.noAuctions) return { info: options.noInfo ? null : (await getPage(range[1], { noAuctions: true })).info };
@@ -47,7 +50,7 @@ module.exports = async function (range, options = {}) {
47
50
  } else {
48
51
  const resp = await noReject(getPage, [i, options], options.retries, options.cooldown);
49
52
  if (resp) {
50
- result.auctions = result.auctions.concat(resp.auctions);
53
+ result.Auctions = result.Auctions.concat(resp.auctions);
51
54
  if (resp.info) result.info = resp.info;
52
55
  } else {
53
56
  failedPages.push(i);
@@ -55,7 +58,7 @@ module.exports = async function (range, options = {}) {
55
58
  }
56
59
  }
57
60
  if (fetches.length) {
58
- result.auctions = (await Promise.all(fetches)).reduce((pV, cV, index) => {
61
+ result.Auctions = (await Promise.all(fetches)).reduce((pV, cV, index) => {
59
62
  if (!cV) {
60
63
  failedPages.push(index + range[0]);
61
64
  return pV;
package/src/Client.js CHANGED
@@ -348,12 +348,7 @@ class Client extends EventEmitter {
348
348
  * @name Client#getSkyblockAuctions
349
349
  * @param {string|number|number[]} page - "*", a page number, or an array with the start and the end page number ( automatically sorted )
350
350
  * @param {auctionsOptions} [options={}] Options
351
- * @return {Promise<{info:AuctionInfo,auctions:Auction[]}>}
352
- * @example
353
- * hypixel.getSkyblockAuctions(0).then(auctions =>{
354
- * console.log(auctions[0].item); // Mythic Farmer Boots
355
- * })
356
- * .catch(console.log);
351
+ * @return {Promise<{info:AuctionInfo,Auctions:Auction[]}>}
357
352
  */
358
353
  /**
359
354
  * Allows you to get player's skyblock auctions
@@ -6,6 +6,7 @@ const {
6
6
  getSkills,
7
7
  getBestiaryLevel,
8
8
  getSlayer,
9
+ getKuudra,
9
10
  getDungeons,
10
11
  getJacobData,
11
12
  getChocolateFactory,
@@ -128,6 +129,11 @@ class SkyblockMember {
128
129
  * @type {SkyblockMemberSlayer|null}
129
130
  */
130
131
  this.slayer = getSlayer(data.m);
132
+ /**
133
+ * Skyblock member kuudra
134
+ * @type {NetherIslandPlayerData|null}
135
+ */
136
+ this.kuudra = getKuudra(data.m.nether_island_player_data);
131
137
  /**
132
138
  * Skyblock member dungeons
133
139
  * @type {SkyblockMemberDungeons|null}
@@ -394,6 +400,27 @@ class SkyblockMember {
394
400
  * @property {number} tier5 Tier 5
395
401
  * @property {number} level Level
396
402
  */
403
+ /**
404
+ * @typedef {object} NetherIslandPlayerData
405
+ * @property {number} none
406
+ * @property {number} hot
407
+ * @property {number} burning
408
+ * @property {number} fiery
409
+ * @property {number} highest_wave_hot
410
+ * @property {number} highest_wave_fiery
411
+ * @property {number} infernal
412
+ * @property {number} highest_wave_infernal
413
+ * @property {number} highest_wave_burning
414
+ */
415
+ /**
416
+ * @typedef {object} SkyblockMemberDungeonsCatacombs
417
+ * @property {SkyblockSkillLevel} experience
418
+ * @property {Record<string, number>} completions
419
+ */
420
+ /**
421
+ * @typedef {object} SkyblockMemberDungeonsMasterCatacombs
422
+ * @property {Record<string, number>} completions
423
+ */
397
424
  /**
398
425
  * @typedef {object} SkyblockMemberDungeons
399
426
  * @property {SkyblockMemberDungeonsTypes} types Dungeons types
@@ -401,7 +428,8 @@ class SkyblockMember {
401
428
  */
402
429
  /**
403
430
  * @typedef {object} SkyblockMemberDungeonsTypes
404
- * @property {SkyblockSkillLevel} catacombs
431
+ * @property {SkyblockMemberDungeonsCatacombs} catacombs
432
+ * @property {SkyblockMemberDungeonsMasterCatacombs} masterCatacombs
405
433
  */
406
434
  /**
407
435
  * @typedef {object} SkyblockMemberDungeonsClasses
@@ -1,3 +1,4 @@
1
+ const SkyblockGarden = require('./SkyblockGarden');
1
2
  const SkyblockMember = require('./SkyblockMember');
2
3
  /**
3
4
  * Skyblock Profile class
@@ -28,6 +29,11 @@ class SkyblockProfile {
28
29
  * @type {object}
29
30
  */
30
31
  this.banking = data.banking;
32
+ /**
33
+ * Profile's garden
34
+ * @type {SkyblockGarden|null}
35
+ */
36
+ this.garden = data.garden || null;
31
37
  /**
32
38
  * Profile's community upgrades
33
39
  * @type {object}
@@ -53,6 +59,7 @@ class SkyblockProfile {
53
59
  banking: this.banking,
54
60
  communityUpgrades: this.communityUpgrades,
55
61
  museum: null,
62
+ garden: this.garden,
56
63
  selected: this.selected
57
64
  })
58
65
  );
@@ -8,7 +8,7 @@ class Candidate {
8
8
  * @param {Object} data data
9
9
  * @param {boolean} [isMayor=false] if this candidate is the current mayor
10
10
  */
11
- constructor(data, isMayor = false) {
11
+ constructor(data, isMayor = false, isMinister = false) {
12
12
  /**
13
13
  * Mayor's name
14
14
  * @type {string}
@@ -19,16 +19,26 @@ class Candidate {
19
19
  * @type {string}
20
20
  */
21
21
  this.keyBenefit = data.key;
22
+ /**
23
+ * Mayor's Perk (Only shows if its the Minister)
24
+ * @type {Perk|null}
25
+ */
26
+ this.perk = data.perk?.[0] ? new Perk(data.perk[0]) : null;
22
27
  /**
23
28
  * Perks
24
29
  * @type {Perk[]}
25
30
  */
26
- this.perks = data.perks.map((x) => new Perk(x));
31
+ this.perks = data.perks?.map((x) => new Perk(x)) ?? [];
27
32
  /**
28
33
  * If this candidate is the current mayor
29
34
  * @type {boolean}
30
35
  */
31
36
  this.isMayor = isMayor || false;
37
+ /**
38
+ * If this candidate is the current mayor
39
+ * @type {boolean}
40
+ */
41
+ this.isMinister = isMinister || false;
32
42
  /**
33
43
  * The number of votes received by this candidate
34
44
  * @type {number}
@@ -36,6 +36,11 @@ class GovernmentData {
36
36
  * @type {Candidate}
37
37
  */
38
38
  this.mayor = this.lastElectionResults.get(data.mayor.name);
39
+ /**
40
+ * Minister
41
+ * @type {Candidate}
42
+ */
43
+ this.minister = new Candidate(data.mayor.minister, false, true);
39
44
  /**
40
45
  * The year the mayor will be running for
41
46
  * @type {number}
@@ -5,7 +5,6 @@ class Perk {
5
5
  /**
6
6
  * Constructor
7
7
  * @param {Object} data data
8
- * @param {boolean} [isMayor=false] if this candidate is the current mayor
9
8
  */
10
9
  constructor(data) {
11
10
  /**
@@ -1118,6 +1118,72 @@ module.exports = {
1118
1118
  }
1119
1119
  ]
1120
1120
  },
1121
+ garden: {
1122
+ name: 'Garden',
1123
+
1124
+ mobs: [
1125
+ {
1126
+ name: 'Beetle',
1127
+ cap: 250,
1128
+ mobs: ['pest_beetle_1'],
1129
+ bracket: 6
1130
+ },
1131
+ {
1132
+ name: 'Cricket',
1133
+ cap: 250,
1134
+ mobs: ['pest_cricket_1'],
1135
+ bracket: 6
1136
+ },
1137
+ {
1138
+ name: 'Earthworm',
1139
+ cap: 250,
1140
+ mobs: ['pest_worm_1'],
1141
+ bracket: 6
1142
+ },
1143
+ {
1144
+ name: 'Fly',
1145
+ cap: 250,
1146
+ mobs: ['pest_fly_1'],
1147
+ bracket: 6
1148
+ },
1149
+ {
1150
+ name: 'Locust',
1151
+ cap: 250,
1152
+ mobs: ['pest_locust_1'],
1153
+ bracket: 6
1154
+ },
1155
+ {
1156
+ name: 'Mite',
1157
+ cap: 250,
1158
+ mobs: ['pest_mite_1'],
1159
+ bracket: 6
1160
+ },
1161
+ {
1162
+ name: 'Mosquito',
1163
+ cap: 250,
1164
+ mobs: ['pest_mosquito_1'],
1165
+ bracket: 6
1166
+ },
1167
+ {
1168
+ name: 'Moth',
1169
+ cap: 250,
1170
+ mobs: ['pest_moth_1'],
1171
+ bracket: 6
1172
+ },
1173
+ {
1174
+ name: 'Rat',
1175
+ cap: 250,
1176
+ mobs: ['pest_rat_1'],
1177
+ bracket: 6
1178
+ },
1179
+ {
1180
+ name: 'Slug',
1181
+ cap: 250,
1182
+ mobs: ['pest_slug_1'],
1183
+ bracket: 6
1184
+ }
1185
+ ]
1186
+ },
1121
1187
  combat_1: {
1122
1188
  name: 'Spiders Den',
1123
1189
 
@@ -1173,7 +1239,7 @@ module.exports = {
1173
1239
  },
1174
1240
  {
1175
1241
  name: 'Silverfish',
1176
- cap: 40000,
1242
+ cap: 10000,
1177
1243
 
1178
1244
  mobs: [
1179
1245
  'jockey_shot_silverfish_3',
@@ -1183,14 +1249,14 @@ module.exports = {
1183
1249
  'splitter_spider_silverfish_50',
1184
1250
  'jockey_shot_silverfish_42'
1185
1251
  ],
1186
- bracket: 1
1252
+ bracket: 2
1187
1253
  },
1188
1254
  {
1189
1255
  name: 'Spider Jockey',
1190
- cap: 10000,
1256
+ cap: 4000,
1191
1257
 
1192
1258
  mobs: ['spider_jockey_3', 'spider_jockey_42', 'spider_jockey_5'],
1193
- bracket: 2
1259
+ bracket: 3
1194
1260
  },
1195
1261
  {
1196
1262
  name: 'Splitter Spider',
@@ -1208,10 +1274,10 @@ module.exports = {
1208
1274
  },
1209
1275
  {
1210
1276
  name: 'Voracious Spider',
1211
- cap: 40000,
1277
+ cap: 10000,
1212
1278
 
1213
1279
  mobs: ['voracious_spider_50', 'voracious_spider_42', 'voracious_spider_45', 'voracious_spider_10'],
1214
- bracket: 1
1280
+ bracket: 2
1215
1281
  },
1216
1282
  {
1217
1283
  name: 'Weaver Spider',
@@ -1272,10 +1338,10 @@ module.exports = {
1272
1338
  },
1273
1339
  {
1274
1340
  name: 'Obsidian Defender',
1275
- cap: 25000,
1341
+ cap: 10000,
1276
1342
 
1277
1343
  mobs: ['obsidian_wither_55'],
1278
- bracket: 4
1344
+ bracket: 5
1279
1345
  },
1280
1346
  {
1281
1347
  name: 'Voidling Extremist',
@@ -1293,17 +1359,17 @@ module.exports = {
1293
1359
  },
1294
1360
  {
1295
1361
  name: 'Watcher',
1296
- cap: 25000,
1362
+ cap: 10000,
1297
1363
 
1298
1364
  mobs: ['watcher_55'],
1299
- bracket: 4
1365
+ bracket: 5
1300
1366
  },
1301
1367
  {
1302
1368
  name: 'Zealot',
1303
- cap: 100000,
1369
+ cap: 25000,
1304
1370
 
1305
1371
  mobs: ['zealot_bruiser_100', 'zealot_enderman_55'],
1306
- bracket: 3
1372
+ bracket: 4
1307
1373
  }
1308
1374
  ]
1309
1375
  },
@@ -1339,20 +1405,6 @@ module.exports = {
1339
1405
  mobs: ['blaze_25', 'blaze_70', 'bezal_80', 'mutated_blaze_70'],
1340
1406
  bracket: 4
1341
1407
  },
1342
- {
1343
- name: 'Smoldering Blaze',
1344
- cap: 25000,
1345
-
1346
- mobs: ['smoldering_blaze_95'],
1347
- bracket: 2
1348
- },
1349
- {
1350
- name: 'Millenia-Aged Blaze',
1351
- cap: 4000,
1352
-
1353
- mobs: ['old_blaze_110'],
1354
- bracket: 3
1355
- },
1356
1408
  {
1357
1409
  name: 'Flaming Spider',
1358
1410
  cap: 10000,
@@ -1369,11 +1421,18 @@ module.exports = {
1369
1421
  },
1370
1422
  {
1371
1423
  name: 'Ghast',
1372
- cap: 1000,
1424
+ cap: 3000,
1373
1425
 
1374
1426
  mobs: ['ghast_85', 'dive_ghast_90'],
1375
1427
  bracket: 4
1376
1428
  },
1429
+ {
1430
+ name: 'Kada Knight',
1431
+ cap: 3000,
1432
+
1433
+ mobs: ['kada_knight_90'],
1434
+ bracket: 4
1435
+ },
1377
1436
  {
1378
1437
  name: 'Mage Outlaw',
1379
1438
  cap: 1000,
@@ -1381,6 +1440,13 @@ module.exports = {
1381
1440
  mobs: ['mage_outlaw_200'],
1382
1441
  bracket: 5
1383
1442
  },
1443
+ {
1444
+ name: 'Magma Boss',
1445
+ cap: 1000,
1446
+
1447
+ mobs: ['magma_boss_500'],
1448
+ bracket: 5
1449
+ },
1384
1450
  {
1385
1451
  name: 'Magma Cube',
1386
1452
  cap: 10000,
@@ -1389,11 +1455,11 @@ module.exports = {
1389
1455
  bracket: 3
1390
1456
  },
1391
1457
  {
1392
- name: 'Magma Boss',
1393
- cap: 1000,
1458
+ name: 'Magma Cube Rider',
1459
+ cap: 3000,
1394
1460
 
1395
- mobs: ['magma_boss_500'],
1396
- bracket: 5
1461
+ mobs: ['magma_cube_rider_90'],
1462
+ bracket: 4
1397
1463
  },
1398
1464
  {
1399
1465
  name: 'Matcho',
@@ -1403,32 +1469,25 @@ module.exports = {
1403
1469
  bracket: 5
1404
1470
  },
1405
1471
  {
1406
- name: 'Mushroom Bull',
1407
- cap: 10000,
1408
-
1409
- mobs: ['charging_mushroom_cow_80'],
1410
- bracket: 3
1411
- },
1412
- {
1413
- name: 'Pigman',
1414
- cap: 10000,
1472
+ name: 'Millenia-Aged Blaze',
1473
+ cap: 4000,
1415
1474
 
1416
- mobs: ['kada_knight_90', 'magma_cube_rider_90', 'pigman_12'],
1475
+ mobs: ['old_blaze_110'],
1417
1476
  bracket: 3
1418
1477
  },
1419
1478
  {
1420
- name: 'Wither Skeleton',
1479
+ name: 'Mushroom Bull',
1421
1480
  cap: 10000,
1422
1481
 
1423
- mobs: ['wither_skeleton_70'],
1482
+ mobs: ['charging_mushroom_cow_80'],
1424
1483
  bracket: 3
1425
1484
  },
1426
1485
  {
1427
- name: 'Wither Spectre',
1428
- cap: 10000,
1486
+ name: 'Smoldering Blaze',
1487
+ cap: 25000,
1429
1488
 
1430
- mobs: ['wither_spectre_70'],
1431
- bracket: 3
1489
+ mobs: ['smoldering_blaze_95'],
1490
+ bracket: 2
1432
1491
  },
1433
1492
  {
1434
1493
  name: 'Tentacle',
@@ -1443,6 +1502,20 @@ module.exports = {
1443
1502
 
1444
1503
  mobs: ['vanquisher_100'],
1445
1504
  bracket: 5
1505
+ },
1506
+ {
1507
+ name: 'Wither Skeleton',
1508
+ cap: 3000,
1509
+
1510
+ mobs: ['wither_skeleton_70'],
1511
+ bracket: 4
1512
+ },
1513
+ {
1514
+ name: 'Wither Spectre',
1515
+ cap: 10000,
1516
+
1517
+ mobs: ['wither_spectre_70'],
1518
+ bracket: 3
1446
1519
  }
1447
1520
  ]
1448
1521
  },
@@ -1498,6 +1571,12 @@ module.exports = {
1498
1571
  name: 'Dwarven Mines',
1499
1572
 
1500
1573
  mobs: [
1574
+ {
1575
+ name: 'Diamond Goblin',
1576
+ cap: 100,
1577
+ mobs: ['goblin_500'],
1578
+ bracket: 7
1579
+ },
1501
1580
  {
1502
1581
  name: 'Ghost',
1503
1582
  cap: 250000,
@@ -1546,7 +1625,7 @@ module.exports = {
1546
1625
  bracket: 5
1547
1626
  },
1548
1627
  {
1549
- name: 'Ice Walker',
1628
+ name: 'Glacite Walker',
1550
1629
  cap: 10000,
1551
1630
 
1552
1631
  mobs: ['ice_walker_45'],
@@ -1568,45 +1647,45 @@ module.exports = {
1568
1647
  },
1569
1648
  {
1570
1649
  name: 'Treasure Hoarder',
1571
- cap: 3000,
1650
+ cap: 4000,
1572
1651
 
1573
1652
  mobs: ['treasure_hoarder_70'],
1574
1653
  bracket: 3
1575
- }
1576
- ]
1577
- },
1578
- crystal_hollows: {
1579
- name: 'Crystal Hollows',
1580
-
1581
- mobs: [
1654
+ },
1582
1655
  {
1583
- name: 'Thyst',
1584
- cap: 4000,
1656
+ name: 'Glacite Bowman',
1657
+ cap: 1000,
1585
1658
 
1586
- mobs: ['thyst_20'],
1587
- bracket: 3
1659
+ mobs: ['glacite_bowman_165'],
1660
+ bracket: 4
1588
1661
  },
1589
1662
  {
1590
- name: 'Worm',
1591
- cap: 400,
1663
+ name: 'Glacite Caver',
1664
+ cap: 1000,
1592
1665
 
1593
- mobs: ['worm_5', 'scatha_10'],
1594
- bracket: 5
1666
+ mobs: ['glacite_caver_200'],
1667
+ bracket: 4
1595
1668
  },
1596
1669
  {
1597
- name: 'Yog',
1598
- cap: 4000,
1670
+ name: 'Glacite Mage',
1671
+ cap: 1000,
1599
1672
 
1600
- mobs: ['yog_100'],
1601
- bracket: 3
1673
+ mobs: ['glacite_mage_155'],
1674
+ bracket: 4
1602
1675
  },
1603
1676
  {
1604
- name: 'Sludge',
1605
- cap: 10000,
1677
+ name: 'Glacite Mutt',
1678
+ cap: 1000,
1606
1679
 
1607
- mobs: ['sludge_5', 'sludge_10', 'sludge_100'],
1608
- bracket: 2
1609
- },
1680
+ mobs: ['glacite_mutt_180'],
1681
+ bracket: 4
1682
+ }
1683
+ ]
1684
+ },
1685
+ crystal_hollows: {
1686
+ name: 'Crystal Hollows',
1687
+
1688
+ mobs: [
1610
1689
  {
1611
1690
  name: 'Automaton',
1612
1691
  cap: 10000,
@@ -1614,6 +1693,13 @@ module.exports = {
1614
1693
  mobs: ['automaton_100', 'automaton_150'],
1615
1694
  bracket: 2
1616
1695
  },
1696
+ {
1697
+ name: 'Bal',
1698
+ cap: 250,
1699
+
1700
+ mobs: ['bal_boss_100'],
1701
+ bracket: 6
1702
+ },
1617
1703
  {
1618
1704
  name: 'Butterfly',
1619
1705
  cap: 1000,
@@ -1635,18 +1721,39 @@ module.exports = {
1635
1721
  bracket: 3
1636
1722
  },
1637
1723
  {
1638
- name: 'Bal',
1724
+ name: 'Key Guardian',
1639
1725
  cap: 250,
1640
1726
 
1641
- mobs: ['bal_boss_100'],
1727
+ mobs: ['key_guardian_100'],
1642
1728
  bracket: 6
1643
1729
  },
1644
1730
  {
1645
- name: 'Key Guardian',
1646
- cap: 250,
1731
+ name: 'Sludge',
1732
+ cap: 10000,
1647
1733
 
1648
- mobs: ['key_guardian_100'],
1649
- bracket: 6
1734
+ mobs: ['sludge_5', 'sludge_10', 'sludge_100'],
1735
+ bracket: 2
1736
+ },
1737
+ {
1738
+ name: 'Thyst',
1739
+ cap: 4000,
1740
+
1741
+ mobs: ['thyst_20'],
1742
+ bracket: 3
1743
+ },
1744
+ {
1745
+ name: 'Worm',
1746
+ cap: 400,
1747
+
1748
+ mobs: ['worm_5', 'scatha_10'],
1749
+ bracket: 5
1750
+ },
1751
+ {
1752
+ name: 'Yog',
1753
+ cap: 4000,
1754
+
1755
+ mobs: ['yog_100'],
1756
+ bracket: 3
1650
1757
  }
1651
1758
  ]
1652
1759
  },
@@ -1847,7 +1954,7 @@ module.exports = {
1847
1954
  },
1848
1955
  {
1849
1956
  name: 'Explosive Imp',
1850
- cap: 10000,
1957
+ cap: 3000,
1851
1958
 
1852
1959
  mobs: [
1853
1960
  'explosive_imp_100',
@@ -1856,7 +1963,7 @@ module.exports = {
1856
1963
  'explosive_imp_400',
1857
1964
  'explosive_imp_500'
1858
1965
  ],
1859
- bracket: 3
1966
+ bracket: 4
1860
1967
  },
1861
1968
  {
1862
1969
  name: 'Inferno Magma Cube',
@@ -1982,6 +2089,13 @@ module.exports = {
1982
2089
  name: 'Fishing',
1983
2090
 
1984
2091
  mobs: [
2092
+ {
2093
+ name: 'Abyssal Miner',
2094
+ cap: 250,
2095
+
2096
+ mobs: ['zombie_miner_150'],
2097
+ bracket: 6
2098
+ },
1985
2099
  {
1986
2100
  name: 'Agarimoo',
1987
2101
  cap: 4000,
@@ -2114,13 +2228,6 @@ module.exports = {
2114
2228
 
2115
2229
  mobs: ['water_worm_20'],
2116
2230
  bracket: 4
2117
- },
2118
- {
2119
- name: 'Zombie Miner',
2120
- cap: 250,
2121
-
2122
- mobs: ['zombie_miner_150'],
2123
- bracket: 6
2124
2231
  }
2125
2232
  ]
2126
2233
  },
@@ -2351,7 +2458,7 @@ module.exports = {
2351
2458
  mobs: [
2352
2459
  {
2353
2460
  name: 'Angry Archeologist',
2354
- cap: 10000,
2461
+ cap: 3000,
2355
2462
 
2356
2463
  mobs: [
2357
2464
  'diamond_guy_80',
@@ -2375,31 +2482,7 @@ module.exports = {
2375
2482
  'master_diamond_guy_160',
2376
2483
  'master_diamond_guy_170'
2377
2484
  ],
2378
- bracket: 5
2379
- },
2380
- {
2381
- name: 'Lonely Spider',
2382
-
2383
- cap: 25000,
2384
- mobs: [
2385
- 'lonely_spider_35',
2386
- 'lonely_spider_55',
2387
- 'lonely_spider_65',
2388
- 'lonely_spider_75',
2389
- 'lonely_spider_85',
2390
- 'lonely_spider_95',
2391
- 'lonely_spider_105',
2392
- 'lonely_spider_115',
2393
- 'master_lonely_spider_35',
2394
- 'master_lonely_spider_55',
2395
- 'master_lonely_spider_65',
2396
- 'master_lonely_spider_75',
2397
- 'master_lonely_spider_85',
2398
- 'master_lonely_spider_95',
2399
- 'master_lonely_spider_105',
2400
- 'master_lonely_spider_115'
2401
- ],
2402
- bracket: 4
2485
+ bracket: 7
2403
2486
  },
2404
2487
  {
2405
2488
  name: 'Bat',
@@ -2506,7 +2589,7 @@ module.exports = {
2506
2589
  },
2507
2590
  {
2508
2591
  name: 'Fels',
2509
- cap: 25000,
2592
+ cap: 10000,
2510
2593
 
2511
2594
  mobs: [
2512
2595
  'tentaclees_90',
@@ -2516,18 +2599,11 @@ module.exports = {
2516
2599
  'master_tentaclees_100',
2517
2600
  'master_tentaclees_110'
2518
2601
  ],
2519
- bracket: 4
2520
- },
2521
- {
2522
- name: 'Golem',
2523
- cap: 1000,
2524
-
2525
- mobs: ['sadan_golem_1', 'master_sadan_golem_1'],
2526
- bracket: 4
2602
+ bracket: 5
2527
2603
  },
2528
2604
  {
2529
2605
  name: 'King Midas',
2530
- cap: 1000,
2606
+ cap: 750,
2531
2607
 
2532
2608
  mobs: [
2533
2609
  'king_midas_130',
@@ -2541,11 +2617,35 @@ module.exports = {
2541
2617
  'master_king_midas_160',
2542
2618
  'master_king_midas_170'
2543
2619
  ],
2544
- bracket: 5
2620
+ bracket: 6
2621
+ },
2622
+ {
2623
+ name: 'Lonely Spider',
2624
+
2625
+ cap: 25000,
2626
+ mobs: [
2627
+ 'lonely_spider_35',
2628
+ 'lonely_spider_55',
2629
+ 'lonely_spider_65',
2630
+ 'lonely_spider_75',
2631
+ 'lonely_spider_85',
2632
+ 'lonely_spider_95',
2633
+ 'lonely_spider_105',
2634
+ 'lonely_spider_115',
2635
+ 'master_lonely_spider_35',
2636
+ 'master_lonely_spider_55',
2637
+ 'master_lonely_spider_65',
2638
+ 'master_lonely_spider_75',
2639
+ 'master_lonely_spider_85',
2640
+ 'master_lonely_spider_95',
2641
+ 'master_lonely_spider_105',
2642
+ 'master_lonely_spider_115'
2643
+ ],
2644
+ bracket: 4
2545
2645
  },
2546
2646
  {
2547
2647
  name: 'Lost Adventurer',
2548
- cap: 10000,
2648
+ cap: 3000,
2549
2649
 
2550
2650
  mobs: [
2551
2651
  'lost_adventurer_80',
@@ -2639,7 +2739,7 @@ module.exports = {
2639
2739
  'master_lost_adventurer_163',
2640
2740
  'master_lost_adventurer_164'
2641
2741
  ],
2642
- bracket: 5
2742
+ bracket: 7
2643
2743
  },
2644
2744
  {
2645
2745
  name: 'Mimic',
@@ -2648,6 +2748,13 @@ module.exports = {
2648
2748
  mobs: ['mimic_115', 'mimic_125', 'master_mimic_115', 'master_mimic_125'],
2649
2749
  bracket: 4
2650
2750
  },
2751
+ {
2752
+ name: 'Golem',
2753
+ cap: 1000,
2754
+
2755
+ mobs: ['sadan_golem_1', 'master_sadan_golem_1'],
2756
+ bracket: 4
2757
+ },
2651
2758
  {
2652
2759
  name: 'Scared Skeleton',
2653
2760
  cap: 4000,
@@ -2664,7 +2771,7 @@ module.exports = {
2664
2771
  },
2665
2772
  {
2666
2773
  name: 'Shadow Assassin',
2667
- cap: 10000,
2774
+ cap: 3000,
2668
2775
 
2669
2776
  mobs: [
2670
2777
  'shadow_assassin_120',
@@ -2682,7 +2789,7 @@ module.exports = {
2682
2789
  'master_shadow_assassin_170',
2683
2790
  'master_shadow_assassin_171'
2684
2791
  ],
2685
- bracket: 5
2792
+ bracket: 7
2686
2793
  },
2687
2794
  {
2688
2795
  name: 'Skeleton Grunt',
@@ -2855,22 +2962,6 @@ module.exports = {
2855
2962
  ],
2856
2963
  bracket: 3
2857
2964
  },
2858
- {
2859
- name: 'Withermancer',
2860
-
2861
- cap: 25000,
2862
- mobs: [
2863
- 'crypt_witherskeleton_90',
2864
- 'crypt_witherskeleton_100',
2865
- 'crypt_witherskeleton_110',
2866
- 'crypt_witherskeleton_120',
2867
- 'master_crypt_witherskeleton_90',
2868
- 'master_crypt_witherskeleton_100',
2869
- 'master_crypt_witherskeleton_110',
2870
- 'master_crypt_witherskeleton_120'
2871
- ],
2872
- bracket: 4
2873
- },
2874
2965
  {
2875
2966
  name: 'Terracotta',
2876
2967
  cap: 40000,
@@ -2962,6 +3053,22 @@ module.exports = {
2962
3053
  mobs: ['wither_miner_100', 'master_wither_miner_100'],
2963
3054
  bracket: 4
2964
3055
  },
3056
+ {
3057
+ name: 'Withermancer',
3058
+
3059
+ cap: 25000,
3060
+ mobs: [
3061
+ 'crypt_witherskeleton_90',
3062
+ 'crypt_witherskeleton_100',
3063
+ 'crypt_witherskeleton_110',
3064
+ 'crypt_witherskeleton_120',
3065
+ 'master_crypt_witherskeleton_90',
3066
+ 'master_crypt_witherskeleton_100',
3067
+ 'master_crypt_witherskeleton_110',
3068
+ 'master_crypt_witherskeleton_120'
3069
+ ],
3070
+ bracket: 4
3071
+ },
2965
3072
  {
2966
3073
  name: 'Zombie Commander',
2967
3074
  cap: 3000,
@@ -2992,7 +3099,7 @@ module.exports = {
2992
3099
  },
2993
3100
  {
2994
3101
  name: 'Zombie Knight',
2995
- cap: 25000,
3102
+ cap: 10000,
2996
3103
 
2997
3104
  mobs: [
2998
3105
  'zombie_knight_86',
@@ -3006,7 +3113,7 @@ module.exports = {
3006
3113
  'master_zombie_knight_116',
3007
3114
  'master_zombie_knight_126'
3008
3115
  ],
3009
- bracket: 4
3116
+ bracket: 5
3010
3117
  },
3011
3118
  {
3012
3119
  name: 'Zombie Lord',
@@ -3036,7 +3143,6 @@ module.exports = {
3036
3143
  ]
3037
3144
  }
3038
3145
  },
3039
- /* eslint-enable camelcase */
3040
3146
  bestiaryBrackets: {
3041
3147
  1: [
3042
3148
  20, 40, 60, 100, 200, 400, 800, 1400, 2000, 3000, 6000, 12000, 20000, 30000, 40000, 50000, 60000, 72000, 86000,
@@ -3057,9 +3163,10 @@ module.exports = {
3057
3163
  5: [
3058
3164
  1, 2, 3, 5, 7, 10, 15, 20, 25, 30, 60, 120, 200, 300, 400, 500, 600, 720, 860, 1000, 2000, 4000, 6000, 8000, 10000
3059
3165
  ],
3060
- 6: [1, 2, 3, 5, 7, 9, 14, 17, 21, 25, 50, 80, 125, 175, 250, 325, 425, 525, 625, 750, 1500],
3061
- 7: [1, 2, 3, 5, 7, 9, 11, 14, 17, 20, 30, 40, 55, 75, 100, 150, 200, 275, 375, 500, 1000]
3166
+ 6: [1, 2, 3, 5, 7, 9, 14, 17, 21, 25, 50, 80, 125, 175, 250, 325, 425, 525, 625, 750, 1500, 3000, 4500, 6000, 7500],
3167
+ 7: [1, 2, 3, 5, 7, 9, 11, 14, 17, 20, 30, 40, 55, 75, 100, 150, 200, 275, 375, 500, 1000, 1500, 2000, 2500, 3000]
3062
3168
  },
3169
+ /* eslint-enable camelcase */
3063
3170
  // Credits (pit) https://github.com/PitPanda/PitPandaProduction/blob/b1971f56ea1aa8c829b722cbb33247c96591c0cb/structures/Pit.js
3064
3171
  pit: {
3065
3172
  Prestiges: [
@@ -273,13 +273,44 @@ function getSlayer(data) {
273
273
  };
274
274
  }
275
275
 
276
+ function getKuudra(data) {
277
+ if (!data?.kuudra_completed_tiers) return null;
278
+ return {
279
+ none: data.kuudra_completed_tiers?.none ?? 0,
280
+ hot: data.kuudra_completed_tiers?.hot ?? 0,
281
+ burning: data.kuudra_completed_tiers?.burning ?? 0,
282
+ fiery: data.kuudra_completed_tiers?.fiery ?? 0,
283
+ highestWaveHot: data.kuudra_completed_tiers?.highest_wave_hot ?? 0,
284
+ highestWaveFiery: data.kuudra_completed_tiers?.highest_wave_fiery ?? 0,
285
+ infernal: data.kuudra_completed_tiers?.infernal ?? 0,
286
+ highestWaveInfernal: data.kuudra_completed_tiers?.highest_wave_infernal ?? 0,
287
+ highestWaveBurning: data.kuudra_completed_tiers?.highest_wave_burning ?? 0
288
+ };
289
+ }
290
+
291
+ function getCompletions(data) {
292
+ const completions = {};
293
+
294
+ for (const tier in data) {
295
+ completions[`Floor_${tier}`] = data[tier];
296
+ }
297
+
298
+ return completions;
299
+ }
300
+
276
301
  function getDungeons(data) {
277
302
  return {
278
303
  types: {
279
- catacombs: getLevelByXp(
280
- data.dungeons?.dungeon_types?.catacombs ? data.dungeons.dungeon_types.catacombs.experience : null,
281
- 'dungeons'
282
- )
304
+ catacombs: {
305
+ experience: getLevelByXp(
306
+ data.dungeons?.dungeon_types?.catacombs ? data.dungeons.dungeon_types.catacombs.experience : null,
307
+ 'dungeons'
308
+ ),
309
+ completions: getCompletions(data.dungeons?.dungeon_types?.catacombs?.tier_completions)
310
+ },
311
+ masterCatacombs: {
312
+ completions: getCompletions(data.dungeons?.dungeon_types?.master_catacombs?.tier_completions)
313
+ }
283
314
  },
284
315
  classes: {
285
316
  healer: getLevelByXp(
@@ -493,6 +524,7 @@ module.exports = {
493
524
  getSkills,
494
525
  getBestiaryLevel,
495
526
  getSlayer,
527
+ getKuudra,
496
528
  getDungeons,
497
529
  getJacobData,
498
530
  getChocolateFactory,
@@ -1240,12 +1240,12 @@ declare module 'hypixel-api-reborn' {
1240
1240
  * Allows you to get skyblock auctions
1241
1241
  * @param {string|number|number[]} page - "*", a page number, or an array with the start and the end page number ( automatically sorted )
1242
1242
  * @param {auctionsOptions} [options={}] Options
1243
- * @return {Promise<{info:AuctionInfo,auctions:Auction[]}>}
1243
+ * @return {Promise<{info:AuctionInfo,Auctions:Auction[]}>}
1244
1244
  */
1245
1245
  getSkyblockAuctions(
1246
1246
  page: string | number | number[],
1247
- options: auctionsOptions
1248
- ): Promise<{ info: AuctionInfo; auctions: Auction[] }>;
1247
+ options?: auctionsOptions
1248
+ ): Promise<{ info: AuctionInfo; Auctions: Auction[] }>;
1249
1249
  /**
1250
1250
  * @description Allows you to get all auctions of player
1251
1251
  * @param {string} query - player nickname or uuid
@@ -2521,12 +2521,18 @@ declare module 'hypixel-api-reborn' {
2521
2521
  currentElectionResults: Map<string, Candidate> | null;
2522
2522
  currentElectionFor: number | null;
2523
2523
  }
2524
+ class Perk {
2525
+ name: string;
2526
+ description: string;
2527
+ }
2524
2528
  class Candidate {
2525
- constructor(data: Record<string, unknown>, isMayor?: boolean | undefined);
2529
+ constructor(data: Record<string, unknown>, isMayor?: boolean | undefined, isMinister?: boolean | undefined);
2526
2530
  name: string;
2527
2531
  keyBenefit: string;
2528
- perks: Record<'name' | 'description', string>[];
2532
+ perk: Perk | null;
2533
+ perks: Perk[];
2529
2534
  isMayor: boolean;
2535
+ isMinister: boolean;
2530
2536
  votesReceived: number;
2531
2537
  toString(): string;
2532
2538
  }
@@ -2591,6 +2597,7 @@ declare module 'hypixel-api-reborn' {
2591
2597
  members: SkyblockMember[];
2592
2598
  me: SkyblockMember;
2593
2599
  selected: boolean;
2600
+ garden?: SkyblockGarden;
2594
2601
  }
2595
2602
  class SkyblockPet {
2596
2603
  constructor(data: Record<string, unknown>);
@@ -2665,9 +2672,26 @@ declare module 'hypixel-api-reborn' {
2665
2672
  blaze: SKYBLOCK_SLAYER_DATA;
2666
2673
  vampire: SKYBLOCK_SLAYER_DATA;
2667
2674
  };
2675
+ kuudra: {
2676
+ none: number;
2677
+ hot: number;
2678
+ burning: number;
2679
+ fiery: number;
2680
+ highest_wave_hot: number;
2681
+ highest_wave_fiery: number;
2682
+ infernal: number;
2683
+ highest_wave_infernal: number;
2684
+ highest_wave_burning: number;
2685
+ } | null;
2668
2686
  dungeons: {
2669
2687
  types: {
2670
- catacombs: SKYBLOCK_SKILL_DATA;
2688
+ catacombs: {
2689
+ experience: number;
2690
+ completions: Record<string, number>;
2691
+ };
2692
+ masterCatacombs: {
2693
+ completions: Record<string, number>;
2694
+ };
2671
2695
  };
2672
2696
  classes: {
2673
2697
  healer: SKYBLOCK_SKILL_DATA;