aboutsummaryrefslogtreecommitdiff
path: root/build/mojang.js
blob: 344e377bbafdea74d5947ccefa6d12c6fa7727d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
"use strict";
/**
 * Fetch the Mojang username API through api.ashcon.app
 */
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.usernameFromUser = exports.uuidFromUser = exports.mojangDataFromUser = void 0;
const node_fetch_1 = __importDefault(require("node-fetch"));
const https_1 = require("https");
// We need to create an agent to prevent memory leaks
const httpsAgent = new https_1.Agent({
    keepAlive: true
});
/**
 * Get mojang api data from ashcon.app
 */
async function mojangDataFromUser(user) {
    console.log('cache miss :( mojangDataFromUser', user);
    const fetchResponse = await node_fetch_1.default('https://api.ashcon.app/mojang/v2/user/' + user, { agent: () => httpsAgent });
    return await fetchResponse.json();
}
exports.mojangDataFromUser = mojangDataFromUser;
/**
 * Fetch the uuid from a user
 * @param user A user can be either a uuid or a username
 */
async function uuidFromUser(user) {
    const fetchJSON = await mojangDataFromUser(user);
    return fetchJSON.uuid.replace(/-/g, '');
}
exports.uuidFromUser = uuidFromUser;
/**
 * Fetch the username from a user
 * @param user A user can be either a uuid or a username
 */
async function usernameFromUser(user) {
    // get a minecraft uuid from a username, using ashcon.app's mojang api
    const fetchJSON = await mojangDataFromUser(user);
    return fetchJSON.username;
}
exports.usernameFromUser = usernameFromUser;