minecraft-java-core
Version:
A library starting minecraft game NW.js and Electron.js
137 lines • 3.89 kB
JavaScript
;
/**
* @author Luuxis
* Luuxis License v1.0 (voir fichier LICENSE pour les détails en FR/EN)
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.login = login;
exports.refresh = refresh;
exports.validate = validate;
exports.signout = signout;
exports.ChangeAuthApi = ChangeAuthApi;
const crypto_1 = __importDefault(require("crypto"));
let api_url = 'https://authserver.mojang.com';
async function login(username, password) {
const UUID = crypto_1.default.randomBytes(16).toString('hex');
if (!password) {
return {
access_token: UUID,
client_token: UUID,
uuid: UUID,
name: username,
user_properties: '{}',
meta: {
online: false,
type: 'Mojang'
}
};
}
const message = await fetch(`${api_url}/authenticate`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
agent: {
name: "Minecraft",
version: 1
},
username,
password,
clientToken: UUID,
requestUser: true
})
}).then(res => res.json());
if (message.error) {
return {
access_token: '',
client_token: '',
uuid: '',
name: '',
user_properties: '{}',
meta: { online: false, type: 'Mojang' },
error: message.error,
errorMessage: message.errorMessage
};
}
return {
access_token: message.accessToken,
client_token: message.clientToken,
uuid: message.selectedProfile.id,
name: message.selectedProfile.name,
user_properties: '{}',
meta: {
online: true,
type: 'Mojang'
}
};
}
async function refresh(acc) {
const message = await fetch(`${api_url}/refresh`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
accessToken: acc.access_token,
clientToken: acc.client_token,
requestUser: true
})
}).then(res => res.json());
if (message.error) {
return {
access_token: '',
client_token: '',
uuid: '',
name: '',
user_properties: '{}',
meta: { online: false, type: 'Mojang' },
error: message.error,
errorMessage: message.errorMessage
};
}
return {
access_token: message.accessToken,
client_token: message.clientToken,
uuid: message.selectedProfile.id,
name: message.selectedProfile.name,
user_properties: '{}',
meta: {
online: true,
type: 'Mojang'
}
};
}
async function validate(acc) {
const message = await fetch(`${api_url}/validate`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
accessToken: acc.access_token,
clientToken: acc.client_token,
})
});
return message.status === 204;
}
async function signout(acc) {
const message = await fetch(`${api_url}/invalidate`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
accessToken: acc.access_token,
clientToken: acc.client_token,
})
}).then(res => res.text());
return message === "";
}
function ChangeAuthApi(url) {
api_url = url;
}
//# sourceMappingURL=Mojang.js.map