@zikeji/hypixel
Version:
With IntelliSense support & test coverage, this is an unopinionated async/await API wrapper for Hypixel's Public API. It is developed in TypeScript complete with documentation, typed interfaces for all API responses, built-in rate-limit handling, flexible
58 lines (55 loc) • 1.61 kB
text/typescript
import { Method } from "../../util/Method";
import { getResultObject, ResultObject } from "../../util/ResultObject";
import type {
HousingActiveResponse,
HousingHouseResponse,
} from "../../types/AugmentedTypes";
import { Paths } from "../../types/api";
import { HousingHouses } from "./houses";
import { FlatResultArray, getFlatResultArray } from "../../util/ResultArray";
/**
* @example
* ```typescript
* const active = await client.housing.active();
* ```
* @category Client
*/
export class Housing extends Method {
/**
* The currently active public houses.
* @example
* ```typescript
* const activeHousing = await client.housing.active();
* ```
* @category API
*/
public async active(): Promise<FlatResultArray<HousingActiveResponse>> {
return getFlatResultArray(await this.client.call<never>("housing/active"));
}
/**
* Returns information about a specific house.
* @example
* ```typescript
* const houseData = await client.housing.house('20934ef9488c465180a78f861586b4cf');
* ```
* @category API
*/
public async house(
house: Paths.V2HousingHouse.Get.Parameters.House
): Promise<ResultObject<HousingHouseResponse, [], true>> {
return getResultObject(
await this.client.call<never>("housing/house", {
house,
})
);
}
/**
* Returns public houses for a specific player.
* @example
* ```typescript
* const houses = await client.housing.houses.player('20934ef9488c465180a78f861586b4cf');
* ```
* @category API
*/
public houses: HousingHouses = new HousingHouses(this.client);
}