【PHP】網頁顯示 Minecraft 伺服器狀態 (PC、PE 平台通用)

2018-04-06 |

本篇文章將教您如何在網頁上顯示 Minecraft 伺服器狀態!

在教學開始前,先下載我寫的範例專案吧!(點我前往 GitHub)

下載完解壓縮資料夾內應該有一個 src 資料夾,這資料夾內的檔案都很重要,我也寫好了 data.php 程式碼,要調用狀態顯示比較方便。

伺服器記得要啟用 Query 查詢,否則部分內容會無法取得,在 server.properties 文件內修改或新增 enable-query=true

我先來說明一下可以使用的變數,後續教學會使用到:

  • $status – 伺服器狀態 (在線 or 離線)
  • $platform – 伺服器平台 (MINECRAFT or MINECRAFTPE)
  • $gametype – 遊戲類型 (提醒一下,並不是遊戲模式喔)
  • $motd – 伺服器 MOTD (未清除顏色參數)
  • $clean_motd – 伺服器 MOTD (已清除顏色參數)
  • $host – 伺服器 IP 或網域 (例如:meow.mcpe.tw)
  • $hostip – 伺服器 IP
  • $port – 伺服器端口 (例如:19132 or 25565)
  • $players_max – 伺服器可容納最大玩家數
  • $players_online – 伺服器線上玩家數
  • $version – 伺服器兼容遊戲版本
  • $software – 伺服器使用的軟體或核心 (例如:PocketMine-MP 1.7dev-743)
  • $agreement – 使用的查詢協定,這是用來顯示查詢方式的 (Query or Ping)
  • $processed – 查詢耗時
  • $Players – 取得在線玩家列表 (此為陣列,需使用 foreach($Players as $Player))

接下來我來示範一下基本的用法

首先我們必須先定義伺服器 IP 和端口

然後引入 data.php (需要注意檔案路徑,我 data.php 是放在專案根目錄)

接下來我們來顯示伺服器狀態、名稱及玩家人數

上面的程式碼整合起來

呈現樣子

以上是最基本的範例,你也可以自行修改排版,在上面的變數都可以自由使用!

接下來教如何顯示在線玩家清單,需要使用到 foreach

上面是一個例子,呈現樣子為下圖

if (is_array($Players)) 是用來判斷  $Players 這變數是不是陣列 (如果有玩家就會以陣列顯示,否則顯示無玩家在線)

foreach($Players as $Player) 是迴圈,用來抓取陣列的值 (迴圈內變數請使用 $Player 而不是 $Players)

如果想要呈現玩家 Skin 可以這樣寫

if ($platform == "MINECRAFT") 是用來判斷伺服器是否為 Java (PC) 版,因為 PE 版並不能查詢 Skin,所以默認顯示 Steve 皮膚!

以上就是最基本的教學,還有其他變數你也可以寫入程式碼測試看看,下面是完整的程式碼範例

再次提醒伺服器記得要啟用 Query 查詢,否則部分內容會無法取得,在 server.properties 文件內修改或新增 enable-query=true

GitHub
https://github.com/GoneTone/webpage-minecraft-server-status

範例網頁
https://demo.reh.tw/mcstatus/?host=meow.mcpe.tw&port=19132



【PHP】網頁顯示 Minecraft 伺服器狀態 (PC、PE 平台通用) - QR Code
本站內容未經授權許可請勿擅自抄襲
如果需引用部分文章內容請註明來源網址

此文章網址:https://blog.reh.tw/archives/204
關於作者
張文相 Zhang Wenxiang 的頭像

張文相 Zhang Wenxiang

我是本站的站長,喜歡 Coding 的一位學生。

張文相 Zhang Wenxiang

我是本站的站長,喜歡 Coding 的一位學生。


分類:Minecraft 我的世界 教學 程式 遊戲
標籤:HTML Minecraft Minecraft Server Minecraft 伺服器 PHP Server 伺服器 平台通用 狀態 網頁



Facebook 留言