本篇文章將教您如何在網頁上顯示 Minecraft 伺服器狀態!
在教學開始前,先下載我寫的範例專案吧!(點我前往 GitHub)
下載完解壓縮資料夾內應該有一個 src 資料夾,這資料夾內的檔案都很重要,我也寫好了 data.php 程式碼,要調用狀態顯示比較方便。
伺服器記得要啟用 Query 查詢,否則部分內容會無法取得,在 server.properties 文件內修改或新增 enable-query=true
我先來說明一下可以使用的變數,後續教學會使用到:
接下來我來示範一下基本的用法
首先我們必須先定義伺服器 IP 和端口
1 2 |
$host = "meow.mcpe.tw"; //設定伺服器網域或 IP $port = "19132"; //設定伺服器端口 |
然後引入 data.php (需要注意檔案路徑,我 data.php 是放在專案根目錄)
1 |
require __DIR__.'/data.php'; |
接下來我們來顯示伺服器狀態、名稱及玩家人數
1 2 |
<?php echo $clean_motd; ?> (<?php echo $status; ?>)<br> 線上人數:<?php echo $players_online; ?>/<?php echo $players_max; ?> |
上面的程式碼整合起來
1 2 3 4 5 6 7 8 |
<?php $host = "meow.mcpe.tw"; //設定伺服器網域或 IP $port = "19132"; //設定伺服器端口 require __DIR__.'/data.php'; ?> <?php echo $clean_motd; ?> (<?php echo $status; ?>)<br> 線上人數:<?php echo $players_online; ?>/<?php echo $players_max; ?> |
呈現樣子
以上是最基本的範例,你也可以自行修改排版,在上面的變數都可以自由使用!
接下來教如何顯示在線玩家清單,需要使用到 foreach
1 2 3 4 5 6 7 |
<?php if (is_array($Players)) : ?> <?php foreach($Players as $Player) : ?> <?php echo htmlspecialchars($Player); ?><br> <?php endforeach; ?> <?php else: ?> 無玩家在線。 <?php endif; ?> |
上面是一個例子,呈現樣子為下圖
if (is_array($Players)) 是用來判斷 $Players 這變數是不是陣列 (如果有玩家就會以陣列顯示,否則顯示無玩家在線。)
foreach($Players as $Player) 是迴圈,用來抓取陣列的值 (迴圈內變數請使用 $Player 而不是 $Players)
如果想要呈現玩家 Skin 可以這樣寫
1 2 3 4 5 6 7 8 9 10 11 |
<?php if (is_array($Players)) : ?> <?php foreach($Players as $Player) : ?> <?php if ($platform == "MINECRAFT") : ?> <?php echo '<img src="https://cravatar.eu/helmhead/'.htmlspecialchars($Player).'/15.png"> '.htmlspecialchars($Player); ?><br> <?php else: ?> <?php echo '<img src="https://cravatar.eu/helmhead/steve/15.png"> '.htmlspecialchars($Player); ?><br> <?php endif; ?> <?php endforeach; ?> <?php else: ?> 無玩家在線。 <?php endif; ?> |
if ($platform == "MINECRAFT") 是用來判斷伺服器是否為 Java (PC) 版,因為 PE 版並不能查詢 Skin,所以默認顯示 Steve 皮膚!
以上就是最基本的教學,還有其他變數你也可以寫入程式碼測試看看,下面是完整的程式碼範例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<?php /* * 張文相 Zhang Wenxiang - 個人 Blog * https://blog.reh.tw/ * * 範例教學 * https://blog.reh.tw/webpage-display-minecraft-server-status/ */ $host = "meow.mcpe.tw"; //設定伺服器網域或 IP $port = "19132"; //設定伺服器端口 /* $host = $_GET["host"]; $port = $_GET["port"]; */ require __DIR__.'/data.php'; ?> <html> <head> <title>網頁顯示 Minecraft 伺服器狀態示範</title> </head> <body> <h1>網頁顯示 Minecraft 伺服器狀態示範</h1> <h2>教學文章:<a href="https://blog.reh.tw/webpage-display-minecraft-server-status/" target="_blank">https://blog.reh.tw/webpage-display-minecraft-server-status/</a></h2> <hr> <p>狀態:<font color="#2a6c0f"><?php echo $status; ?></font></p> <p>IP 或網域:<font color="#2a6c0f"><?php echo $host; ?></font> <br>主機 IP:<font color="#2a6c0f"><?php echo $hostip; ?></font> <br>端口:<font color="#2a6c0f"><?php echo $port; ?></font></p> <p>MOTD:<font color="#2a6c0f"><?php echo $motd; ?></font> <br>清除顏色參數後的 MOTD:<font color="#2a6c0f"><?php echo $clean_motd; ?></font></p> <p>平台:<font color="#2a6c0f"><?php echo $platform; ?></font> <br>遊戲類型:<font color="#2a6c0f"><?php echo $gametype; ?></font></p> <p>兼容遊戲版本:<font color="#2a6c0f"><?php echo $version; ?></font> <br>伺服器使用的軟體或核心:<font color="#2a6c0f"><?php echo $software; ?></font></p> <p>可容納最大玩家數:<font color="#2a6c0f"><?php echo $players_max; ?></font> <br>線上玩家數:<font color="#2a6c0f"><?php echo $players_online; ?></font></p> <p>使用的查詢協定:<font color="#2a6c0f"><?php echo $agreement; ?></font> <br>查詢耗時:<font color="#2a6c0f"><?php echo $processed; ?></font></p> <hr> <h3>目前在線玩家 <font color="#2a6c0f"><?php echo $players_online; ?></font>/<font color="#2a6c0f"><?php echo $players_max; ?></font></h3> <?php if (is_array($Players)) : ?> <?php foreach($Players as $Player) : ?> <font color="#2a6c0f"><?php echo htmlspecialchars($Player); ?></font><br> <?php endforeach; ?> <?php else: ?> 無玩家在線。 <?php endif; ?> </body> </html> |
再次提醒伺服器記得要啟用 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
分類:Minecraft (當個創世神) 教學 程式 遊戲
標籤:HTML Minecraft Minecraft Server Minecraft 伺服器 PHP Server 伺服器 平台通用 狀態 網頁