componentconstructors['digitalclock'] = function(dynmap, configuration) { var element = $('
') .addClass('digitalclock') .addClass('largeclock') .appendTo(dynmap.options.container); var timeout = null; var formatTime = function(time) { var formatDigits = function(n, digits) { var s = n.toString(); while (s.length < digits) { s = '0' + s; } return s; } return formatDigits(time.hours, 2) + ':' + formatDigits(time.minutes, 2); }; var setTime = function(servertime) { if (timeout != null) { window.clearTimeout(timeout); timeout = null; } var time = getMinecraftTime(servertime); element .addClass(time.day ? 'day' : 'night') .removeClass(time.night ? 'day' : 'night') .text(formatTime(time)); if (timeout == null) { timeout = window.setTimeout(function() { timeout = null; setTime(time.servertime+(1000/60)); }, 700); } }; $(dynmap).bind('worldupdated', function(event, update) { setTime(update.servertime); }); };