{"version":3,"sources":["../../../../src/lib/managers/PlayerManager.ts"],"sourcesContent":["import { BaseManager } from './BaseManager';\r\nimport { Client } from '../Client';\r\nimport { Player, Util } from '../classes/index';\r\nimport { HypixelTSError } from '../errors/index';\r\nimport type { APIPlayer, GetRecentlyPlayedGamesResponse, GetStatusResponse } from '../typings';\r\nimport type { Logger } from '..//Logger';\r\n\r\n/**\r\n * Player related endpoints.\r\n * @category Managers\r\n * @group Managers\r\n */\r\nexport class PlayerManager extends BaseManager {\r\n\tpublic constructor(client: Client, logger: Logger) {\r\n\t\tsuper(client, true, logger);\r\n\t}\r\n\r\n\t/**\r\n\t * Fetch a player using their username or uuid\r\n\t * @param identifier The username/uuid of the player\r\n\t */\r\n\tpublic async fetch(identifier: string) {\r\n\t\tif (!identifier) throw new HypixelTSError('METHOD_MISSING_OPTION', 'PlayerManager', 'fetch', 'identifier');\r\n\r\n\t\tconst uuid = await this.getUUID(identifier);\r\n\t\tconst { player } = await this.makeGetRequest<{ player: APIPlayer }>(`/player?uuid=${uuid}`);\r\n\t\treturn new Player(this.client, player);\r\n\t}\r\n\r\n\t/**\r\n\t * Fetch the recently played games of a player\r\n\t * @param identifier The username/uuid of the player\r\n\t */\r\n\tpublic async getRecentlyPlayedGames(identifier: string) {\r\n\t\tif (!identifier) throw new HypixelTSError('METHOD_MISSING_OPTION', 'PlayerManager', 'getRecentlyPlayedGames', 'identifier');\r\n\r\n\t\tconst uuid = await this.getUUID(identifier);\r\n\t\tconst { games } = await this.makeGetRequest<{ games: GetRecentlyPlayedGamesResponse[] }>(`/recentgames?uuid=${uuid}`);\r\n\t\treturn games;\r\n\t}\r\n\r\n\t/**\r\n\t * Fetch the status of a player\r\n\t * @param identifier The username/uuid of the player\r\n\t */\r\n\tpublic async getStatus(identifier: string) {\r\n\t\tif (!identifier) throw new HypixelTSError('METHOD_MISSING_OPTION', 'PlayerManager', 'getStatus', 'identifier');\r\n\r\n\t\tconst uuid = await this.getUUID(identifier);\r\n\t\tconst { session } = await this.makeGetRequest<{ session: GetStatusResponse }>(`/status?uuid=${uuid}`);\r\n\t\treturn session;\r\n\t}\r\n\r\n\t/**\r\n\t * Resolves the username to a uuid for use in requests\r\n\t * @param identifier The username (or uuid) of the player\r\n\t */\r\n\tprivate async getUUID(identifier: string) {\r\n\t\tconst isUUID = Util.isUUID(identifier);\r\n\r\n\t\tif (!isUUID) {\r\n\t\t\tconst uuid = await Util.getUUID(identifier);\r\n\t\t\treturn uuid;\r\n\t\t}\r\n\r\n\t\treturn identifier;\r\n\t}\r\n}\r\n"],"mappings":";;;;AAAA,SAAS,mBAAmB;AAE5B,SAAS,QAAQ,YAAY;AAC7B,SAAS,sBAAsB;AASxB,IAAM,gBAAN,cAA4B,YAAY;AAAA,EAZ/C,OAY+C;AAAA;AAAA;AAAA,EACvC,YAAY,QAAgB,QAAgB;AAClD,UAAM,QAAQ,MAAM,MAAM;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,MAAM,YAAoB;AACtC,QAAI,CAAC,WAAY,OAAM,IAAI,eAAe,yBAAyB,iBAAiB,SAAS,YAAY;AAEzG,UAAM,OAAO,MAAM,KAAK,QAAQ,UAAU;AAC1C,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK,eAAsC,gBAAgB,IAAI,EAAE;AAC1F,WAAO,IAAI,OAAO,KAAK,QAAQ,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,uBAAuB,YAAoB;AACvD,QAAI,CAAC,WAAY,OAAM,IAAI,eAAe,yBAAyB,iBAAiB,0BAA0B,YAAY;AAE1H,UAAM,OAAO,MAAM,KAAK,QAAQ,UAAU;AAC1C,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,eAA4D,qBAAqB,IAAI,EAAE;AACpH,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,UAAU,YAAoB;AAC1C,QAAI,CAAC,WAAY,OAAM,IAAI,eAAe,yBAAyB,iBAAiB,aAAa,YAAY;AAE7G,UAAM,OAAO,MAAM,KAAK,QAAQ,UAAU;AAC1C,UAAM,EAAE,QAAQ,IAAI,MAAM,KAAK,eAA+C,gBAAgB,IAAI,EAAE;AACpG,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,QAAQ,YAAoB;AACzC,UAAM,SAAS,KAAK,OAAO,UAAU;AAErC,QAAI,CAAC,QAAQ;AACZ,YAAM,OAAO,MAAM,KAAK,QAAQ,UAAU;AAC1C,aAAO;AAAA,IACR;AAEA,WAAO;AAAA,EACR;AACD;","names":[]}