function createMinecraftHead(player,size,completed,failed) { var faceImage = new Image(); faceImage.onload = function() { completed(faceImage); }; faceImage.onerror = function() { failed(); }; faceImage.src = dynmap.options.tileUrl + 'faces/' + size + 'x' + size + '/' + player + '.png'; } var playerHeads = {}; function getMinecraftHead(player,size,completed) { var key = player + '.' + size; var head = playerHeads[key]; // Synchronous if (!completed) { return (!head || head.working) ? null : head; } // Asynchronous if (!head) { playerHeads[key] = { working: true, hooks: [{f:completed}] }; createMinecraftHead(player, size, function(head) { hooks = playerHeads[key].hooks; playerHeads[key] = head; var i; for(i=0;i= 0 && servertime < 13700; return { servertime: servertime, days: parseInt((servertime+8000) / 24000), // Assuming it is day at 8:00 hours: (parseInt(servertime / 1000)+8) % 24, minutes: parseInt(((servertime / 1000) % 1) * 60), seconds: parseInt(((((servertime / 1000) % 1) * 60) % 1) * 60), day: day, night: !day }; }