hypixel-api-reborn 11.3.4 → 12.0.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.
- package/.editorconfig +12 -0
- package/.github/ISSUE_TEMPLATE/Bug_report.md +9 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +25 -0
- package/.github/SECURITY.md +21 -0
- package/.github/labels.yml +24 -0
- package/.github/workflows/ci-cd.yml +126 -0
- package/.vscode/extensions.json +10 -0
- package/README.md +0 -63
- package/dist/API/getAchievements.d.ts +10 -0
- package/dist/API/getAchievements.js +22 -0
- package/dist/API/getAchievements.js.map +1 -0
- package/dist/API/getActiveHouses.d.ts +10 -0
- package/dist/API/getActiveHouses.js +22 -0
- package/dist/API/getActiveHouses.js.map +1 -0
- package/dist/API/getBoosters.d.ts +10 -0
- package/dist/API/getBoosters.js +22 -0
- package/dist/API/getBoosters.js.map +1 -0
- package/dist/API/getChallenges.d.ts +10 -0
- package/dist/API/getChallenges.js +22 -0
- package/dist/API/getChallenges.js.map +1 -0
- package/dist/API/getGameCounts.d.ts +10 -0
- package/dist/API/getGameCounts.js +22 -0
- package/dist/API/getGameCounts.js.map +1 -0
- package/dist/API/getGuild.d.ts +10 -0
- package/dist/API/getGuild.js +36 -0
- package/dist/API/getGuild.js.map +1 -0
- package/dist/API/getGuildAchievements.d.ts +10 -0
- package/dist/API/getGuildAchievements.js +22 -0
- package/dist/API/getGuildAchievements.js.map +1 -0
- package/dist/API/getHouse.d.ts +10 -0
- package/dist/API/getHouse.js +24 -0
- package/dist/API/getHouse.js.map +1 -0
- package/dist/API/getLeaderboards.d.ts +9 -0
- package/dist/API/getLeaderboards.js +32 -0
- package/dist/API/getLeaderboards.js.map +1 -0
- package/dist/API/getPlayer.d.ts +10 -0
- package/dist/API/getPlayer.js +37 -0
- package/dist/API/getPlayer.js.map +1 -0
- package/dist/API/getPlayerHouses.d.ts +10 -0
- package/dist/API/getPlayerHouses.js +25 -0
- package/dist/API/getPlayerHouses.js.map +1 -0
- package/dist/API/getQuests.d.ts +10 -0
- package/dist/API/getQuests.js +22 -0
- package/dist/API/getQuests.js.map +1 -0
- package/dist/API/getRecentGames.d.ts +10 -0
- package/dist/API/getRecentGames.js +25 -0
- package/dist/API/getRecentGames.js.map +1 -0
- package/dist/API/getSkyblockAuction.d.ts +10 -0
- package/dist/API/getSkyblockAuction.js +38 -0
- package/dist/API/getSkyblockAuction.js.map +1 -0
- package/dist/API/getSkyblockAuctions.d.ts +24 -0
- package/dist/API/getSkyblockAuctions.js +57 -0
- package/dist/API/getSkyblockAuctions.js.map +1 -0
- package/dist/API/getSkyblockAuctionsByPlayer.d.ts +10 -0
- package/dist/API/getSkyblockAuctionsByPlayer.js +25 -0
- package/dist/API/getSkyblockAuctionsByPlayer.js.map +1 -0
- package/dist/API/getSkyblockBazaar.d.ts +10 -0
- package/dist/API/getSkyblockBazaar.js +22 -0
- package/dist/API/getSkyblockBazaar.js.map +1 -0
- package/dist/API/getSkyblockBingo.d.ts +10 -0
- package/dist/API/getSkyblockBingo.js +22 -0
- package/dist/API/getSkyblockBingo.js.map +1 -0
- package/dist/API/getSkyblockFireSales.d.ts +10 -0
- package/dist/API/getSkyblockFireSales.js +22 -0
- package/dist/API/getSkyblockFireSales.js.map +1 -0
- package/dist/API/getSkyblockGarden.d.ts +10 -0
- package/dist/API/getSkyblockGarden.js +24 -0
- package/dist/API/getSkyblockGarden.js.map +1 -0
- package/dist/API/getSkyblockGovernment.d.ts +10 -0
- package/dist/API/getSkyblockGovernment.js +22 -0
- package/dist/API/getSkyblockGovernment.js.map +1 -0
- package/dist/API/getSkyblockMember.d.ts +10 -0
- package/dist/API/getSkyblockMember.js +46 -0
- package/dist/API/getSkyblockMember.js.map +1 -0
- package/dist/API/getSkyblockMuseum.d.ts +10 -0
- package/dist/API/getSkyblockMuseum.js +25 -0
- package/dist/API/getSkyblockMuseum.js.map +1 -0
- package/dist/API/getSkyblockNews.d.ts +10 -0
- package/dist/API/getSkyblockNews.js +22 -0
- package/dist/API/getSkyblockNews.js.map +1 -0
- package/dist/API/getSkyblockProfiles.d.ts +10 -0
- package/dist/API/getSkyblockProfiles.js +47 -0
- package/dist/API/getSkyblockProfiles.js.map +1 -0
- package/dist/API/getStatus.d.ts +10 -0
- package/dist/API/getStatus.js +23 -0
- package/dist/API/getStatus.js.map +1 -0
- package/dist/API/getWatchdogStats.d.ts +10 -0
- package/dist/API/getWatchdogStats.js +22 -0
- package/dist/API/getWatchdogStats.js.map +1 -0
- package/dist/API/index.d.ts +57 -0
- package/dist/API/index.js +62 -0
- package/dist/API/index.js.map +1 -0
- package/dist/Client.d.ts +29 -0
- package/dist/Client.js +76 -0
- package/dist/Client.js.map +1 -0
- package/dist/Errors.d.ts +27 -0
- package/dist/Errors.js +31 -0
- package/dist/Errors.js.map +1 -0
- package/dist/Private/CacheHandler.d.ts +14 -0
- package/dist/Private/CacheHandler.js +37 -0
- package/dist/Private/CacheHandler.js.map +1 -0
- package/dist/Private/Endpoint.d.ts +7 -0
- package/dist/Private/Endpoint.js +13 -0
- package/dist/Private/Endpoint.js.map +1 -0
- package/dist/Private/RateLimit.d.ts +13 -0
- package/dist/Private/RateLimit.js +33 -0
- package/dist/Private/RateLimit.js.map +1 -0
- package/dist/Private/Requests.d.ts +29 -0
- package/dist/Private/Requests.js +112 -0
- package/dist/Private/Requests.js.map +1 -0
- package/dist/Private/Updater.d.ts +11 -0
- package/dist/Private/Updater.js +47 -0
- package/dist/Private/Updater.js.map +1 -0
- package/dist/index.d.ts +115 -0
- package/dist/index.js +132 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +66 -0
- package/dist/src/API/getAchievements.js +16 -0
- package/dist/src/API/getAchievements.test.js +74 -0
- package/dist/src/API/getActiveHouses.js +16 -0
- package/dist/src/API/getActiveHouses.test.js +43 -0
- package/dist/src/API/getBoosters.js +16 -0
- package/dist/src/API/getBoosters.test.js +72 -0
- package/dist/src/API/getChallenges.js +16 -0
- package/dist/src/API/getChallenges.test.js +51 -0
- package/dist/src/API/getGameCounts.js +16 -0
- package/dist/src/API/getGameCounts.test.js +26 -0
- package/dist/src/API/getGuild.js +30 -0
- package/dist/src/API/getGuild.test.js +508 -0
- package/dist/src/API/getGuildAchievements.js +16 -0
- package/dist/src/API/getGuildAchievements.test.js +51 -0
- package/dist/src/API/getHouse.js +18 -0
- package/dist/src/API/getHouse.test.js +51 -0
- package/dist/src/API/getLeaderboards.js +23 -0
- package/dist/src/API/getLeaderboards.test.js +55 -0
- package/dist/src/API/getPlayer.js +31 -0
- package/dist/src/API/getPlayer.test.js +290 -0
- package/dist/src/API/getPlayerHouses.js +19 -0
- package/dist/src/API/getPlayerHouses.test.js +50 -0
- package/dist/src/API/getQuests.js +16 -0
- package/dist/src/API/getQuests.test.js +48 -0
- package/dist/src/API/getRecentGames.js +19 -0
- package/dist/src/API/getRecentGames.test.js +52 -0
- package/dist/src/API/getSkyblockAuction.js +32 -0
- package/dist/src/API/getSkyblockAuction.test.js +382 -0
- package/dist/src/API/getSkyblockAuctions.js +51 -0
- package/dist/src/API/getSkyblockAuctions.test.js +366 -0
- package/dist/src/API/getSkyblockAuctionsByPlayer.js +19 -0
- package/dist/src/API/getSkyblockAuctionsByPlayer.test.js +207 -0
- package/dist/src/API/getSkyblockBazaar.js +16 -0
- package/dist/src/API/getSkyblockBazaar.test.js +51 -0
- package/dist/src/API/getSkyblockBingo.js +16 -0
- package/dist/src/API/getSkyblockBingo.test.js +40 -0
- package/dist/src/API/getSkyblockFireSales.js +16 -0
- package/dist/src/API/getSkyblockFireSales.test.js +55 -0
- package/dist/src/API/getSkyblockGarden.js +18 -0
- package/dist/src/API/getSkyblockGarden.test.js +43 -0
- package/dist/src/API/getSkyblockGovernment.js +16 -0
- package/dist/src/API/getSkyblockGovernment.test.js +60 -0
- package/dist/src/API/getSkyblockMember.js +40 -0
- package/dist/src/API/getSkyblockMember.test.js +648 -0
- package/dist/src/API/getSkyblockMuseum.js +19 -0
- package/dist/src/API/getSkyblockMuseum.test.js +78 -0
- package/dist/src/API/getSkyblockNews.js +16 -0
- package/dist/src/API/getSkyblockNews.test.js +35 -0
- package/dist/src/API/getSkyblockProfiles.js +41 -0
- package/dist/src/API/getSkyblockProfiles.test.js +121 -0
- package/dist/src/API/getStatus.js +17 -0
- package/dist/src/API/getStatus.test.js +57 -0
- package/dist/src/API/getWatchdogStats.js +16 -0
- package/dist/src/API/getWatchdogStats.test.js +37 -0
- package/dist/src/API/index.js +56 -0
- package/dist/src/Client.js +70 -0
- package/dist/src/Client.test.js +115 -0
- package/dist/src/Errors.js +28 -0
- package/dist/src/Private/CacheHandler.js +31 -0
- package/dist/src/Private/CacheHandler.test.js +37 -0
- package/dist/src/Private/Endpoint.js +10 -0
- package/dist/src/Private/Endpoint.test.js +17 -0
- package/dist/src/Private/RateLimit.js +30 -0
- package/dist/src/Private/RateLimit.test.js +73 -0
- package/dist/src/Private/Requests.js +106 -0
- package/dist/src/Private/Requests.test.js +48 -0
- package/dist/src/Private/Updater.js +41 -0
- package/dist/src/Private/Updater.test.js +52 -0
- package/dist/src/index.js +34 -0
- package/dist/src/structures/Boosters/Booster.js +38 -0
- package/dist/src/structures/Boosters/Booster.test.js +7 -0
- package/dist/src/structures/Color.js +73 -0
- package/dist/src/structures/Color.test.js +23 -0
- package/dist/src/structures/Game.js +31 -0
- package/dist/src/structures/GameCounts.js +23 -0
- package/dist/src/structures/Guild/Guild.js +61 -0
- package/dist/src/structures/Guild/GuildMember.js +30 -0
- package/dist/src/structures/Guild/GuildRank.js +20 -0
- package/dist/src/structures/House.js +22 -0
- package/dist/src/structures/House.test.js +24 -0
- package/dist/src/structures/ItemBytes.js +10 -0
- package/dist/src/structures/Leaderboard.js +17 -0
- package/dist/src/structures/Leaderboard.test.js +25 -0
- package/dist/src/structures/MiniGames/Arcade.js +437 -0
- package/dist/src/structures/MiniGames/Arcade.test.js +643 -0
- package/dist/src/structures/MiniGames/ArenaBrawl.js +48 -0
- package/dist/src/structures/MiniGames/ArenaBrawl.test.js +120 -0
- package/dist/src/structures/MiniGames/BedWars.js +299 -0
- package/dist/src/structures/MiniGames/BedWars.test.js +936 -0
- package/dist/src/structures/MiniGames/BlitzSurvivalGames.js +170 -0
- package/dist/src/structures/MiniGames/BlitzSurvivalGames.test.js +2238 -0
- package/dist/src/structures/MiniGames/BuildBattle.js +27 -0
- package/dist/src/structures/MiniGames/BuildBattle.test.js +42 -0
- package/dist/src/structures/MiniGames/CopsAndCrims.js +126 -0
- package/dist/src/structures/MiniGames/CopsAndCrims.test.js +162 -0
- package/dist/src/structures/MiniGames/Duels.js +466 -0
- package/dist/src/structures/MiniGames/Duels.test.js +1853 -0
- package/dist/src/structures/MiniGames/MegaWalls.js +194 -0
- package/dist/src/structures/MiniGames/MegaWalls.test.js +4790 -0
- package/dist/src/structures/MiniGames/MurderMystery.js +84 -0
- package/dist/src/structures/MiniGames/MurderMystery.test.js +241 -0
- package/dist/src/structures/MiniGames/Paintball.js +36 -0
- package/dist/src/structures/MiniGames/Paintball.test.js +51 -0
- package/dist/src/structures/MiniGames/Pit.js +124 -0
- package/dist/src/structures/MiniGames/Pit.test.js +218 -0
- package/dist/src/structures/MiniGames/PitInventoryItem.js +19 -0
- package/dist/src/structures/MiniGames/Quakecraft.js +68 -0
- package/dist/src/structures/MiniGames/Quakecraft.test.js +105 -0
- package/dist/src/structures/MiniGames/SkyWars.js +264 -0
- package/dist/src/structures/MiniGames/Skywars.test.js +413 -0
- package/dist/src/structures/MiniGames/SmashHeroes.js +110 -0
- package/dist/src/structures/MiniGames/SmashHeroes.test.js +647 -0
- package/dist/src/structures/MiniGames/SpeedUHC.js +72 -0
- package/dist/src/structures/MiniGames/SpeedUHC.test.js +245 -0
- package/dist/src/structures/MiniGames/TNTGames.js +120 -0
- package/dist/src/structures/MiniGames/TNTGames.test.js +139 -0
- package/dist/src/structures/MiniGames/TurboKartRacers.js +57 -0
- package/dist/src/structures/MiniGames/TurboKartRacers.test.js +140 -0
- package/dist/src/structures/MiniGames/UHC.js +109 -0
- package/dist/src/structures/MiniGames/UHC.test.js +180 -0
- package/dist/src/structures/MiniGames/VampireZ.js +38 -0
- package/dist/src/structures/MiniGames/VampireZ.test.js +59 -0
- package/dist/src/structures/MiniGames/Walls.js +22 -0
- package/dist/src/structures/MiniGames/Walls.test.js +32 -0
- package/dist/src/structures/MiniGames/Warlords.js +76 -0
- package/dist/src/structures/MiniGames/Warlords.test.js +405 -0
- package/dist/src/structures/MiniGames/WoolWars.js +81 -0
- package/dist/src/structures/MiniGames/WoolWars.test.js +251 -0
- package/dist/src/structures/Pet.js +38 -0
- package/dist/src/structures/Pets.js +14 -0
- package/dist/src/structures/Player.js +147 -0
- package/dist/src/structures/Player.test.js +96 -0
- package/dist/src/structures/PlayerCosmetics.js +53 -0
- package/dist/src/structures/RecentGame.js +25 -0
- package/dist/src/structures/SkyBlock/Auctions/Auction.js +39 -0
- package/dist/src/structures/SkyBlock/Auctions/AuctionInfo.js +15 -0
- package/dist/src/structures/SkyBlock/Auctions/BaseAuction.js +19 -0
- package/dist/src/structures/SkyBlock/Auctions/BaseAuction.test.js +20 -0
- package/dist/src/structures/SkyBlock/Auctions/Bid.js +20 -0
- package/dist/src/structures/SkyBlock/Bazaar/Order.js +16 -0
- package/dist/src/structures/SkyBlock/Bazaar/Order.test.js +23 -0
- package/dist/src/structures/SkyBlock/Bazaar/Product.js +23 -0
- package/dist/src/structures/SkyBlock/Bazaar/Product.test.js +46 -0
- package/dist/src/structures/SkyBlock/News/SkyblockNews.js +32 -0
- package/dist/src/structures/SkyBlock/SkyblockGarden.js +62 -0
- package/dist/src/structures/SkyBlock/SkyblockGarden.test.js +22 -0
- package/dist/src/structures/SkyBlock/SkyblockInventoryItem.js +78 -0
- package/dist/src/structures/SkyBlock/SkyblockMember.js +406 -0
- package/dist/src/structures/SkyBlock/SkyblockMember.test.js +71 -0
- package/dist/src/structures/SkyBlock/SkyblockMuseum.js +29 -0
- package/dist/src/structures/SkyBlock/SkyblockMuseumItem.js +24 -0
- package/dist/src/structures/SkyBlock/SkyblockPet.js +27 -0
- package/dist/src/structures/SkyBlock/SkyblockProfile.js +36 -0
- package/dist/src/structures/SkyBlock/Static/Bingo.js +49 -0
- package/dist/src/structures/SkyBlock/Static/BingoData.js +19 -0
- package/dist/src/structures/SkyBlock/Static/Candidate.js +19 -0
- package/dist/src/structures/SkyBlock/Static/FireSale.js +22 -0
- package/dist/src/structures/SkyBlock/Static/Government.js +33 -0
- package/dist/src/structures/SkyBlock/Static/Perk.js +9 -0
- package/dist/src/structures/Static/Achievement.js +44 -0
- package/dist/src/structures/Static/AchievementTier.js +14 -0
- package/dist/src/structures/Static/Achievements.js +15 -0
- package/dist/src/structures/Static/Challenges.js +15 -0
- package/dist/src/structures/Static/GameAchievements.js +14 -0
- package/dist/src/structures/Static/GameChallenges.js +18 -0
- package/dist/src/structures/Static/GameQuests.js +10 -0
- package/dist/src/structures/Static/GuildAchievements.js +15 -0
- package/dist/src/structures/Static/Quest.js +24 -0
- package/dist/src/structures/Static/Quests.js +15 -0
- package/dist/src/structures/Status.js +17 -0
- package/dist/src/structures/Status.test.js +18 -0
- package/dist/src/structures/WatchdogStats.js +15 -0
- package/dist/src/structures/WatchdogStats.test.js +23 -0
- package/dist/src/utils/Constants.js +2170 -0
- package/dist/src/utils/Guild.js +71 -0
- package/dist/src/utils/Player.js +88 -0
- package/dist/src/utils/Player.test.js +82 -0
- package/dist/src/utils/SkyblockUtils.js +342 -0
- package/dist/src/utils/SkyblockUtils.test.js +8 -0
- package/dist/src/utils/divide.js +6 -0
- package/dist/src/utils/divide.test.js +12 -0
- package/dist/src/utils/isGuildID.js +3 -0
- package/dist/src/utils/isGuildID.test.js +16 -0
- package/dist/src/utils/isUUID.js +5 -0
- package/dist/src/utils/isUUID.test.js +31 -0
- package/dist/src/utils/oscillation.js +13 -0
- package/dist/src/utils/oscillation.test.js +17 -0
- package/dist/src/utils/removeSnakeCase.js +14 -0
- package/dist/src/utils/romanize.js +41 -0
- package/dist/src/utils/romanize.test.js +8 -0
- package/dist/structures/Boosters/Booster.d.ts +17 -0
- package/dist/structures/Boosters/Booster.js +44 -0
- package/dist/structures/Boosters/Booster.js.map +1 -0
- package/dist/structures/Color.d.ts +9 -0
- package/dist/structures/Color.js +76 -0
- package/dist/structures/Color.js.map +1 -0
- package/dist/structures/Game.d.ts +16 -0
- package/dist/structures/Game.js +35 -0
- package/dist/structures/Game.js.map +1 -0
- package/dist/structures/GameCounts.d.ts +7 -0
- package/dist/structures/GameCounts.js +29 -0
- package/dist/structures/GameCounts.js.map +1 -0
- package/dist/structures/Guild/Guild.d.ts +39 -0
- package/dist/structures/Guild/Guild.js +67 -0
- package/dist/structures/Guild/Guild.js.map +1 -0
- package/dist/structures/Guild/GuildMember.d.ts +15 -0
- package/dist/structures/Guild/GuildMember.js +33 -0
- package/dist/structures/Guild/GuildMember.js.map +1 -0
- package/dist/structures/Guild/GuildRank.d.ts +11 -0
- package/dist/structures/Guild/GuildRank.js +23 -0
- package/dist/structures/Guild/GuildRank.js.map +1 -0
- package/dist/structures/House.d.ts +12 -0
- package/dist/structures/House.js +25 -0
- package/dist/structures/House.js.map +1 -0
- package/dist/structures/ItemBytes.d.ts +7 -0
- package/dist/structures/ItemBytes.js +17 -0
- package/dist/structures/ItemBytes.js.map +1 -0
- package/dist/structures/Leaderboard.d.ts +8 -0
- package/dist/structures/Leaderboard.js +16 -0
- package/dist/structures/Leaderboard.js.map +1 -0
- package/dist/structures/MiniGames/Arcade.d.ts +234 -0
- package/dist/structures/MiniGames/Arcade.js +466 -0
- package/dist/structures/MiniGames/Arcade.js.map +1 -0
- package/dist/structures/MiniGames/ArenaBrawl.d.ts +26 -0
- package/dist/structures/MiniGames/ArenaBrawl.js +54 -0
- package/dist/structures/MiniGames/ArenaBrawl.js.map +1 -0
- package/dist/structures/MiniGames/BedWars.d.ts +116 -0
- package/dist/structures/MiniGames/BedWars.js +300 -0
- package/dist/structures/MiniGames/BedWars.js.map +1 -0
- package/dist/structures/MiniGames/BlitzSurvivalGames.d.ts +87 -0
- package/dist/structures/MiniGames/BlitzSurvivalGames.js +176 -0
- package/dist/structures/MiniGames/BlitzSurvivalGames.js.map +1 -0
- package/dist/structures/MiniGames/BuildBattle.d.ts +18 -0
- package/dist/structures/MiniGames/BuildBattle.js +33 -0
- package/dist/structures/MiniGames/BuildBattle.js.map +1 -0
- package/dist/structures/MiniGames/CopsAndCrims.d.ts +67 -0
- package/dist/structures/MiniGames/CopsAndCrims.js +132 -0
- package/dist/structures/MiniGames/CopsAndCrims.js.map +1 -0
- package/dist/structures/MiniGames/Duels.d.ts +188 -0
- package/dist/structures/MiniGames/Duels.js +473 -0
- package/dist/structures/MiniGames/Duels.js.map +1 -0
- package/dist/structures/MiniGames/MegaWalls.d.ts +99 -0
- package/dist/structures/MiniGames/MegaWalls.js +200 -0
- package/dist/structures/MiniGames/MegaWalls.js.map +1 -0
- package/dist/structures/MiniGames/MurderMystery.d.ts +44 -0
- package/dist/structures/MiniGames/MurderMystery.js +90 -0
- package/dist/structures/MiniGames/MurderMystery.js.map +1 -0
- package/dist/structures/MiniGames/Paintball.d.ts +19 -0
- package/dist/structures/MiniGames/Paintball.js +42 -0
- package/dist/structures/MiniGames/Paintball.js.map +1 -0
- package/dist/structures/MiniGames/Pit.d.ts +41 -0
- package/dist/structures/MiniGames/Pit.js +138 -0
- package/dist/structures/MiniGames/Pit.js.map +1 -0
- package/dist/structures/MiniGames/PitInventoryItem.d.ts +10 -0
- package/dist/structures/MiniGames/PitInventoryItem.js +20 -0
- package/dist/structures/MiniGames/PitInventoryItem.js.map +1 -0
- package/dist/structures/MiniGames/Quakecraft.d.ts +35 -0
- package/dist/structures/MiniGames/Quakecraft.js +74 -0
- package/dist/structures/MiniGames/Quakecraft.js.map +1 -0
- package/dist/structures/MiniGames/SkyWars.d.ts +112 -0
- package/dist/structures/MiniGames/SkyWars.js +272 -0
- package/dist/structures/MiniGames/SkyWars.js.map +1 -0
- package/dist/structures/MiniGames/SmashHeroes.d.ts +58 -0
- package/dist/structures/MiniGames/SmashHeroes.js +116 -0
- package/dist/structures/MiniGames/SmashHeroes.js.map +1 -0
- package/dist/structures/MiniGames/SpeedUHC.d.ts +36 -0
- package/dist/structures/MiniGames/SpeedUHC.js +74 -0
- package/dist/structures/MiniGames/SpeedUHC.js.map +1 -0
- package/dist/structures/MiniGames/TNTGames.d.ts +66 -0
- package/dist/structures/MiniGames/TNTGames.js +126 -0
- package/dist/structures/MiniGames/TNTGames.js.map +1 -0
- package/dist/structures/MiniGames/TurboKartRacers.d.ts +31 -0
- package/dist/structures/MiniGames/TurboKartRacers.js +60 -0
- package/dist/structures/MiniGames/TurboKartRacers.js.map +1 -0
- package/dist/structures/MiniGames/UHC.d.ts +31 -0
- package/dist/structures/MiniGames/UHC.js +115 -0
- package/dist/structures/MiniGames/UHC.js.map +1 -0
- package/dist/structures/MiniGames/VampireZ.d.ts +21 -0
- package/dist/structures/MiniGames/VampireZ.js +44 -0
- package/dist/structures/MiniGames/VampireZ.js.map +1 -0
- package/dist/structures/MiniGames/Walls.d.ts +12 -0
- package/dist/structures/MiniGames/Walls.js +28 -0
- package/dist/structures/MiniGames/Walls.js.map +1 -0
- package/dist/structures/MiniGames/Warlords.d.ts +40 -0
- package/dist/structures/MiniGames/Warlords.js +82 -0
- package/dist/structures/MiniGames/Warlords.js.map +1 -0
- package/dist/structures/MiniGames/WoolWars.d.ts +49 -0
- package/dist/structures/MiniGames/WoolWars.js +87 -0
- package/dist/structures/MiniGames/WoolWars.js.map +1 -0
- package/dist/structures/Pet.d.ts +19 -0
- package/dist/structures/Pet.js +41 -0
- package/dist/structures/Pet.js.map +1 -0
- package/dist/structures/Pets.d.ts +38 -0
- package/dist/structures/Pets.js +20 -0
- package/dist/structures/Pets.js.map +1 -0
- package/dist/structures/Player.d.ts +73 -0
- package/dist/structures/Player.js +158 -0
- package/dist/structures/Player.js.map +1 -0
- package/dist/structures/PlayerCosmetics.d.ts +26 -0
- package/dist/structures/PlayerCosmetics.js +120 -0
- package/dist/structures/PlayerCosmetics.js.map +1 -0
- package/dist/structures/RecentGame.d.ts +13 -0
- package/dist/structures/RecentGame.js +30 -0
- package/dist/structures/RecentGame.js.map +1 -0
- package/dist/structures/ServerInfo.d.ts +20 -0
- package/dist/structures/ServerInfo.js +34 -0
- package/dist/structures/ServerInfo.js.map +1 -0
- package/dist/structures/SkyBlock/Auctions/Auction.d.ts +22 -0
- package/dist/structures/SkyBlock/Auctions/Auction.js +45 -0
- package/dist/structures/SkyBlock/Auctions/Auction.js.map +1 -0
- package/dist/structures/SkyBlock/Auctions/AuctionInfo.d.ts +10 -0
- package/dist/structures/SkyBlock/Auctions/AuctionInfo.js +21 -0
- package/dist/structures/SkyBlock/Auctions/AuctionInfo.js.map +1 -0
- package/dist/structures/SkyBlock/Auctions/BaseAuction.d.ts +11 -0
- package/dist/structures/SkyBlock/Auctions/BaseAuction.js +25 -0
- package/dist/structures/SkyBlock/Auctions/BaseAuction.js.map +1 -0
- package/dist/structures/SkyBlock/Auctions/Bid.d.ts +11 -0
- package/dist/structures/SkyBlock/Auctions/Bid.js +23 -0
- package/dist/structures/SkyBlock/Auctions/Bid.js.map +1 -0
- package/dist/structures/SkyBlock/Bazzar/Order.d.ts +9 -0
- package/dist/structures/SkyBlock/Bazzar/Order.js +19 -0
- package/dist/structures/SkyBlock/Bazzar/Order.js.map +1 -0
- package/dist/structures/SkyBlock/Bazzar/Product.d.ts +19 -0
- package/dist/structures/SkyBlock/Bazzar/Product.js +33 -0
- package/dist/structures/SkyBlock/Bazzar/Product.js.map +1 -0
- package/dist/structures/SkyBlock/News/SkyblockNews.d.ts +10 -0
- package/dist/structures/SkyBlock/News/SkyblockNews.js +35 -0
- package/dist/structures/SkyBlock/News/SkyblockNews.js.map +1 -0
- package/dist/structures/SkyBlock/SkyblockGarden.d.ts +60 -0
- package/dist/structures/SkyBlock/SkyblockGarden.js +65 -0
- package/dist/structures/SkyBlock/SkyblockGarden.js.map +1 -0
- package/dist/structures/SkyBlock/SkyblockInventoryItem.d.ts +38 -0
- package/dist/structures/SkyBlock/SkyblockInventoryItem.js +83 -0
- package/dist/structures/SkyBlock/SkyblockInventoryItem.js.map +1 -0
- package/dist/structures/SkyBlock/SkyblockMember.d.ts +80 -0
- package/dist/structures/SkyBlock/SkyblockMember.js +288 -0
- package/dist/structures/SkyBlock/SkyblockMember.js.map +1 -0
- package/dist/structures/SkyBlock/SkyblockMuseum.d.ts +10 -0
- package/dist/structures/SkyBlock/SkyblockMuseum.js +35 -0
- package/dist/structures/SkyBlock/SkyblockMuseum.js.map +1 -0
- package/dist/structures/SkyBlock/SkyblockMuseumItem.d.ts +11 -0
- package/dist/structures/SkyBlock/SkyblockMuseumItem.js +30 -0
- package/dist/structures/SkyBlock/SkyblockMuseumItem.js.map +1 -0
- package/dist/structures/SkyBlock/SkyblockPet.d.ts +15 -0
- package/dist/structures/SkyBlock/SkyblockPet.js +33 -0
- package/dist/structures/SkyBlock/SkyblockPet.js.map +1 -0
- package/dist/structures/SkyBlock/SkyblockProfile.d.ts +14 -0
- package/dist/structures/SkyBlock/SkyblockProfile.js +42 -0
- package/dist/structures/SkyBlock/SkyblockProfile.js.map +1 -0
- package/dist/structures/SkyBlock/Static/Bingo.d.ts +16 -0
- package/dist/structures/SkyBlock/Static/Bingo.js +52 -0
- package/dist/structures/SkyBlock/Static/Bingo.js.map +1 -0
- package/dist/structures/SkyBlock/Static/BingoData.d.ts +10 -0
- package/dist/structures/SkyBlock/Static/BingoData.js +25 -0
- package/dist/structures/SkyBlock/Static/BingoData.js.map +1 -0
- package/dist/structures/SkyBlock/Static/Candidate.d.ts +11 -0
- package/dist/structures/SkyBlock/Static/Candidate.js +25 -0
- package/dist/structures/SkyBlock/Static/Candidate.js.map +1 -0
- package/dist/structures/SkyBlock/Static/FireSale.d.ts +12 -0
- package/dist/structures/SkyBlock/Static/FireSale.js +25 -0
- package/dist/structures/SkyBlock/Static/FireSale.js.map +1 -0
- package/dist/structures/SkyBlock/Static/Government.d.ts +13 -0
- package/dist/structures/SkyBlock/Static/Government.js +39 -0
- package/dist/structures/SkyBlock/Static/Government.js.map +1 -0
- package/dist/structures/SkyBlock/Static/Perk.d.ts +6 -0
- package/dist/structures/SkyBlock/Static/Perk.js +12 -0
- package/dist/structures/SkyBlock/Static/Perk.js.map +1 -0
- package/dist/structures/Static/Achievement.d.ts +14 -0
- package/dist/structures/Static/Achievement.js +50 -0
- package/dist/structures/Static/Achievement.js.map +1 -0
- package/dist/structures/Static/AchievementTier.d.ts +7 -0
- package/dist/structures/Static/AchievementTier.js +17 -0
- package/dist/structures/Static/AchievementTier.js.map +1 -0
- package/dist/structures/Static/Achievements.d.ts +9 -0
- package/dist/structures/Static/Achievements.js +21 -0
- package/dist/structures/Static/Achievements.js.map +1 -0
- package/dist/structures/Static/Challenges.d.ts +9 -0
- package/dist/structures/Static/Challenges.js +21 -0
- package/dist/structures/Static/Challenges.js.map +1 -0
- package/dist/structures/Static/GameAchievements.d.ts +10 -0
- package/dist/structures/Static/GameAchievements.js +20 -0
- package/dist/structures/Static/GameAchievements.js.map +1 -0
- package/dist/structures/Static/GameChallenges.d.ts +13 -0
- package/dist/structures/Static/GameChallenges.js +21 -0
- package/dist/structures/Static/GameChallenges.js.map +1 -0
- package/dist/structures/Static/GameQuests.d.ts +8 -0
- package/dist/structures/Static/GameQuests.js +16 -0
- package/dist/structures/Static/GameQuests.js.map +1 -0
- package/dist/structures/Static/GuildAchievements.d.ts +8 -0
- package/dist/structures/Static/GuildAchievements.js +21 -0
- package/dist/structures/Static/GuildAchievements.js.map +1 -0
- package/dist/structures/Static/Quest.d.ts +20 -0
- package/dist/structures/Static/Quest.js +27 -0
- package/dist/structures/Static/Quest.js.map +1 -0
- package/dist/structures/Static/Quests.d.ts +9 -0
- package/dist/structures/Static/Quests.js +21 -0
- package/dist/structures/Static/Quests.js.map +1 -0
- package/dist/structures/Status.d.ts +10 -0
- package/dist/structures/Status.js +23 -0
- package/dist/structures/Status.js.map +1 -0
- package/dist/structures/Watchdog/Stats.d.ts +9 -0
- package/dist/structures/Watchdog/Stats.js +18 -0
- package/dist/structures/Watchdog/Stats.js.map +1 -0
- package/dist/utils/Constants.d.ts +1017 -0
- package/dist/utils/Constants.js +2197 -0
- package/dist/utils/Constants.js.map +1 -0
- package/dist/utils/Guild.d.ts +15 -0
- package/dist/utils/Guild.js +85 -0
- package/dist/utils/Guild.js.map +1 -0
- package/dist/utils/Player.d.ts +8 -0
- package/dist/utils/Player.js +98 -0
- package/dist/utils/Player.js.map +1 -0
- package/dist/utils/SkyblockUtils.d.ts +131 -0
- package/dist/utils/SkyblockUtils.js +394 -0
- package/dist/utils/SkyblockUtils.js.map +1 -0
- package/dist/utils/divide.d.ts +1 -0
- package/dist/utils/divide.js +10 -0
- package/dist/utils/divide.js.map +1 -0
- package/dist/utils/isGuildID.d.ts +1 -0
- package/dist/utils/isGuildID.js +7 -0
- package/dist/utils/isGuildID.js.map +1 -0
- package/dist/utils/isUUID.d.ts +1 -0
- package/dist/utils/isUUID.js +9 -0
- package/dist/utils/isUUID.js.map +1 -0
- package/dist/utils/oscillation.d.ts +2 -0
- package/dist/utils/oscillation.js +15 -0
- package/dist/utils/oscillation.js.map +1 -0
- package/dist/utils/removeSnakeCase.d.ts +3 -0
- package/dist/utils/removeSnakeCase.js +20 -0
- package/dist/utils/removeSnakeCase.js.map +1 -0
- package/dist/utils/romanize.d.ts +1 -0
- package/dist/utils/romanize.js +45 -0
- package/dist/utils/romanize.js.map +1 -0
- package/{eslint.config.mjs → eslint.config.js} +16 -14
- package/package.json +32 -25
- package/renovate.json +21 -0
- package/src/API/API.d.ts +16 -0
- package/src/API/getAchievements.test.ts +81 -0
- package/src/API/getAchievements.ts +20 -0
- package/src/API/getActiveHouses.test.ts +45 -0
- package/src/API/getActiveHouses.ts +20 -0
- package/src/API/getBoosters.test.ts +53 -0
- package/src/API/getBoosters.ts +20 -0
- package/src/API/getChallenges.test.ts +54 -0
- package/src/API/getChallenges.ts +19 -0
- package/src/API/getGameCounts.test.ts +28 -0
- package/src/API/getGameCounts.ts +20 -0
- package/src/API/getGuild.test.ts +478 -0
- package/src/API/getGuild.ts +35 -0
- package/src/API/getGuildAchievements.test.ts +59 -0
- package/src/API/getGuildAchievements.ts +20 -0
- package/src/API/getHouse.test.ts +55 -0
- package/src/API/getHouse.ts +21 -0
- package/src/API/getLeaderboards.test.ts +41 -0
- package/src/API/getLeaderboards.ts +30 -0
- package/src/API/getPlayer.test.ts +494 -0
- package/src/API/getPlayer.ts +33 -0
- package/src/API/getPlayerHouses.test.ts +53 -0
- package/src/API/getPlayerHouses.ts +22 -0
- package/src/API/getQuests.test.ts +51 -0
- package/src/API/getQuests.ts +20 -0
- package/src/API/getRecentGames.test.ts +51 -0
- package/src/API/getRecentGames.ts +22 -0
- package/src/API/getSkyblockAuction.test.ts +293 -0
- package/src/API/getSkyblockAuction.ts +36 -0
- package/src/API/getSkyblockAuctions.test.ts +346 -0
- package/src/API/getSkyblockAuctions.ts +59 -0
- package/src/API/getSkyblockAuctionsByPlayer.test.ts +249 -0
- package/src/API/getSkyblockAuctionsByPlayer.ts +22 -0
- package/src/API/getSkyblockBazaar.test.ts +52 -0
- package/src/API/getSkyblockBazaar.ts +20 -0
- package/src/API/getSkyblockBingo.test.ts +42 -0
- package/src/API/getSkyblockBingo.ts +20 -0
- package/src/API/getSkyblockFireSales.test.ts +43 -0
- package/src/API/getSkyblockFireSales.ts +20 -0
- package/src/API/getSkyblockGarden.test.ts +60 -0
- package/src/API/getSkyblockGarden.ts +21 -0
- package/src/API/getSkyblockGovernment.test.ts +78 -0
- package/src/API/getSkyblockGovernment.ts +20 -0
- package/src/API/getSkyblockMember.test.ts +308 -0
- package/src/API/getSkyblockMember.ts +45 -0
- package/src/API/getSkyblockMuseum.test.ts +91 -0
- package/src/API/getSkyblockMuseum.ts +22 -0
- package/src/API/getSkyblockNews.test.ts +45 -0
- package/src/API/getSkyblockNews.ts +20 -0
- package/src/API/getSkyblockProfiles.test.ts +164 -0
- package/src/API/getSkyblockProfiles.ts +43 -0
- package/src/API/getStatus.test.ts +42 -0
- package/src/API/getStatus.ts +21 -0
- package/src/API/getWatchdogStats.test.ts +44 -0
- package/src/API/getWatchdogStats.ts +20 -0
- package/src/API/index.ts +56 -0
- package/src/Client.test.ts +148 -0
- package/src/Client.ts +91 -0
- package/src/Errors.ts +42 -0
- package/src/Private/CacheHandler.test.ts +49 -0
- package/src/Private/CacheHandler.ts +41 -0
- package/src/Private/Endpoint.test.ts +23 -0
- package/src/Private/Endpoint.ts +14 -0
- package/src/Private/RateLimit.test.ts +99 -0
- package/src/Private/RateLimit.ts +38 -0
- package/src/Private/Requests.test.ts +59 -0
- package/src/Private/Requests.ts +128 -0
- package/src/Private/Updater.test.ts +68 -0
- package/src/Private/Updater.ts +48 -0
- package/src/index.ts +119 -0
- package/src/structures/Boosters/Booster.ts +40 -0
- package/src/structures/Color.ts +79 -0
- package/src/structures/Game.ts +147 -0
- package/src/structures/GameCounts.ts +26 -0
- package/src/structures/Guild/Guild.ts +67 -0
- package/src/structures/Guild/GuildMember.ts +33 -0
- package/src/structures/Guild/GuildRank.ts +22 -0
- package/src/structures/House.ts +24 -0
- package/src/structures/ItemBytes.ts +18 -0
- package/src/structures/Leaderboard.ts +14 -0
- package/src/structures/MiniGames/Arcade.ts +460 -0
- package/src/structures/MiniGames/ArenaBrawl.ts +51 -0
- package/src/structures/MiniGames/{BedWars.js → BedWars.ts} +198 -298
- package/src/structures/MiniGames/BlitzSurvivalGames.ts +173 -0
- package/src/structures/MiniGames/BuildBattle.ts +36 -0
- package/src/structures/MiniGames/CopsAndCrims.ts +131 -0
- package/src/structures/MiniGames/{Duels.js → Duels.ts} +200 -737
- package/src/structures/MiniGames/MegaWalls.ts +197 -0
- package/src/structures/MiniGames/MurderMystery.ts +87 -0
- package/src/structures/MiniGames/Paintball.ts +38 -0
- package/src/structures/MiniGames/Pit.ts +139 -0
- package/src/structures/MiniGames/PitInventoryItem.ts +18 -0
- package/src/structures/MiniGames/Quakecraft.ts +70 -0
- package/src/structures/MiniGames/SkyWars.ts +288 -0
- package/src/structures/MiniGames/SmashHeroes.ts +114 -0
- package/src/structures/MiniGames/SpeedUHC.ts +71 -0
- package/src/structures/MiniGames/TNTGames.ts +126 -0
- package/src/structures/MiniGames/TurboKartRacers.ts +59 -0
- package/src/structures/MiniGames/{UHC.js → UHC.ts} +32 -114
- package/src/structures/MiniGames/VampireZ.ts +41 -0
- package/src/structures/MiniGames/Walls.ts +24 -0
- package/src/structures/MiniGames/Warlords.ts +79 -0
- package/src/structures/MiniGames/WoolWars.ts +106 -0
- package/src/structures/Pet.ts +40 -0
- package/src/structures/Pets.ts +46 -0
- package/src/structures/Player.ts +199 -0
- package/src/structures/{PlayerCosmetics.js → PlayerCosmetics.ts} +36 -63
- package/src/structures/RecentGame.ts +27 -0
- package/src/structures/ServerInfo.ts +40 -0
- package/src/structures/SkyBlock/Auctions/Auction.ts +43 -0
- package/src/structures/SkyBlock/Auctions/AuctionInfo.ts +20 -0
- package/src/structures/SkyBlock/Auctions/BaseAuction.ts +22 -0
- package/src/structures/SkyBlock/Auctions/Bid.ts +22 -0
- package/src/structures/SkyBlock/Bazzar/Order.ts +18 -0
- package/src/structures/SkyBlock/Bazzar/Product.ts +40 -0
- package/src/structures/SkyBlock/News/SkyblockNews.ts +35 -0
- package/src/structures/SkyBlock/SkyblockGarden.ts +118 -0
- package/src/structures/SkyBlock/SkyblockInventoryItem.ts +83 -0
- package/src/structures/SkyBlock/SkyblockMember.ts +317 -0
- package/src/structures/SkyBlock/SkyblockMuseum.ts +43 -0
- package/src/structures/SkyBlock/SkyblockMuseumItem.ts +26 -0
- package/src/structures/SkyBlock/SkyblockPet.ts +30 -0
- package/src/structures/SkyBlock/SkyblockProfile.ts +42 -0
- package/src/structures/SkyBlock/Static/Bingo.ts +50 -0
- package/src/structures/SkyBlock/Static/BingoData.ts +21 -0
- package/src/structures/SkyBlock/Static/Candidate.ts +22 -0
- package/src/structures/SkyBlock/Static/FireSale.ts +24 -0
- package/src/structures/SkyBlock/Static/Government.ts +42 -0
- package/src/structures/SkyBlock/Static/Perk.ts +10 -0
- package/src/structures/Static/Achievement.ts +49 -0
- package/src/structures/Static/AchievementTier.ts +18 -0
- package/src/structures/Static/Achievements.ts +20 -0
- package/src/structures/Static/Challenges.ts +20 -0
- package/src/structures/Static/GameAchievements.ts +19 -0
- package/src/structures/Static/GameChallenges.ts +28 -0
- package/src/structures/Static/GameQuests.ts +13 -0
- package/src/structures/Static/GuildAchievements.ts +19 -0
- package/src/structures/Static/Quest.ts +37 -0
- package/src/structures/Static/Quests.ts +20 -0
- package/src/structures/Status.ts +20 -0
- package/src/structures/Watchdog/Stats.ts +16 -0
- package/src/typings/index.d.ts +24 -0
- package/src/utils/{Constants.js → Constants.ts} +201 -1248
- package/src/utils/Guild.ts +90 -0
- package/src/utils/Player.ts +93 -0
- package/src/utils/SkyblockUtils.test.ts +9 -0
- package/src/utils/SkyblockUtils.ts +516 -0
- package/src/utils/divide.test.ts +13 -0
- package/src/utils/{divide.js → divide.ts} +2 -2
- package/src/utils/isGuildID.test.ts +19 -0
- package/src/utils/isGuildID.ts +3 -0
- package/src/utils/isUUID.test.ts +35 -0
- package/src/utils/{isUUID.js → isUUID.ts} +2 -2
- package/src/utils/oscillation.ts +11 -0
- package/src/utils/removeSnakeCase.ts +18 -0
- package/src/utils/romanize.test.ts +9 -0
- package/src/utils/{romanize.js → romanize.ts} +3 -4
- package/tsconfig.json +25 -0
- package/vitest.config.ts +8 -0
- package/vitest.setup.ts +2 -0
- package/src/API/getAPIStatus.js +0 -8
- package/src/API/getAchievements.js +0 -7
- package/src/API/getBoosters.js +0 -7
- package/src/API/getChallenges.js +0 -7
- package/src/API/getGameCounts.js +0 -7
- package/src/API/getGuild.js +0 -19
- package/src/API/getGuildAchievements.js +0 -7
- package/src/API/getLeaderboards.js +0 -15
- package/src/API/getPlayer.js +0 -23
- package/src/API/getQuests.js +0 -7
- package/src/API/getRecentGames.js +0 -14
- package/src/API/getServerInfo.js +0 -71
- package/src/API/getStatus.js +0 -9
- package/src/API/getWatchdogStats.js +0 -7
- package/src/API/housing/getActiveHouses.js +0 -7
- package/src/API/housing/getHouse.js +0 -9
- package/src/API/housing/getPlayerHouses.js +0 -11
- package/src/API/index.js +0 -35
- package/src/API/skyblock/getAuction.js +0 -21
- package/src/API/skyblock/getAuctions.js +0 -74
- package/src/API/skyblock/getAuctionsByPlayer.js +0 -11
- package/src/API/skyblock/getBazaar.js +0 -8
- package/src/API/skyblock/getBingo.js +0 -7
- package/src/API/skyblock/getBingoByPlayer.js +0 -14
- package/src/API/skyblock/getEndedAuctions.js +0 -11
- package/src/API/skyblock/getFireSales.js +0 -7
- package/src/API/skyblock/getGarden.js +0 -11
- package/src/API/skyblock/getGovernment.js +0 -7
- package/src/API/skyblock/getMember.js +0 -35
- package/src/API/skyblock/getMuseum.js +0 -15
- package/src/API/skyblock/getNews.js +0 -7
- package/src/API/skyblock/getProfiles.js +0 -49
- package/src/Client.js +0 -547
- package/src/Errors.js +0 -66
- package/src/Private/defaultCache.js +0 -77
- package/src/Private/rateLimit.js +0 -83
- package/src/Private/requests.js +0 -76
- package/src/Private/updater.js +0 -34
- package/src/Private/uuidCache.js +0 -30
- package/src/Private/validate.js +0 -108
- package/src/index.js +0 -96
- package/src/structures/APIIncident.js +0 -71
- package/src/structures/APIStatus.js +0 -46
- package/src/structures/Boosters/Booster.js +0 -84
- package/src/structures/Color.js +0 -174
- package/src/structures/Game.js +0 -166
- package/src/structures/GameCounts.js +0 -151
- package/src/structures/Guild/Guild.js +0 -191
- package/src/structures/Guild/GuildMember.js +0 -66
- package/src/structures/Guild/GuildRank.js +0 -48
- package/src/structures/House.js +0 -54
- package/src/structures/ItemBytes.js +0 -33
- package/src/structures/Leaderboard.js +0 -31
- package/src/structures/MiniGames/Arcade.js +0 -1058
- package/src/structures/MiniGames/ArenaBrawl.js +0 -118
- package/src/structures/MiniGames/BlitzSurvivalGames.js +0 -424
- package/src/structures/MiniGames/BuildBattle.js +0 -64
- package/src/structures/MiniGames/CopsAndCrims.js +0 -318
- package/src/structures/MiniGames/MegaWalls.js +0 -478
- package/src/structures/MiniGames/MurderMystery.js +0 -214
- package/src/structures/MiniGames/Paintball.js +0 -87
- package/src/structures/MiniGames/Pit.js +0 -247
- package/src/structures/MiniGames/PitInventoryItem.js +0 -43
- package/src/structures/MiniGames/Quakecraft.js +0 -164
- package/src/structures/MiniGames/SkyWars.js +0 -669
- package/src/structures/MiniGames/SmashHeroes.js +0 -272
- package/src/structures/MiniGames/SpeedUHC.js +0 -168
- package/src/structures/MiniGames/TNTGames.js +0 -285
- package/src/structures/MiniGames/TurboKartRacers.js +0 -141
- package/src/structures/MiniGames/VampireZ.js +0 -93
- package/src/structures/MiniGames/Walls.js +0 -52
- package/src/structures/MiniGames/Warlords.js +0 -187
- package/src/structures/MiniGames/WoolWars.js +0 -174
- package/src/structures/Pet.js +0 -96
- package/src/structures/Pets.js +0 -64
- package/src/structures/Player.js +0 -346
- package/src/structures/RecentGame.js +0 -57
- package/src/structures/ServerInfo.js +0 -78
- package/src/structures/SkyBlock/Auctions/Auction.js +0 -106
- package/src/structures/SkyBlock/Auctions/AuctionInfo.js +0 -56
- package/src/structures/SkyBlock/Auctions/BaseAuction.js +0 -46
- package/src/structures/SkyBlock/Auctions/Bid.js +0 -49
- package/src/structures/SkyBlock/Auctions/PartialAuction.js +0 -26
- package/src/structures/SkyBlock/Bazzar/Order.js +0 -38
- package/src/structures/SkyBlock/Bazzar/Product.js +0 -53
- package/src/structures/SkyBlock/News/SkyblockNews.js +0 -60
- package/src/structures/SkyBlock/PlayerBingo.js +0 -49
- package/src/structures/SkyBlock/SkyblockGarden.js +0 -146
- package/src/structures/SkyBlock/SkyblockInventoryItem.js +0 -168
- package/src/structures/SkyBlock/SkyblockMember.js +0 -591
- package/src/structures/SkyBlock/SkyblockMuseum.js +0 -60
- package/src/structures/SkyBlock/SkyblockMuseumItem.js +0 -54
- package/src/structures/SkyBlock/SkyblockPet.js +0 -71
- package/src/structures/SkyBlock/SkyblockProfile.js +0 -81
- package/src/structures/SkyBlock/Static/Bingo.js +0 -101
- package/src/structures/SkyBlock/Static/BingoData.js +0 -45
- package/src/structures/SkyBlock/Static/Candidate.js +0 -50
- package/src/structures/SkyBlock/Static/FireSale.js +0 -55
- package/src/structures/SkyBlock/Static/Government.js +0 -79
- package/src/structures/SkyBlock/Static/Perk.js +0 -23
- package/src/structures/Static/Achievement.js +0 -87
- package/src/structures/Static/AchievementTier.js +0 -33
- package/src/structures/Static/Achievements.js +0 -30
- package/src/structures/Static/Challenges.js +0 -29
- package/src/structures/Static/GameAchievements.js +0 -36
- package/src/structures/Static/GameChallenges.js +0 -40
- package/src/structures/Static/GameQuests.js +0 -24
- package/src/structures/Static/GuildAchievements.js +0 -34
- package/src/structures/Static/Quest.js +0 -66
- package/src/structures/Static/Quests.js +0 -31
- package/src/structures/Status.js +0 -41
- package/src/structures/Watchdog/Stats.js +0 -36
- package/src/utils/Guild.js +0 -90
- package/src/utils/Player.js +0 -112
- package/src/utils/SkyblockUtils.js +0 -667
- package/src/utils/arrayTools.js +0 -4
- package/src/utils/index.js +0 -14
- package/src/utils/isGuildID.js +0 -3
- package/src/utils/oscillation.js +0 -17
- package/src/utils/removeSnakeCase.js +0 -33
- package/src/utils/rgbToHexColor.js +0 -8
- package/src/utils/toUuid.js +0 -24
- package/src/utils/varInt.js +0 -17
- package/typings/index.d.ts +0 -4297
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import GuildMember from '../structures/Guild/GuildMember';
|
|
2
|
+
import GuildRank from '../structures/Guild/GuildRank';
|
|
3
|
+
|
|
4
|
+
export interface ExpHistory {
|
|
5
|
+
day: string;
|
|
6
|
+
date: Date | undefined;
|
|
7
|
+
exp: number;
|
|
8
|
+
totalExp: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const dateRegExp = /(\d{4})-(\d{2})-(\d{2})/;
|
|
12
|
+
export function parseDate(date: Record<string, any>) {
|
|
13
|
+
date[1] -= 1;
|
|
14
|
+
return new Date(
|
|
15
|
+
Math.round(new Date(new Date().setUTCFullYear(...(date as [any]))).setUTCHours(5, 0, 0) / 1000) * 1000
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function parseHistory(historyData: Record<string, any>): ExpHistory[] {
|
|
20
|
+
return Object.entries(historyData).map((x, index) => ({
|
|
21
|
+
day: x[0],
|
|
22
|
+
date: x[0].match(dateRegExp)
|
|
23
|
+
? parseDate(
|
|
24
|
+
x[0]
|
|
25
|
+
.match(dateRegExp)!
|
|
26
|
+
.slice(1)
|
|
27
|
+
.map((x) => parseInt(x, 10))
|
|
28
|
+
)
|
|
29
|
+
: undefined,
|
|
30
|
+
exp: x[1] || 0,
|
|
31
|
+
totalExp:
|
|
32
|
+
Object.values(historyData)
|
|
33
|
+
.slice(0, index + 1)
|
|
34
|
+
.reduce((pV: any, cV: any) => pV + cV, 0) || 0
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function getGuildLevel(exp: number) {
|
|
39
|
+
const EXP_NEEDED = [
|
|
40
|
+
100000, 150000, 250000, 500000, 750000, 1000000, 1250000, 1500000, 2000000, 2500000, 2500000, 2500000, 2500000,
|
|
41
|
+
2500000, 3000000
|
|
42
|
+
];
|
|
43
|
+
let level = 0;
|
|
44
|
+
for (let i = 0; 1000 >= i; i += 1) {
|
|
45
|
+
let need;
|
|
46
|
+
if (i >= EXP_NEEDED.length) {
|
|
47
|
+
need = EXP_NEEDED[EXP_NEEDED.length - 1];
|
|
48
|
+
} else {
|
|
49
|
+
need = EXP_NEEDED[i];
|
|
50
|
+
}
|
|
51
|
+
if (0 > exp - need) {
|
|
52
|
+
return Math.round((level + exp / need) * 100) / 100;
|
|
53
|
+
}
|
|
54
|
+
level += 1;
|
|
55
|
+
exp -= need;
|
|
56
|
+
}
|
|
57
|
+
return 1000;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function ranks(data: Record<string, any>) {
|
|
61
|
+
return data.ranks && data.ranks.length
|
|
62
|
+
? data.ranks.map((r: any) => new GuildRank(r)).sort((a: any, b: any) => a.priority - b.priority)
|
|
63
|
+
: [];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function expLimit(exp: number) {
|
|
67
|
+
return 2e5 < exp ? (7e5 < exp ? 2.5e5 + Math.round(exp * 0.03) : 2e5 + Math.round((exp - 2e5) / 10)) : exp;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function calculateExpHistory(data: Record<string, any>): ExpHistory[] {
|
|
71
|
+
const finalObj: any = {};
|
|
72
|
+
for (const day of Object.keys(data.members[0].expHistory)) {
|
|
73
|
+
let gexp = 0;
|
|
74
|
+
for (const member of data.members) {
|
|
75
|
+
gexp += member.expHistory[day] || 0;
|
|
76
|
+
}
|
|
77
|
+
finalObj[day] = expLimit(gexp);
|
|
78
|
+
}
|
|
79
|
+
return parseHistory(finalObj);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function members(data: Record<string, any>): GuildMember[] {
|
|
83
|
+
return data.members.length ? data.members.map((m: Record<string, any>) => new GuildMember(m)) : [];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function totalWeeklyGexp(data: Record<string, any>) {
|
|
87
|
+
return members(data)
|
|
88
|
+
.map((m) => m.weeklyExperience)
|
|
89
|
+
.reduce((acc: number, cur: number) => acc + cur);
|
|
90
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { LevelProgress, PlayerRank, PlayerSocialMedia } from '../structures/Player';
|
|
2
|
+
|
|
3
|
+
export function getRank(player: Record<string, any>): PlayerRank {
|
|
4
|
+
if (player.prefix) {
|
|
5
|
+
switch (player.prefix.replace(/§[0-9|a-z]|\[|\]/g, '')) {
|
|
6
|
+
case 'EVENTS':
|
|
7
|
+
return 'Events';
|
|
8
|
+
case 'MOJANG':
|
|
9
|
+
return 'Mojang';
|
|
10
|
+
case 'PIG+++':
|
|
11
|
+
return 'PIG+++';
|
|
12
|
+
case 'INNIT':
|
|
13
|
+
return 'Innit';
|
|
14
|
+
default:
|
|
15
|
+
return 'Default';
|
|
16
|
+
}
|
|
17
|
+
} else if (player.rank) {
|
|
18
|
+
switch (player.rank) {
|
|
19
|
+
case 'ADMIN':
|
|
20
|
+
return 'Admin';
|
|
21
|
+
case 'GAME_MASTER':
|
|
22
|
+
return 'Game Master';
|
|
23
|
+
default:
|
|
24
|
+
return 'Default';
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
switch (player.newPackageRank) {
|
|
28
|
+
case 'MVP_PLUS':
|
|
29
|
+
return 'SUPERSTAR' !== player.monthlyPackageRank ? 'MVP+' : 'MVP++';
|
|
30
|
+
case 'MVP':
|
|
31
|
+
return 'MVP';
|
|
32
|
+
case 'VIP_PLUS':
|
|
33
|
+
return 'VIP+';
|
|
34
|
+
case 'VIP':
|
|
35
|
+
return 'VIP';
|
|
36
|
+
default:
|
|
37
|
+
return 'Default';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function getPlayerLevel(exp: number): number {
|
|
43
|
+
const base = 10000;
|
|
44
|
+
const growth = 2500;
|
|
45
|
+
const reversePqPrefix = -(base - 0.5 * growth) / growth;
|
|
46
|
+
const reverseConst = reversePqPrefix * reversePqPrefix;
|
|
47
|
+
const growthdivides2 = 2 / growth;
|
|
48
|
+
const num = 1 + reversePqPrefix + Math.sqrt(reverseConst + growthdivides2 * exp);
|
|
49
|
+
const level = Math.round(num * 100) / 100;
|
|
50
|
+
return level;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function xpToNextLevel(xp: number): number {
|
|
54
|
+
const lvl = getPlayerLevel(xp);
|
|
55
|
+
const xpToNext = 2500 * Math.floor(lvl) + 5000;
|
|
56
|
+
if (10000 > xp) return 10000;
|
|
57
|
+
return xpToNext;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function levelToXP(xp: number): number {
|
|
61
|
+
let level = Number(Math.floor(getPlayerLevel(xp)));
|
|
62
|
+
level = level - 1;
|
|
63
|
+
return 1250 * level ** 2 + 8750 * level;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function playerLevelProgress(xp: number): LevelProgress {
|
|
67
|
+
const xpFromLevel = levelToXP(xp);
|
|
68
|
+
let currentXP = xp - xpFromLevel;
|
|
69
|
+
const xpToNext = xpToNextLevel(xp);
|
|
70
|
+
const remainingXP = xpToNext - currentXP + 2500;
|
|
71
|
+
currentXP = currentXP - 2500;
|
|
72
|
+
const percent = Math.round((currentXP / xpToNext) * 100 * 100) / 100;
|
|
73
|
+
const percentRemaining = Math.round((100 - percent) * 100) / 100;
|
|
74
|
+
return { xpToNext, remainingXP, currentXP, percent, percentRemaining };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function getSocialMedia(data: Record<string, any>): PlayerSocialMedia[] {
|
|
78
|
+
const links = data.links;
|
|
79
|
+
const formattedNames = ['Twitter', 'YouTube', 'Instagram', 'Twitch', 'Hypixel', 'Discord'];
|
|
80
|
+
const upperNames = ['TWITTER', 'YOUTUBE', 'INSTAGRAM', 'TWITCH', 'HYPIXEL', 'DISCORD'];
|
|
81
|
+
return Object.keys(links)
|
|
82
|
+
.map((x) => upperNames.indexOf(x))
|
|
83
|
+
.filter((x) => -1 !== x)
|
|
84
|
+
.map((x) => ({ name: formattedNames[x], link: links[upperNames[x]], id: upperNames[x] }));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export function parseClaimedRewards(data: Record<string, any>): number[] {
|
|
88
|
+
return Object.keys(data)
|
|
89
|
+
.map((x) => x.match(/levelingReward_(\d+)/))
|
|
90
|
+
.filter((x) => x)
|
|
91
|
+
.map((x) => (x ? parseInt(x[1], 10) : null))
|
|
92
|
+
.filter((x) => null !== x);
|
|
93
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { expect, test } from 'vitest';
|
|
2
|
+
import { getTrophyFishRank } from './SkyblockUtils';
|
|
3
|
+
|
|
4
|
+
test('getTrophyFishRank', () => {
|
|
5
|
+
expect(getTrophyFishRank(1)).toBe('Bronze');
|
|
6
|
+
expect(getTrophyFishRank(2)).toBe('Silver');
|
|
7
|
+
expect(getTrophyFishRank(3)).toBe('Gold');
|
|
8
|
+
expect(getTrophyFishRank(4)).toBe('Diamond');
|
|
9
|
+
});
|
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
import Constants from './Constants';
|
|
2
|
+
import { parse, simplify } from 'prismarine-nbt';
|
|
3
|
+
|
|
4
|
+
export type SkyblockRarity =
|
|
5
|
+
| 'COMMON'
|
|
6
|
+
| 'UNCOMMON'
|
|
7
|
+
| 'RARE'
|
|
8
|
+
| 'EPIC'
|
|
9
|
+
| 'LEGENDARY'
|
|
10
|
+
| 'MYTHIC'
|
|
11
|
+
| 'DIVINE'
|
|
12
|
+
| 'SPECIAL'
|
|
13
|
+
| 'VERY_SPECIAL';
|
|
14
|
+
|
|
15
|
+
export interface SkyblockMemberJacobDataMedals {
|
|
16
|
+
gold: number;
|
|
17
|
+
silver: number;
|
|
18
|
+
bronze: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SkyblockMemberJacobDataPerks {
|
|
22
|
+
doubleDrops: number;
|
|
23
|
+
farmingLevelCap: number;
|
|
24
|
+
personalBests: boolean;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface SkyblockMemberJacobData {
|
|
28
|
+
medals: SkyblockMemberJacobDataMedals;
|
|
29
|
+
perks: SkyblockMemberJacobDataPerks;
|
|
30
|
+
contests: Record<string, any>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface SkyblockMemberChocolateFactoryDataEmployees {
|
|
34
|
+
bro: number;
|
|
35
|
+
cousin: number;
|
|
36
|
+
sis: number;
|
|
37
|
+
father: number;
|
|
38
|
+
grandma: number;
|
|
39
|
+
dog: number;
|
|
40
|
+
uncle: number;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface SkyblockMemberChocolateFactoryDataChocolate {
|
|
44
|
+
current: number;
|
|
45
|
+
total: number;
|
|
46
|
+
sincePrestige: number;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface SkyblockMemberChocolateFactoryDataTimeTower {
|
|
50
|
+
charges: number;
|
|
51
|
+
level: number;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface SkyblockMemberChocolateFactoryDataUpgrades {
|
|
55
|
+
click: number;
|
|
56
|
+
multiplier: number;
|
|
57
|
+
rabbitRarity: number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface SkyblockMemberChocolateFactoryDataGoldenClick {
|
|
61
|
+
amount: number;
|
|
62
|
+
year: number;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface SkyblockMemberChocolateFactoryData {
|
|
66
|
+
employees: SkyblockMemberChocolateFactoryDataEmployees;
|
|
67
|
+
chocolate: SkyblockMemberChocolateFactoryDataChocolate;
|
|
68
|
+
timeTower: SkyblockMemberChocolateFactoryDataTimeTower;
|
|
69
|
+
upgrades: SkyblockMemberChocolateFactoryDataUpgrades;
|
|
70
|
+
goldenClick: SkyblockMemberChocolateFactoryDataGoldenClick;
|
|
71
|
+
barnCapacity: number;
|
|
72
|
+
prestige: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface SkyblockMemberSlayerLevel {
|
|
76
|
+
xp: number;
|
|
77
|
+
tier1: number;
|
|
78
|
+
tier2: number;
|
|
79
|
+
tier3: number;
|
|
80
|
+
tier4: number;
|
|
81
|
+
tier5: number;
|
|
82
|
+
level: number;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface SkyblockMemberSlayer {
|
|
86
|
+
zombie: SkyblockMemberSlayerLevel;
|
|
87
|
+
spider: SkyblockMemberSlayerLevel;
|
|
88
|
+
wolf: SkyblockMemberSlayerLevel;
|
|
89
|
+
enderman: SkyblockMemberSlayerLevel;
|
|
90
|
+
blaze: SkyblockMemberSlayerLevel;
|
|
91
|
+
vampire: SkyblockMemberSlayerLevel;
|
|
92
|
+
}
|
|
93
|
+
export type SkyblockMemberTrophyFishRank = 'Bronze' | 'Silver' | 'Gold' | 'Diamond';
|
|
94
|
+
export interface SkyblockSkillLevel {
|
|
95
|
+
xp: number;
|
|
96
|
+
level: number;
|
|
97
|
+
maxLevel: number;
|
|
98
|
+
xpCurrent: number;
|
|
99
|
+
xpForNext: number;
|
|
100
|
+
progress: number;
|
|
101
|
+
cosmetic: boolean;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export interface SkyblockMemberStats {
|
|
105
|
+
kills: Record<string, any>;
|
|
106
|
+
deaths: Record<string, any>;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export interface SkyblockMemberSkills {
|
|
110
|
+
combat: SkyblockSkillLevel;
|
|
111
|
+
farming: SkyblockSkillLevel;
|
|
112
|
+
fishing: SkyblockSkillLevel;
|
|
113
|
+
mining: SkyblockSkillLevel;
|
|
114
|
+
foraging: SkyblockSkillLevel;
|
|
115
|
+
enchanting: SkyblockSkillLevel;
|
|
116
|
+
alchemy: SkyblockSkillLevel;
|
|
117
|
+
carpentry: SkyblockSkillLevel;
|
|
118
|
+
runecrafting: SkyblockSkillLevel;
|
|
119
|
+
taming: SkyblockSkillLevel;
|
|
120
|
+
social: SkyblockSkillLevel;
|
|
121
|
+
average: number;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export interface SkyblockMemberDungeonsTypes {
|
|
125
|
+
catacombs: SkyblockSkillLevel;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export interface SkyblockMemberDungeonsClasses {
|
|
129
|
+
healer: SkyblockSkillLevel;
|
|
130
|
+
mage: SkyblockSkillLevel;
|
|
131
|
+
berserk: SkyblockSkillLevel;
|
|
132
|
+
archer: SkyblockSkillLevel;
|
|
133
|
+
tank: SkyblockSkillLevel;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface SkyblockMemberDungeons {
|
|
137
|
+
types: SkyblockMemberDungeonsTypes;
|
|
138
|
+
classes: SkyblockMemberDungeonsClasses;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export async function decode(base64: any, isBuffer: boolean = false): Promise<any[]> {
|
|
142
|
+
// Credit: https://github.com/SkyCryptWebsite/SkyCryptv2/blob/3b5b3ae4fe77c60eff90691797f09024baf68872/src/lib/server/stats/items/processing.ts#L215-L218
|
|
143
|
+
const buffer = isBuffer ? base64 : Buffer.from(base64, 'base64');
|
|
144
|
+
const parseData = await parse(buffer);
|
|
145
|
+
const data = simplify(parseData.parsed);
|
|
146
|
+
const newdata = [];
|
|
147
|
+
for (let i = 0; i < data.i.length; i++) {
|
|
148
|
+
newdata.push(data.i[i]);
|
|
149
|
+
}
|
|
150
|
+
return newdata;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export function getLevelByXp(xp: number, type: string): SkyblockSkillLevel {
|
|
154
|
+
let xpTable: Record<number, number>;
|
|
155
|
+
switch (type) {
|
|
156
|
+
case 'runecrafting':
|
|
157
|
+
xpTable = Constants.runecraftingXp;
|
|
158
|
+
break;
|
|
159
|
+
case 'dungeons':
|
|
160
|
+
xpTable = Constants.dungeonXp;
|
|
161
|
+
break;
|
|
162
|
+
case 'hotm':
|
|
163
|
+
xpTable = Constants.hotmXp;
|
|
164
|
+
break;
|
|
165
|
+
case 'social':
|
|
166
|
+
xpTable = Constants.socialXp;
|
|
167
|
+
break;
|
|
168
|
+
case 'garden':
|
|
169
|
+
xpTable = Constants.garden;
|
|
170
|
+
break;
|
|
171
|
+
case 'wheat':
|
|
172
|
+
xpTable = Constants.wheat;
|
|
173
|
+
break;
|
|
174
|
+
case 'carrot':
|
|
175
|
+
xpTable = Constants.carrot;
|
|
176
|
+
break;
|
|
177
|
+
case 'potato':
|
|
178
|
+
xpTable = Constants.potato;
|
|
179
|
+
break;
|
|
180
|
+
case 'melon':
|
|
181
|
+
xpTable = Constants.melon;
|
|
182
|
+
break;
|
|
183
|
+
case 'pumpkin':
|
|
184
|
+
xpTable = Constants.pumpkin;
|
|
185
|
+
break;
|
|
186
|
+
case 'sugarCane':
|
|
187
|
+
xpTable = Constants.sugarCane;
|
|
188
|
+
break;
|
|
189
|
+
case 'cocoaBeans':
|
|
190
|
+
xpTable = Constants.cocoaBeans;
|
|
191
|
+
break;
|
|
192
|
+
case 'cactus':
|
|
193
|
+
xpTable = Constants.cactus;
|
|
194
|
+
break;
|
|
195
|
+
case 'mushroom':
|
|
196
|
+
xpTable = Constants.mushroom;
|
|
197
|
+
break;
|
|
198
|
+
case 'netherWart':
|
|
199
|
+
xpTable = Constants.netherWart;
|
|
200
|
+
break;
|
|
201
|
+
default:
|
|
202
|
+
xpTable = Constants.levelingXp;
|
|
203
|
+
}
|
|
204
|
+
const maxLevel = Math.max(...Object.keys(xpTable).map(Number));
|
|
205
|
+
if (isNaN(xp)) {
|
|
206
|
+
return {
|
|
207
|
+
xp: 0,
|
|
208
|
+
level: 0,
|
|
209
|
+
maxLevel,
|
|
210
|
+
xpCurrent: 0,
|
|
211
|
+
xpForNext: xpTable[1],
|
|
212
|
+
progress: 0,
|
|
213
|
+
cosmetic: Boolean('runecrafting' === type || 'social' === type)
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
let xpTotal = 0;
|
|
217
|
+
let level = 0;
|
|
218
|
+
let xpForNext = 0;
|
|
219
|
+
for (let x = 1; x <= maxLevel; x++) {
|
|
220
|
+
if (!xpTable[x]) continue;
|
|
221
|
+
xpTotal += xpTable[x];
|
|
222
|
+
if (xpTotal > xp) {
|
|
223
|
+
xpTotal -= xpTable[x];
|
|
224
|
+
break;
|
|
225
|
+
} else {
|
|
226
|
+
level = x;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
const xpCurrent = Math.floor(xp - xpTotal);
|
|
230
|
+
if (level < maxLevel) xpForNext = Math.ceil(xpTable[level + 1]);
|
|
231
|
+
const progress = Math.floor(Math.max(0, Math.min(xpCurrent / xpForNext, 1)) * 100 * 10) / 10;
|
|
232
|
+
return {
|
|
233
|
+
xp: xp,
|
|
234
|
+
level: level,
|
|
235
|
+
maxLevel: maxLevel,
|
|
236
|
+
xpCurrent: xpCurrent,
|
|
237
|
+
xpForNext: xpForNext,
|
|
238
|
+
progress: progress,
|
|
239
|
+
cosmetic: Boolean('runecrafting' === type || 'social' === type)
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export function getSlayerLevel(slayer: Record<string, any>): SkyblockMemberSlayerLevel {
|
|
244
|
+
if (!slayer) {
|
|
245
|
+
return { xp: 0, tier1: 0, tier2: 0, tier3: 0, tier4: 0, tier5: 0, level: 0 };
|
|
246
|
+
}
|
|
247
|
+
// eslint-disable-next-line camelcase
|
|
248
|
+
const { claimed_levels } = slayer;
|
|
249
|
+
let level = 0;
|
|
250
|
+
// eslint-disable-next-line camelcase
|
|
251
|
+
for (const levelName in claimed_levels) {
|
|
252
|
+
if (Object.prototype.hasOwnProperty.call(claimed_levels, levelName)) {
|
|
253
|
+
const newLevel = parseInt(levelName.replace('_special', '').split('_').pop() ?? '', 10);
|
|
254
|
+
if (newLevel > level) {
|
|
255
|
+
level = newLevel;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return {
|
|
260
|
+
xp: slayer.xp || 0,
|
|
261
|
+
tier1: slayer.boss_kills_tier_0 || 0,
|
|
262
|
+
tier2: slayer.boss_kills_tier_1 || 0,
|
|
263
|
+
tier3: slayer.boss_kills_tier_2 || 0,
|
|
264
|
+
tier4: slayer.boss_kills_tier_3 || 0,
|
|
265
|
+
tier5: slayer.boss_kills_tier_4 || 0,
|
|
266
|
+
level
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
export function getMemberStats(obj: Record<string, any>): SkyblockMemberStats {
|
|
271
|
+
return Object.keys(obj).reduce(
|
|
272
|
+
(result, currentKey) => {
|
|
273
|
+
const key = currentKey.replace(/_[a-z]/gi, (match) => match[1].toUpperCase());
|
|
274
|
+
if (currentKey.startsWith('kills') || currentKey.startsWith('deaths')) {
|
|
275
|
+
const category = currentKey.startsWith('kills') ? 'kills' : 'deaths';
|
|
276
|
+
const subKey = key === category ? 'total' : key;
|
|
277
|
+
result[category as keyof typeof result][
|
|
278
|
+
subKey.replace(category, (sub, _, key) => {
|
|
279
|
+
return key[sub.length].toLowerCase() + key.slice(sub.length + 1);
|
|
280
|
+
})
|
|
281
|
+
] = obj[currentKey];
|
|
282
|
+
} else {
|
|
283
|
+
result[key as keyof typeof result] = obj[currentKey];
|
|
284
|
+
}
|
|
285
|
+
return result;
|
|
286
|
+
},
|
|
287
|
+
{ kills: {}, deaths: {} } as { kills: Record<string, any>; deaths: Record<string, any> }
|
|
288
|
+
);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
export function getTrophyFishRank(level: number): SkyblockMemberTrophyFishRank {
|
|
292
|
+
if (1 === level) {
|
|
293
|
+
return 'Bronze';
|
|
294
|
+
} else if (2 === level) {
|
|
295
|
+
return 'Silver';
|
|
296
|
+
} else if (3 === level) {
|
|
297
|
+
return 'Gold';
|
|
298
|
+
} else if (4 === level) {
|
|
299
|
+
return 'Diamond';
|
|
300
|
+
}
|
|
301
|
+
return 'Bronze';
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export function getSkills(data: Record<string, any>): SkyblockMemberSkills {
|
|
305
|
+
const skillsObject: SkyblockMemberSkills = {
|
|
306
|
+
combat: getLevelByXp(data?.player_data?.experience?.SKILL_COMBAT ?? 0, 'combat'),
|
|
307
|
+
farming: getLevelByXp(data?.player_data?.experience?.SKILL_FARMING ?? 0, 'farming'),
|
|
308
|
+
fishing: getLevelByXp(data?.player_data?.experience?.SKILL_FISHING ?? 0, 'fishing'),
|
|
309
|
+
mining: getLevelByXp(data?.player_data?.experience?.SKILL_MINING ?? 0, 'mining'),
|
|
310
|
+
foraging: getLevelByXp(data?.player_data?.experience?.SKILL_FORAGING ?? 0, 'foraging'),
|
|
311
|
+
enchanting: getLevelByXp(data?.player_data?.experience?.SKILL_ENCHANTING ?? 0, 'enchanting'),
|
|
312
|
+
alchemy: getLevelByXp(data?.player_data?.experience?.SKILL_ALCHEMY ?? 0, 'alchemy'),
|
|
313
|
+
carpentry: getLevelByXp(data?.player_data?.experience?.SKILL_CARPENTRY ?? 0, 'carpentry'),
|
|
314
|
+
runecrafting: getLevelByXp(data?.player_data?.experience?.SKILL_RUNECRAFTING ?? 0, 'runecrafting'),
|
|
315
|
+
taming: getLevelByXp(data?.player_data?.experience?.SKILL_TAMING ?? 0, 'taming'),
|
|
316
|
+
social: getLevelByXp(data?.player_data?.experience?.SKILL_SOCIAL ?? 0, 'social'),
|
|
317
|
+
average: 0
|
|
318
|
+
};
|
|
319
|
+
const levels = Object.values(skillsObject)
|
|
320
|
+
.filter((skill) => true !== skill.cosmetic)
|
|
321
|
+
.map((skill) => skill.level);
|
|
322
|
+
skillsObject.average = levels.reduce((a, b) => a + b, 0) / levels.length;
|
|
323
|
+
return skillsObject;
|
|
324
|
+
}
|
|
325
|
+
function formatBestiaryMobs(userProfile: Record<string, any>, mobs: any) {
|
|
326
|
+
const output = [];
|
|
327
|
+
for (const mob of mobs) {
|
|
328
|
+
const mobBracket = (Constants.bestiaryBrackets as { [key: number]: number[] })[mob.bracket];
|
|
329
|
+
const totalKills = mob.mobs.reduce((acc: any, cur: any) => {
|
|
330
|
+
return acc + (userProfile.bestiary.kills[cur] ?? 0);
|
|
331
|
+
}, 0);
|
|
332
|
+
const maxKills = mob.cap;
|
|
333
|
+
const nextTierKills = mobBracket.find((tier: any) => totalKills < tier && tier <= maxKills);
|
|
334
|
+
const tier = nextTierKills ? mobBracket.indexOf(nextTierKills) : mobBracket.indexOf(maxKills) + 1;
|
|
335
|
+
output.push({ tier: tier });
|
|
336
|
+
}
|
|
337
|
+
return output;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export function getBestiaryLevel(userProfile: Record<string, any>): number {
|
|
341
|
+
try {
|
|
342
|
+
if (userProfile.bestiary?.kills === undefined) {
|
|
343
|
+
return 0;
|
|
344
|
+
}
|
|
345
|
+
const output: { [key: string]: any } = {};
|
|
346
|
+
let tiersUnlocked = 0;
|
|
347
|
+
for (const [category, data] of Object.entries(Constants.bestiary)) {
|
|
348
|
+
const { mobs } = data as { mobs: any };
|
|
349
|
+
output[category] = {};
|
|
350
|
+
if ('fishing' === category) {
|
|
351
|
+
for (const [key, value] of Object.entries(data)) {
|
|
352
|
+
output[category][key] = { mobs: formatBestiaryMobs(userProfile, value.mobs) };
|
|
353
|
+
tiersUnlocked += output[category][key].mobs.reduce((acc: any, cur: any) => acc + cur.tier, 0);
|
|
354
|
+
}
|
|
355
|
+
} else {
|
|
356
|
+
output[category].mobs = formatBestiaryMobs(userProfile, mobs);
|
|
357
|
+
tiersUnlocked += output[category].mobs.reduce((acc: any, cur: any) => acc + cur.tier, 0);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return tiersUnlocked / 10;
|
|
361
|
+
} catch {
|
|
362
|
+
return 0;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
export function getSlayer(data: Record<string, any>): SkyblockMemberSlayer | null {
|
|
367
|
+
if (!data?.slayer?.slayer_bosses) return null;
|
|
368
|
+
return {
|
|
369
|
+
zombie: getSlayerLevel(data?.slayer?.slayer_bosses?.zombie),
|
|
370
|
+
spider: getSlayerLevel(data?.slayer?.slayer_bosses?.spider),
|
|
371
|
+
wolf: getSlayerLevel(data?.slayer?.slayer_bosses?.wolf),
|
|
372
|
+
enderman: getSlayerLevel(data?.slayer?.slayer_bosses?.enderman),
|
|
373
|
+
blaze: getSlayerLevel(data?.slayer?.slayer_bosses?.blaze),
|
|
374
|
+
vampire: getSlayerLevel(data?.slayer?.slayer_bosses?.vampire)
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
export function getDungeons(data: Record<string, any>): SkyblockMemberDungeons | null {
|
|
379
|
+
return {
|
|
380
|
+
types: { catacombs: getLevelByXp(data.dungeons?.dungeon_types?.catacombs ?? 0, 'dungeons') },
|
|
381
|
+
classes: {
|
|
382
|
+
healer: getLevelByXp(data.dungeons?.player_classes?.healer ?? 0, 'dungeons'),
|
|
383
|
+
mage: getLevelByXp(data.dungeons?.player_classes?.mage ?? 0, 'dungeons'),
|
|
384
|
+
berserk: getLevelByXp(data.dungeons?.player_classes?.berserk ?? 0, 'dungeons'),
|
|
385
|
+
archer: getLevelByXp(data.dungeons?.player_classes?.archer ?? 0, 'dungeons'),
|
|
386
|
+
tank: getLevelByXp(data.dungeons?.player_classes?.tank ?? 0, 'dungeons')
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
export function getJacobData(data: Record<string, any>): SkyblockMemberJacobData {
|
|
392
|
+
if (!data.jacobs_contest) {
|
|
393
|
+
return {
|
|
394
|
+
medals: { bronze: 0, silver: 0, gold: 0 },
|
|
395
|
+
perks: { doubleDrops: 0, farmingLevelCap: 0, personalBests: false },
|
|
396
|
+
contests: {}
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
return {
|
|
400
|
+
medals: data.jacobs_contest.medals_inv
|
|
401
|
+
? {
|
|
402
|
+
bronze: data.jacobs_contest.medals_inv.bronze || 0,
|
|
403
|
+
silver: data.jacobs_contest.medals_inv.silver || 0,
|
|
404
|
+
gold: data.jacobs_contest.medals_inv.gold || 0
|
|
405
|
+
}
|
|
406
|
+
: { bronze: 0, silver: 0, gold: 0 },
|
|
407
|
+
perks: data.jacobs_contest.perks
|
|
408
|
+
? {
|
|
409
|
+
doubleDrops: data.jacobs_contest.perks.double_drops || 0,
|
|
410
|
+
farmingLevelCap: data.jacobs_contest.perks.farming_level_cap || 0,
|
|
411
|
+
personalBests: data.jacobs_contest.perks.personal_bests || false
|
|
412
|
+
}
|
|
413
|
+
: { doubleDrops: 0, farmingLevelCap: 0, personalBests: false },
|
|
414
|
+
contests: data.jacobs_contest.contests || {}
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
export function getChocolateFactory(data: Record<string, any>): SkyblockMemberChocolateFactoryData {
|
|
419
|
+
if (!data?.events?.easter) {
|
|
420
|
+
return {
|
|
421
|
+
employees: { bro: 0, cousin: 0, sis: 0, father: 0, grandma: 0, dog: 0, uncle: 0 },
|
|
422
|
+
chocolate: { current: 0, total: 0, sincePrestige: 0 },
|
|
423
|
+
timeTower: { charges: 0, level: 0 },
|
|
424
|
+
upgrades: { click: 0, multiplier: 0, rabbitRarity: 0 },
|
|
425
|
+
goldenClick: { amount: 0, year: 0 },
|
|
426
|
+
barnCapacity: 0,
|
|
427
|
+
prestige: 0
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
return {
|
|
431
|
+
employees: {
|
|
432
|
+
bro: data?.events?.easter?.employees?.rabbit_bro || 0,
|
|
433
|
+
cousin: data?.events?.easter?.employees?.rabbit_cousin || 0,
|
|
434
|
+
sis: data?.events?.easter?.employees?.rabbit_sis || 0,
|
|
435
|
+
father: data?.events?.easter?.employees?.rabbit_father || 0,
|
|
436
|
+
grandma: data?.events?.easter?.employees?.rabbit_grandma || 0,
|
|
437
|
+
dog: data?.events?.easter?.employees?.rabbit_dog || 0,
|
|
438
|
+
uncle: data?.events?.easter?.employees?.rabbit_uncle || 0
|
|
439
|
+
},
|
|
440
|
+
chocolate: {
|
|
441
|
+
current: data?.events?.easter?.chocolate || 0,
|
|
442
|
+
total: data?.events?.easter?.total_chocolate || 0,
|
|
443
|
+
sincePrestige: data?.events?.easter?.chocolate_since_prestige || 0
|
|
444
|
+
},
|
|
445
|
+
timeTower: {
|
|
446
|
+
charges: data?.events?.easter?.time_tower?.charges || 0,
|
|
447
|
+
level: data?.events?.easter?.time_tower?.level || 0
|
|
448
|
+
},
|
|
449
|
+
upgrades: {
|
|
450
|
+
click: data?.events?.easter?.click_upgrades || 0,
|
|
451
|
+
multiplier: data?.events?.easter?.chocolate_multiplier_upgrades || 0,
|
|
452
|
+
rabbitRarity: data?.events?.easter?.rabbit_rarity_upgrades || 0
|
|
453
|
+
},
|
|
454
|
+
goldenClick: {
|
|
455
|
+
amount: data?.events?.easter?.golden_click_amount || 0,
|
|
456
|
+
year: data?.events?.easter?.golden_click_year || 0
|
|
457
|
+
},
|
|
458
|
+
barnCapacity: data?.events?.easter?.rabbit_barn_capacity_level || 0,
|
|
459
|
+
prestige: data?.events?.easter?.chocolate_level || 0
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
export function getPetLevel(petExp: number, offsetRarity: number, maxLevel: number) {
|
|
464
|
+
const rarityOffset = Constants.petRarityOffset[offsetRarity as unknown as keyof typeof Constants.petRarityOffset];
|
|
465
|
+
const levels = Constants.petLevels.slice(rarityOffset, rarityOffset + maxLevel - 1);
|
|
466
|
+
const xpMaxLevel = levels.reduce((a, b) => a + b, 0);
|
|
467
|
+
let xpTotal = 0;
|
|
468
|
+
let level = 1;
|
|
469
|
+
let xpForNext;
|
|
470
|
+
for (let i = 0; i < maxLevel; i++) {
|
|
471
|
+
xpTotal += levels[i];
|
|
472
|
+
if (xpTotal > petExp) {
|
|
473
|
+
xpTotal -= levels[i];
|
|
474
|
+
break;
|
|
475
|
+
} else {
|
|
476
|
+
level++;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
let xpCurrent = Math.floor(petExp - xpTotal);
|
|
480
|
+
let progress;
|
|
481
|
+
if (level < maxLevel) {
|
|
482
|
+
xpForNext = Math.ceil(levels[level - 1]);
|
|
483
|
+
progress = Math.max(0, Math.min(xpCurrent / xpForNext, 1));
|
|
484
|
+
} else {
|
|
485
|
+
level = maxLevel;
|
|
486
|
+
xpCurrent = petExp - levels[maxLevel - 1];
|
|
487
|
+
xpForNext = 0;
|
|
488
|
+
progress = 1;
|
|
489
|
+
}
|
|
490
|
+
return { level, xpCurrent, xpForNext, progress, xpMaxLevel };
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
export function parseRarity(str: string): SkyblockRarity {
|
|
494
|
+
const rarityArray = [
|
|
495
|
+
'COMMON',
|
|
496
|
+
'UNCOMMON',
|
|
497
|
+
'RARE',
|
|
498
|
+
'EPIC',
|
|
499
|
+
'LEGENDARY',
|
|
500
|
+
'MYTHIC',
|
|
501
|
+
'DIVINE',
|
|
502
|
+
'SPECIAL',
|
|
503
|
+
'VERY SPECIAL'
|
|
504
|
+
];
|
|
505
|
+
for (const rarity of rarityArray) {
|
|
506
|
+
if (str.includes(rarity)) return rarity as SkyblockRarity;
|
|
507
|
+
}
|
|
508
|
+
return 'COMMON';
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
export function parseGearScore(lore: any): number {
|
|
512
|
+
for (const line of lore) {
|
|
513
|
+
if (line.match(/Gear Score: §[0-9a-f](\d+)/)) return Number(line.match(/Gear Score: §d(\d+)/)[1]);
|
|
514
|
+
}
|
|
515
|
+
return 0;
|
|
516
|
+
}
|