MediaWiki:Common.js:修订间差异

MediaWiki界面页面
无编辑摘要
无编辑摘要
第1行: 第1行:
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */
/* =====================================================
$(function() {
  服务器状态实时显示
  数据源:https://api.mcsrvstat.us/3/game.xhcity.top
  显示元素:#xh-server-status
  ===================================================== */
( function () {
    var el = document.getElementById( 'xh-server-status' );
    if ( !el ) return;


if ($("#live-delay-info").length > 0) {
    fetch( 'https://api.mcsrvstat.us/3/game.xhcity.top', {
  $.getJSON("https://seu.complexstudio.net/mirror/srcity.mc/mc/sysmap/data")
        headers: { 'User-Agent': 'xhcity-wiki-status-widget/1.0' }
  .done(function (data) {
    } )
    var routeNameSet = new Set();
        .then( function ( r ) {
    var delayedNames = [];
            if ( !r.ok ) throw new Error( r.status );
    data[0].routes.forEach(function(route) {
            return r.json();
      var routeName = route.name.split("|")[0];
        } )
      routeNameSet.add(routeName);
        .then( function ( data ) {
      if (route.maxWaitTime > 2400) {
            if ( data.online ) {
        if (delayedNames.indexOf(routeName) < 0) {
                var online = data.players ? data.players.online : 0;
          delayedNames.push(routeName);
                var max = data.players ? data.players.max : '?';
        }
                el.innerHTML = '<span style="color:#17b3a8; font-weight:700;">● 服务器运行中</span>' +
      }
                    ' &nbsp;·&nbsp; 在线人数:<b style="color:#111827;">' + online + '</b> / ' + max;
    });
            } else {
    var statusText = "星海市现有 " + routeNameSet.size + " 条线路, " + Object.keys(data[0].stations).length + " 处车站。";
                el.innerHTML = '<span style="color:#d22; font-weight:700;">● 服务器已离线</span>';
    if (delayedNames.length > 0) {
            }
      statusText += "<br/><b style='color:red'>有线路发生阻塞:" + delayedNames.join("、") + "。</b>";
        } )
    }
        .catch( function ( err ) {
    $("#live-delay-info").html(statusText);
            el.innerHTML = '<span style="color:#d22;">● 状态获取失败(' + err.message + ')</span>';
  })
        } );
  .fail(function (xhr, textStatus) {
} )();
    if (xhr.status == 502) {
      $("#live-delay-info").html("服务器当前未启动,或处于休眠状态。");
    } else {
      $("#live-delay-info").html("<b style='color:red'>获取信息失败: " + xhr.status + " " + textStatus + "。</b>");
    }
  });
}
 
}());

2026年9月23日 (三) 19:07的版本

/* =====================================================
   服务器状态实时显示
   数据源:https://api.mcsrvstat.us/3/game.xhcity.top
   显示元素:#xh-server-status
   ===================================================== */
( function () {
    var el = document.getElementById( 'xh-server-status' );
    if ( !el ) return;

    fetch( 'https://api.mcsrvstat.us/3/game.xhcity.top', {
        headers: { 'User-Agent': 'xhcity-wiki-status-widget/1.0' }
    } )
        .then( function ( r ) {
            if ( !r.ok ) throw new Error( r.status );
            return r.json();
        } )
        .then( function ( data ) {
            if ( data.online ) {
                var online = data.players ? data.players.online : 0;
                var max = data.players ? data.players.max : '?';
                el.innerHTML = '<span style="color:#17b3a8; font-weight:700;">● 服务器运行中</span>' +
                    ' &nbsp;·&nbsp; 在线人数:<b style="color:#111827;">' + online + '</b> / ' + max;
            } else {
                el.innerHTML = '<span style="color:#d22; font-weight:700;">● 服务器已离线</span>';
            }
        } )
        .catch( function ( err ) {
            el.innerHTML = '<span style="color:#d22;">● 状态获取失败(' + err.message + ')</span>';
        } );
} )();