From a28ba6ed17ba734c63d2366d252655c52f269caa Mon Sep 17 00:00:00 2001 From: Kath <55346310+Kathund@users.noreply.github.com> Date: Tue, 20 Feb 2024 16:17:20 +0800 Subject: [PATCH] Bedwars Practice Types --- src/structures/MiniGames/BedWars.js | 68 ++-- typings/index.d.ts | 526 ++++++++++++++++------------ 2 files changed, 339 insertions(+), 255 deletions(-) diff --git a/src/structures/MiniGames/BedWars.js b/src/structures/MiniGames/BedWars.js index fb520520..da874f67 100644 --- a/src/structures/MiniGames/BedWars.js +++ b/src/structures/MiniGames/BedWars.js @@ -304,86 +304,86 @@ function getLevelForExp(exp) { // eslint-disable-next-line require-jsdoc function generateStatsForPractice(data) { return { - selected: data.practice.selected || 'NONE', + selected: data?.practice?.selected || 'NONE', bridging: { - blocksPlaced: data.practice.bridging.blocks_placed || 0, + blocksPlaced: data?.practice?.bridging?.blocks_placed ?? 0, attempts: { - failed: data.practice.bridging.failed_attempts || 0, - successful: data.practice.bridging.successful_attempts || 0, - total: data.practice.bridging.failed_attempts + data.practice.bridging.successful_attempts + failed: data?.practice?.bridging?.failed_attempts ?? 0, + successful: data?.practice?.bridging?.successful_attempts ?? 0, + total: data?.practice?.bridging?.failed_attempts + data?.practice?.bridging?.successful_attempts }, records: { '30Blocks': { elevation: { none: { - straight: data.practice.records['bridging_distance_30:elevation_NONE:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_30:elevation_NONE:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_30:elevation_NONE:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_30:elevation_NONE:angle_DIAGONAL:'] ?? 0 }, slight: { - straight: data.practice.records['bridging_distance_30:elevation_SLIGHT:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_30:elevation_SLIGHT:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_30:elevation_SLIGHT:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_30:elevation_SLIGHT:angle_DIAGONAL:'] ?? 0 }, staircase: { - straight: data.practice.records['bridging_distance_30:elevation_STAIRCASE:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_30:elevation_STAIRCASE:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_30:elevation_STAIRCASE:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_30:elevation_STAIRCASE:angle_DIAGONAL:'] ?? 0 } } }, '50Blocks': { elevation: { none: { - straight: data.practice.records['bridging_distance_50:elevation_NONE:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_50:elevation_NONE:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_50:elevation_NONE:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_50:elevation_NONE:angle_DIAGONAL:'] ?? 0 }, slight: { - straight: data.practice.records['bridging_distance_50:elevation_SLIGHT:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_50:elevation_SLIGHT:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_50:elevation_SLIGHT:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_50:elevation_SLIGHT:angle_DIAGONAL:'] ?? 0 }, staircase: { - straight: data.practice.records['bridging_distance_50:elevation_STAIRCASE:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_50:elevation_STAIRCASE:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_50:elevation_STAIRCASE:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_50:elevation_STAIRCASE:angle_DIAGONAL:'] ?? 0 } } }, '100Blocks': { elevation: { none: { - straight: data.practice.records['bridging_distance_100:elevation_NONE:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_100:elevation_NONE:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_100:elevation_NONE:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_100:elevation_NONE:angle_DIAGONAL:'] ?? 0 }, slight: { - straight: data.practice.records['bridging_distance_100:elevation_SLIGHT:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_100:elevation_SLIGHT:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_100:elevation_SLIGHT:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_100:elevation_SLIGHT:angle_DIAGONAL:'] ?? 0 }, staircase: { - straight: data.practice.records['bridging_distance_100:elevation_STAIRCASE:angle_STRAIGHT'] || 0, - diagonal: data.practice.records['bridging_distance_100:elevation_STAIRCASE:angle_DIAGONAL'] || 0 + straight: data?.practice?.records?.['bridging_distance_100:elevation_STAIRCASE:angle_STRAIGHT:'] ?? 0, + diagonal: data?.practice?.records?.['bridging_distance_100:elevation_STAIRCASE:angle_DIAGONAL:'] ?? 0 } } } } }, fireballJumping: { - blocksPlaced: data.practice.fireball_jumping.blocks_placed || 0, + blocksPlaced: data?.practice?.fireball_jumping?.blocks_placed ?? 0, attempts: { - failed: data.practice.fireball_jumping.failed_attempts || 0, - successful: data.practice.fireball_jumping.successful_attempts || 0, - total: data.practice.fireball_jumping.failed_attempts + data.practice.fireball_jumping.successful_attempts + failed: data?.practice?.fireball_jumping?.failed_attempts ?? 0, + successful: data?.practice?.fireball_jumping?.successful_attempts ?? 0, + total: data?.practice?.fireball_jumping?.failed_attempts + data?.practice?.fireball_jumping?.successful_attempts } }, pearlClutching: { attempts: { - failed: data.practice.pearl_clutching.failed_attempts || 0, - successful: data.practice.pearl_clutching.successful_attempts || 0, - total: data.practice.pearl_clutching.failed_attempts + data.practice.pearl_clutching.successful_attempts + failed: data?.practice?.pearl_clutching?.failed_attempts ?? 0, + successful: data?.practice?.pearl_clutching?.successful_attempts ?? 0, + total: data?.practice?.pearl_clutching?.failed_attempts + data?.practice?.pearl_clutching?.successful_attempts } }, mlg: { - blocksPlaced: data.practice.mlg.blocks_placed || 0, + blocksPlaced: data?.practice?.mlg?.blocks_placed ?? 0, attempts: { - failed: data.practice.mlg.failed_attempts || 0, - successful: data.practice.mlg.successful_attempts || 0, - total: data.practice.mlg.failed_attempts + data.practice.mlg.successful_attempts + failed: data?.practice?.mlg?.failed_attempts ?? 0, + successful: data?.practice?.mlg?.successful_attempts ?? 0, + total: data?.practice?.mlg?.failed_attempts + data?.practice?.mlg?.successful_attempts } } }; diff --git a/typings/index.d.ts b/typings/index.d.ts index eb27fce4..901a3c7a 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2654,266 +2654,350 @@ declare module 'hypixel-api-reborn' { KDRatio: number; WLRatio: number; finalKDRatio: number; - dream: { - ultimate: { - doubles: { - winstreak: number; - playedGames: number; + }; + dream: { + ultimate: { + doubles: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; + }; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; }; - fours: { - winstreak: number; - playedGames: number; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; + }; + fours: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; + }; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; }; - rush: { - doubles: { - winstreak: number; - playedGames: number; + }; + rush: { + doubles: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; + }; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; + }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; + }; + fours: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; }; - fours: { - winstreak: number; - playedGames: number; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; }; - armed: { - doubles: { - winstreak: number; - playedGames: number; + }; + armed: { + doubles: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; + }; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; + }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; + }; + fours: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; }; - fours: { - winstreak: number; - playedGames: number; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; }; - lucky: { - doubles: { - winstreak: number; - playedGames: number; + }; + lucky: { + doubles: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; + }; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; + }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; + }; + fours: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; }; - fours: { - winstreak: number; - playedGames: number; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; }; - voidless: { - doubles: { - winstreak: number; - playedGames: number; + }; + voidless: { + doubles: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; + }; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; + }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; + }; + fours: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; }; - fours: { - winstreak: number; - playedGames: number; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; - }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; - }; - KDRatio: number; - WLRatio: number; - finalKDRatio: number; + bedsBroken: number; }; + KDRatio: number; + WLRatio: number; + finalKDRatio: number; }; }; - castle: { - winstreak: number; - playedGames: number; + }; + castle: { + winstreak: number; + playedGames: number; + kills: number; + deaths: number; + wins: number; + losses: number; + finalKills: number; + finalDeaths: number; + beds: { + broken: number; + lost: number; + BLRatio: number; + }; + avg: { kills: number; - deaths: number; - wins: number; - losses: number; finalKills: number; - finalDeaths: number; - beds: { - broken: number; - lost: number; - BLRatio: number; + bedsBroken: number; + }; + }; + practice: { + selected: string; + bridging: { + blocksPlaced: number; + attempts: { + failed: number; + successful: number; + total: number; }; - avg: { - kills: number; - finalKills: number; - bedsBroken: number; + records: { + '30Blocks': { + elevation: { + none: { + straight: number; + diagonal: number; + }; + slight: { + straight: number; + diagonal: number; + }; + staircase: { + straight: number; + diagonal: number; + }; + }; + }; + '50Blocks': { + elevation: { + none: { + straight: number; + diagonal: number; + }; + slight: { + straight: number; + diagonal: number; + }; + staircase: { + straight: number; + diagonal: number; + }; + }; + }; + '100Blocks': { + elevation: { + none: { + straight: number; + diagonal: number; + }; + slight: { + straight: number; + diagonal: number; + }; + staircase: { + straight: number; + diagonal: number; + }; + }; + }; + }; + }; + fireballJumping: { + blocksPlaced: number; + attempts: { + failed: number; + successful: number; + total: number; + }; + }; + pearlClutching: { + attempts: { + failed: number; + successful: number; + total: number; + }; + }; + mlg: { + blocksPlaced: number; + attempts: { + failed: number; + successful: number; + total: number; }; }; };