hypixel-api-reborn 11.2.1 → 11.3.1
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 +8 -8
- package/src/API/housing/getActiveHouses.js +7 -0
- package/src/API/housing/getHouse.js +9 -0
- package/src/API/housing/getPlayerHouses.js +11 -0
- package/src/API/index.js +6 -1
- package/src/API/skyblock/getFireSales.js +1 -1
- package/src/API/skyblock/getGarden.js +7 -0
- package/src/API/skyblock/getMember.js +4 -2
- package/src/API/skyblock/getProfiles.js +4 -2
- package/src/Client.js +46 -2
- package/src/Private/requests.js +1 -1
- package/src/index.js +5 -0
- package/src/structures/House.js +54 -0
- package/src/structures/MiniGames/Arcade.js +754 -270
- package/src/structures/MiniGames/ArenaBrawl.js +97 -31
- package/src/structures/MiniGames/BlitzSurvivalGames.js +378 -127
- package/src/structures/MiniGames/BuildBattle.js +19 -8
- package/src/structures/MiniGames/CopsAndCrims.js +252 -25
- package/src/structures/MiniGames/Duels.js +916 -656
- package/src/structures/MiniGames/MegaWalls.js +390 -51
- package/src/structures/MiniGames/MurderMystery.js +151 -30
- package/src/structures/MiniGames/Paintball.js +31 -11
- package/src/structures/MiniGames/Quakecraft.js +113 -50
- package/src/structures/MiniGames/SkyWars.js +340 -195
- package/src/structures/MiniGames/SmashHeroes.js +195 -69
- package/src/structures/MiniGames/SpeedUHC.js +76 -36
- package/src/structures/MiniGames/TNTGames.js +242 -73
- package/src/structures/MiniGames/TurboKartRacers.js +55 -115
- package/src/structures/MiniGames/UHC.js +135 -124
- package/src/structures/MiniGames/VampireZ.js +70 -37
- package/src/structures/MiniGames/Warlords.js +126 -1
- package/src/structures/MiniGames/WoolWars.js +54 -4
- package/src/structures/Player.js +33 -25
- package/src/structures/SkyBlock/SkyblockGarden.js +146 -0
- package/src/structures/SkyBlock/SkyblockMember.js +12 -5
- package/src/utils/Constants.js +507 -5
- package/src/utils/SkyblockUtils.js +33 -0
- package/typings/index.d.ts +1034 -899
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hypixel-api-reborn",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.3.1",
|
|
4
4
|
"description": "Feature-rich Hypixel API wrapper for Node.js",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./typings/index.d.ts",
|
|
@@ -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": "
|
|
35
|
+
"skyhelper-networth": "^1.21.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.11
|
|
45
|
+
"@types/node": "^20.14.11",
|
|
46
46
|
"chai": "^4.3.4",
|
|
47
|
-
"eslint": "^9.
|
|
48
|
-
"eslint-plugin-jsdoc": "^48.
|
|
49
|
-
"globals": "^15.
|
|
47
|
+
"eslint": "^9.7.0",
|
|
48
|
+
"eslint-plugin-jsdoc": "^48.8.3",
|
|
49
|
+
"globals": "^15.8.0",
|
|
50
50
|
"mocha": "^10.4.0",
|
|
51
51
|
"node-env-run": "^4.0.2",
|
|
52
52
|
"path": "^0.12.7",
|
|
53
|
-
"prettier": "^3.
|
|
54
|
-
"typescript": "^5.
|
|
53
|
+
"prettier": "^3.3.3",
|
|
54
|
+
"typescript": "^5.5.3"
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
module.exports = async function () {
|
|
2
|
+
const House = require('../../structures/House');
|
|
3
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
4
|
+
const res = await this._makeRequest('/housing/active');
|
|
5
|
+
if (res.raw) return res;
|
|
6
|
+
return res.length ? res.map((b) => new House(b)) : [];
|
|
7
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const Errors = require('../../Errors');
|
|
2
|
+
module.exports = async function (query) {
|
|
3
|
+
if (!query) throw new Error(Errors.NO_UUID);
|
|
4
|
+
const House = require('../../structures/House');
|
|
5
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
6
|
+
const res = await this._makeRequest(`/housing/house?house=${query}`);
|
|
7
|
+
if (res.raw) return res;
|
|
8
|
+
return new House(res);
|
|
9
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const Errors = require('../../Errors');
|
|
2
|
+
const toUuid = require('../../utils/toUuid');
|
|
3
|
+
module.exports = async function (query) {
|
|
4
|
+
if (!query) throw new Error(Errors.NO_NICKNAME_UUID);
|
|
5
|
+
query = await toUuid(query, this.options.mojangCacheTime, this.options.useThirdPartyAPI);
|
|
6
|
+
const House = require('../../structures/House');
|
|
7
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
8
|
+
const res = await this._makeRequest(`/housing/houses?player=${query}`);
|
|
9
|
+
if (res.raw) return res;
|
|
10
|
+
return res.length ? res.map((b) => new House(b)) : [];
|
|
11
|
+
};
|
package/src/API/index.js
CHANGED
|
@@ -22,9 +22,14 @@ module.exports = {
|
|
|
22
22
|
getSkyblockBingoByPlayer: require('./skyblock/getBingoByPlayer.js'),
|
|
23
23
|
getSkyblockEndedAuctions: require('./skyblock/getEndedAuctions.js'),
|
|
24
24
|
getSkyblockFireSales: require('./skyblock/getFireSales.js'),
|
|
25
|
+
getSkyblockGarden: require('./skyblock/getGarden.js'),
|
|
25
26
|
getSkyblockGovernment: require('./skyblock/getGovernment.js'),
|
|
26
27
|
getSkyblockMember: require('./skyblock/getMember.js'),
|
|
27
28
|
getSkyblockMuseum: require('./skyblock/getMuseum.js'),
|
|
28
29
|
getSkyblockNews: require('./skyblock/getNews.js'),
|
|
29
|
-
getSkyblockProfiles: require('./skyblock/getProfiles.js')
|
|
30
|
+
getSkyblockProfiles: require('./skyblock/getProfiles.js'),
|
|
31
|
+
|
|
32
|
+
getActiveHouses: require('./housing/getActiveHouses.js'),
|
|
33
|
+
getPlayerHouses: require('./housing/getPlayerHouses.js'),
|
|
34
|
+
getHouse: require('./housing/getHouse.js')
|
|
30
35
|
};
|
|
@@ -3,5 +3,5 @@ module.exports = async function () {
|
|
|
3
3
|
// eslint-disable-next-line no-underscore-dangle
|
|
4
4
|
const res = await this._makeRequest('/skyblock/firesales');
|
|
5
5
|
if (res.raw) return res;
|
|
6
|
-
return res.sales.length ? res.sales.map((
|
|
6
|
+
return res.sales.length ? res.sales.map((sale) => new FireSale(sale)) : [];
|
|
7
7
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
module.exports = async function (profileId) {
|
|
2
|
+
const SkyblockGarden = require('../../structures/SkyBlock/SkyblockGarden');
|
|
3
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
4
|
+
const res = await this._makeRequest(`/skyblock/garden?profile=${profileId}`);
|
|
5
|
+
if (res.raw) return res;
|
|
6
|
+
return new SkyblockGarden(res);
|
|
7
|
+
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const Errors = require('../../Errors');
|
|
2
2
|
const toUuid = require('../../utils/toUuid');
|
|
3
3
|
const getPlayer = require('../getPlayer');
|
|
4
|
-
module.exports = async function (query, options = { fetchPlayer: false, getMuseum: false }) {
|
|
4
|
+
module.exports = async function (query, options = { fetchPlayer: false, getMuseum: false, getGarden: false }) {
|
|
5
5
|
const SkyblockMember = require('../../structures/SkyBlock/SkyblockMember');
|
|
6
|
-
const getSkyblockMuseum = require('
|
|
6
|
+
const getSkyblockMuseum = require('./getMuseum');
|
|
7
|
+
const getSkyblockGarden = require('./getGarden');
|
|
7
8
|
if (!query) throw new Error(Errors.NO_NICKNAME_UUID);
|
|
8
9
|
query = await toUuid(query, this.options.mojangCacheTime, this.options.useThirdPartyAPI);
|
|
9
10
|
// eslint-disable-next-line no-underscore-dangle
|
|
@@ -25,6 +26,7 @@ module.exports = async function (query, options = { fetchPlayer: false, getMuseu
|
|
|
25
26
|
banking: profile.banking,
|
|
26
27
|
communityUpgrades: profile.community_upgrades,
|
|
27
28
|
museum: options.getMuseum ? await getSkyblockMuseum.call(this, query, profile.profile_id) : null,
|
|
29
|
+
garden: options.getGarden ? await getSkyblockGarden.call(this, profile.profile_id) : null,
|
|
28
30
|
selected: profile.selected
|
|
29
31
|
})
|
|
30
32
|
);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const Errors = require('../../Errors');
|
|
2
2
|
const toUuid = require('../../utils/toUuid');
|
|
3
3
|
const getPlayer = require('../getPlayer');
|
|
4
|
-
module.exports = async function (query, options = { fetchPlayer: false, getMuseum: false }) {
|
|
4
|
+
module.exports = async function (query, options = { fetchPlayer: false, getMuseum: false, getGarden: false }) {
|
|
5
5
|
const SkyblockProfile = require('../../structures/SkyBlock/SkyblockProfile');
|
|
6
|
-
const getSkyblockMuseum = require('
|
|
6
|
+
const getSkyblockMuseum = require('./getMuseum');
|
|
7
|
+
const getSkyblockGarden = require('./getGarden');
|
|
7
8
|
if (!query) throw new Error(Errors.NO_NICKNAME_UUID);
|
|
8
9
|
query = await toUuid(query, this.options.mojangCacheTime, this.options.useThirdPartyAPI);
|
|
9
10
|
// eslint-disable-next-line no-underscore-dangle
|
|
@@ -38,6 +39,7 @@ module.exports = async function (query, options = { fetchPlayer: false, getMuseu
|
|
|
38
39
|
banking: res.profiles[i].banking,
|
|
39
40
|
communityUpgrades: res.profiles[i].community_upgrades,
|
|
40
41
|
museum: options.getMuseum ? await getSkyblockMuseum.call(this, query, res.profiles[i].profile_id) : null,
|
|
42
|
+
garden: options.getGarden ? await getSkyblockGarden.call(this, res.profiles[i].profile_id) : null,
|
|
41
43
|
selected: res.profiles[i].selected,
|
|
42
44
|
members: res.profiles[i].members
|
|
43
45
|
});
|
package/src/Client.js
CHANGED
|
@@ -15,6 +15,7 @@ const Booster = require('./structures/Boosters/Booster');
|
|
|
15
15
|
const SkyblockProfile = require('./structures/SkyBlock/SkyblockProfile');
|
|
16
16
|
const SkyblockMember = require('./structures/SkyBlock/SkyblockMember');
|
|
17
17
|
const SkyblockMuseum = require('./structures/SkyBlock/SkyblockMuseum');
|
|
18
|
+
const SkyblockGarden = require('./structures/SkyBlock/SkyblockGarden');
|
|
18
19
|
const APIStatus = require('./structures/APIStatus');
|
|
19
20
|
const Leaderboard = require('./structures/Leaderboard');
|
|
20
21
|
const ServerInfo = require('./structures/ServerInfo');
|
|
@@ -30,6 +31,7 @@ const GovernmentData = require('./structures/SkyBlock/Static/Government');
|
|
|
30
31
|
const FireSale = require('./structures/SkyBlock/Static/FireSale');
|
|
31
32
|
const SkyblockNews = require('./structures/SkyBlock/News/SkyblockNews');
|
|
32
33
|
const GameCounts = require('./structures/GameCounts');
|
|
34
|
+
const House = require('./structures/House.js');
|
|
33
35
|
/* eslint-enable */
|
|
34
36
|
|
|
35
37
|
/**
|
|
@@ -252,6 +254,24 @@ class Client extends EventEmitter {
|
|
|
252
254
|
* const member = await hypixel.getSkyblockMember('StavZDev').catch(console.log);
|
|
253
255
|
* console.log(member.get('Cucumber').uuid); // '52d9a36f66ce4cdf9a56ad9724ae9fb4'
|
|
254
256
|
*/
|
|
257
|
+
/**
|
|
258
|
+
* Allows you to get a player's skyblock member data from all their profiles
|
|
259
|
+
* @method
|
|
260
|
+
* @name Client#getSkyblockGarden
|
|
261
|
+
* @param {string} profileId Profile id of the garden you want
|
|
262
|
+
* @param {MethodOptions} [options={}] Method options
|
|
263
|
+
* @return {Promise<SkyblockGarden>}
|
|
264
|
+
* @example
|
|
265
|
+
* hypixel.getSkyblockMember('StavZDev').then(member => {
|
|
266
|
+
* // 'Cucumber' - profile name
|
|
267
|
+
* console.log(member.get('Cucumber').uuid); // '52d9a36f66ce4cdf9a56ad9724ae9fb4'
|
|
268
|
+
* }).catch(e => {
|
|
269
|
+
* console.log(e);
|
|
270
|
+
* })
|
|
271
|
+
* @example
|
|
272
|
+
* const member = await hypixel.getSkyblockMember('StavZDev').catch(console.log);
|
|
273
|
+
* console.log(member.get('Cucumber').uuid); // '52d9a36f66ce4cdf9a56ad9724ae9fb4'
|
|
274
|
+
*/
|
|
255
275
|
/**
|
|
256
276
|
* Allows you to get a player's skyblock profile museum
|
|
257
277
|
* @method
|
|
@@ -403,6 +423,29 @@ class Client extends EventEmitter {
|
|
|
403
423
|
* @param {MethodOptions} [options={}] Options
|
|
404
424
|
* @return {Promise<FireSale[]>}
|
|
405
425
|
*/
|
|
426
|
+
/**
|
|
427
|
+
* Get a array of active houses
|
|
428
|
+
* @method
|
|
429
|
+
* @name Client#getActiveHouses
|
|
430
|
+
* @param {MethodOptions} [options={}] Options
|
|
431
|
+
* @return {Promise<House[]>}
|
|
432
|
+
*/
|
|
433
|
+
/**
|
|
434
|
+
* Get a array of houses for a user
|
|
435
|
+
* @method
|
|
436
|
+
* @name Client#getPlayerHouses
|
|
437
|
+
* @param {string} query UUID / IGN of player
|
|
438
|
+
* @param {MethodOptions} [options={}] Options
|
|
439
|
+
* @return {Promise<House[]>}
|
|
440
|
+
*/
|
|
441
|
+
/**
|
|
442
|
+
* Get a house
|
|
443
|
+
* @method
|
|
444
|
+
* @name Client#getHouse
|
|
445
|
+
* @param {string} query House UUID
|
|
446
|
+
* @param {MethodOptions} [options={}] Options
|
|
447
|
+
* @return {Promise<House>}
|
|
448
|
+
*/
|
|
406
449
|
/**
|
|
407
450
|
* Allows you to get skyblock news
|
|
408
451
|
* @method
|
|
@@ -477,11 +520,12 @@ const defaultCache = require('./Private/defaultCache.js');
|
|
|
477
520
|
*/
|
|
478
521
|
/**
|
|
479
522
|
* @typedef {object} SkyblockMethodOptions
|
|
480
|
-
* @property {boolean} [
|
|
481
|
-
* @property {boolean} [getMuseum=false] Raw data
|
|
523
|
+
* @property {boolean} [raw=false] Raw data
|
|
482
524
|
* @property {boolean} [noCacheCheck=false] Disable/Enable cache checking
|
|
483
525
|
* @property {boolean} [noCaching=false] Disable/Enable writing to cache
|
|
484
526
|
* @property {?boolean} [fetchPlayer=false] Disable/Enable player profile request for each member
|
|
527
|
+
* @property {?boolean} [getMuseum=false] Disable/Enable player museum request for each member
|
|
528
|
+
* @property {?boolean} [getGarden=false] Disable/Enable player garden request for each member
|
|
485
529
|
* @prop {object} [headers={}] Extra Headers ( like User-Agent ) to add to request. Overrides the headers globally provided.
|
|
486
530
|
*/
|
|
487
531
|
/**
|
package/src/Private/requests.js
CHANGED
|
@@ -34,7 +34,7 @@ class Requests {
|
|
|
34
34
|
if (422 === res.status) throw new Error(Errors.UNEXPECTED_ERROR);
|
|
35
35
|
if (429 === res.status) throw new Error(Errors.RATE_LIMIT_EXCEEDED);
|
|
36
36
|
if (200 !== res.status) throw new Error(Errors.ERROR_STATUSTEXT.replace(/{statustext}/, res.statusText));
|
|
37
|
-
if (!parsedRes.success) {
|
|
37
|
+
if (!parsedRes.success && !endpoint.startsWith('/housing')) {
|
|
38
38
|
throw new Error(Errors.SOMETHING_WENT_WRONG.replace(/{cause}/, res.cause));
|
|
39
39
|
}
|
|
40
40
|
// eslint-disable-next-line no-underscore-dangle
|
package/src/index.js
CHANGED
|
@@ -29,6 +29,7 @@ module.exports = {
|
|
|
29
29
|
/* SkyBlock */
|
|
30
30
|
SkyblockProfile: require('./structures/SkyBlock/SkyblockProfile.js'),
|
|
31
31
|
SkyblockMember: require('./structures/SkyBlock/SkyblockMember.js'),
|
|
32
|
+
SkyblockGarden: require('./structures/SkyBlock/SkyblockGarden.js'),
|
|
32
33
|
SkyblockInventoryItem: require('./structures/SkyBlock/SkyblockInventoryItem.js'),
|
|
33
34
|
SkyblockPet: require('./structures/SkyBlock/SkyblockPet'),
|
|
34
35
|
GovernmentData: require('./structures/SkyBlock/Static/Government.js'),
|
|
@@ -54,6 +55,9 @@ module.exports = {
|
|
|
54
55
|
/* Booster */
|
|
55
56
|
Booster: require('./structures/Boosters/Booster.js'),
|
|
56
57
|
|
|
58
|
+
/* House */
|
|
59
|
+
House: require('./structures/House.js'),
|
|
60
|
+
|
|
57
61
|
/* MiniGames */
|
|
58
62
|
Arcade: require('./structures/MiniGames/Arcade.js'),
|
|
59
63
|
ArenaBrawl: require('./structures/MiniGames/ArenaBrawl.js'),
|
|
@@ -65,6 +69,7 @@ module.exports = {
|
|
|
65
69
|
MegaWalls: require('./structures/MiniGames/MegaWalls.js'),
|
|
66
70
|
MurderMystery: require('./structures/MiniGames/MurderMystery.js'),
|
|
67
71
|
Paintball: require('./structures/MiniGames/Paintball.js'),
|
|
72
|
+
Pit: require('./structures/MiniGames/Pit.js'),
|
|
68
73
|
Quakecraft: require('./structures/MiniGames/Quakecraft.js'),
|
|
69
74
|
SkyWars: require('./structures/MiniGames/SkyWars.js'),
|
|
70
75
|
SmashHeroes: require('./structures/MiniGames/SmashHeroes.js'),
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* House class
|
|
3
|
+
*/
|
|
4
|
+
class House {
|
|
5
|
+
/**
|
|
6
|
+
* @param {object} data data
|
|
7
|
+
*/
|
|
8
|
+
constructor(data) {
|
|
9
|
+
/**
|
|
10
|
+
* Name of the house
|
|
11
|
+
* @type {string}
|
|
12
|
+
*/
|
|
13
|
+
this.name = data.name || '';
|
|
14
|
+
/**
|
|
15
|
+
* UUID of the house
|
|
16
|
+
* @type {string}
|
|
17
|
+
*/
|
|
18
|
+
this.uuid = data.uuid || '';
|
|
19
|
+
/**
|
|
20
|
+
* UUID of the house owner
|
|
21
|
+
* @type {string}
|
|
22
|
+
*/
|
|
23
|
+
this.owner = data.owner || '';
|
|
24
|
+
/**
|
|
25
|
+
* Timestamp when the house was created
|
|
26
|
+
* @type {number}
|
|
27
|
+
*/
|
|
28
|
+
this.createdAtTimestamp = data.createdAt || 0;
|
|
29
|
+
/**
|
|
30
|
+
* Date when the house was created
|
|
31
|
+
* @type {Date|null}
|
|
32
|
+
*/
|
|
33
|
+
this.createdAt = new Date(this.createdAtTimestamp);
|
|
34
|
+
/**
|
|
35
|
+
* Number of players currently at the house
|
|
36
|
+
* @type {number}
|
|
37
|
+
*/
|
|
38
|
+
this.players = data.players || 0;
|
|
39
|
+
/**
|
|
40
|
+
* Number of cookies the house has
|
|
41
|
+
* @type {number}
|
|
42
|
+
*/
|
|
43
|
+
this.cookies = data.cookies?.current || 0;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* House Nmae
|
|
47
|
+
* @return {string}
|
|
48
|
+
*/
|
|
49
|
+
toString() {
|
|
50
|
+
return this.name;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
module.exports = House;
|