線路不穩中... 正在嘗試再次連線...
這套系統的運作方式是有點像掃瞄器的, 在每一次周期, 就會把列表上的伺服器一個一個的 "掃瞄".
其次, 列表上的伺服器是會自動被分為兩類的, 一種叫 "活躍伺服器", 另一種則是 "非活躍伺服器".
在初始化的時候, 所有伺服器都會被歸類到 "活躍伺服器", 如果發現是無法連線的話, 則會被丟到 "非活躍伺服器".
其後如果處於 "非活躍伺服器" 的伺服器上線, 則會重新丟到 "活躍伺服器", 如果連續 2 次掃瞄都沒有上線的話就會再次丟到 "非活躍伺服器".
至於這樣分類的作用是甚麼呢? 為免使用過多不必要的頻寬和時間於掃瞄不活躍的伺服器, 因此 "非活躍伺服器" 和 "活躍伺服器" 是分開掃瞄的.
"非活躍伺服器" 的掃瞄周期是 15 分鐘一次, "活躍伺服器" 則是 5 分鐘一次.
此系統支援使用 HTTP 介面來查詢或/和增加自己的伺服器, 方法如下:
http://mcs.moka-rin.moe/api/{伺服器 IP 地址/網址}[:{接口}]?[addresult={false/true}][&ref={來源網址}]
{}: 被大括號包著的是屬性名稱
[]: 被中括號包著的是選擇性的選項
addresult=false: 如果想在查詢成功後自動在伺服器列表增加伺服器的話, 請把這選項設為 false. 預設值是 true.
ref=...: 如果想自訂來源網址的話, 請設置這選項. 如果沒有設置此選項的話, 將會自動取得進行查詢時的網址 (Referrer) (如有).
查詢完成後, 不管結果如何, 傳回的都一定是 JSON 格式.
一般而言, 傳回的格式會如下:
{
"host": "(網址/IP地址)",
"port": (接口),
"hash": "(標識碼)",
"lastUpdate": (上次更新的時間),
"inactive": (不活躍次數, 大於或等於 2 即表示已被歸類為 "不活躍伺服器"),
"status": { (查詢結果, 詳細請參考下方) },
"url": "(網址)"
}
如果查詢成功的話, status
裡面將會是這樣的格式:
"protocolVersion": (Minecraft 通訊協定版本),
"version": "(伺服器版本)",
"motd": "(使用 Minecraft 格式的伺服器標題)",
"currentPlayers": (在線玩家數量),
"maxPlayers": (最大玩家數量),
"players": [ (玩家列表, 未必一定會提供)
{
"name": "(玩家名稱, 有些伺服器會用來顯示額外訊息)",
"id": "(玩家 UUID)"
},
...
]
如果查詢失敗, status
裡面將會是空物件 {}
或者 null
, 甚至被省略.
鑑於防止濫用和過量佔用系統的運算和頻寬, 每次每個 IP 地址查詢 (不管查詢方還是目標伺服器都一樣) 都不能少於 15 秒, 否則將會獲得此訊息:
{ "error": "Single use limit exceeds" }
如果需要取得圖示的話, 圖片網址將會是:
http://mcs.moka-rin.moe/icons/{標識碼}