mirror of
https://github.com/azures04/crafatar.git
synced 2026-03-21 23:41:18 +01:00
Mojang has disabled their legacy skins API: https://twitter.com/MojangSupport/status/964511258601865216 With their API rate limits, it's now practially impossible for us to support usernames. Fixes #142. The default parameter allows using: - UUID - URL - MHF_Alex - MHF_Steve - Alex - Steve Contrary to UUIDs, using alex/steve doesn't redirect and instead provides the skin from a locally stored file.
50 lines
1.8 KiB
JavaScript
50 lines
1.8 KiB
JavaScript
var valid_user_id = /^[0-9a-f-A-F-]{32,36}$/; // uuid
|
|
var xhr = new XMLHttpRequest();
|
|
|
|
xhr.onload = function() {
|
|
var response = JSON.parse(xhr.responseText);
|
|
var status = {};
|
|
response.map(function(elem) {
|
|
var key = Object.keys(elem)[0];
|
|
status[key] = elem[key];
|
|
});
|
|
|
|
var textures_err = status["textures.minecraft.net"] !== "green";
|
|
var session_err = status["sessionserver.mojang.com"] !== "green";
|
|
|
|
if (textures_err || session_err) {
|
|
var warn = document.createElement("div");
|
|
warn.setAttribute("class", "alert alert-warning");
|
|
warn.setAttribute("role", "alert");
|
|
warn.innerHTML = "<h5>Mojang issues</h5> Mojang's servers are having trouble <i>right now</i>, this may affect requests at Crafatar. <small><a href=\"https://help.mojang.com\" target=\"_blank\">check status</a>";
|
|
document.querySelector("#alerts").appendChild(warn);
|
|
}
|
|
};
|
|
|
|
document.addEventListener("DOMContentLoaded", function(event) {
|
|
var avatars = document.querySelector("#avatar-wrapper");
|
|
for (var i = 0; i < avatars.children.length; i++) {
|
|
// shake 'em on down!
|
|
// https://stackoverflow.com/a/11972692/2517068
|
|
avatars.appendChild(avatars.children[Math.random() * i | 0]);
|
|
}
|
|
|
|
var tryit = document.querySelector("#tryit");
|
|
var tryname = document.querySelector("#tryname");
|
|
var images = document.querySelectorAll(".tryit");
|
|
tryit.onsubmit = function(e) {
|
|
e.preventDefault();
|
|
tryname.value = tryname.value.trim();
|
|
var value = tryname.value || "853c80ef3c3749fdaa49938b674adae6";
|
|
if (!valid_user_id.test(value)) {
|
|
tryname.value = "";
|
|
return;
|
|
}
|
|
for (var j = 0; j < images.length; j++) {
|
|
images[j].src = images[j].dataset.src.replace("$", value);
|
|
}
|
|
};
|
|
|
|
xhr.open("GET", "https://status.mojang.com/check", true);
|
|
xhr.send();
|
|
}); |