LV. 30
GP 400

自己作伺服器插件吧!《基本入門教學》

樓主 WeeHavoc william1211
以下內文將包含大量圖片示意,建議先點選右上方的 [ 開啟圖片 ] 再做閱讀



1. 下載 Java  

首先到 Oracle 官方頁下載我們需要的 Java 基礎:



如上圖所示,點選其中一個紅框處下載 Java SE Development Kits

JRE 為運行 Java 程式所需(如:開啟 Minecraft 遊戲或者伺服器皆需此項)

JDK 為開發 Java 程式所需

而 JDK 將包含 JRE ,所以我們下載 JDK 。


選擇 Accept License Agreement ( 接受協議 ) 後,依照個人的作業系統下載對應的版本。


安裝完後我們將會得到 JRKJDK

基本上電腦安裝的 Java 版本越單純越好,如有新版本也建議都只保留新版本。



2. 下載 Eclipse  

接著我們將需要一套開發(編譯)軟體,這邊推薦使用 Eclipse


選擇 Eclipse IDE for Java Developers 下載。



3. 開始製作插件  


開啟 Eclipse 後,會出現如上圖中的視窗來選擇工作目錄。這邊依個人習慣設定即可。


接著進入主畫面,在左方的 Package Explorer  區 [ 右鍵 ] 選擇 [ New ][ Java Project ]



在上圖中的 [ A ] 處輸入 Java 專案名稱 || 在 Use a project specific JRE 處選擇 JRE7(非必要)

以下將以 New Plugin 為專案名稱來示範。

(這邊的專案名稱影響範圍可以說儘限 Eclipse ,跟接下來製作的插件本身沒有什麼直接關聯)



接著到剛才設置的 Eclipse 工作目錄中找到我們方才建立的專案資料夾。

然後在專案資料夾內再建立一個新的資料夾 libs
(這個動作可以在 Eclipse 中完成)

接下來我們需要 Bukkit 伺服器主檔


下載需要的版本後放置到 libs  資料夾內。

下面以 CraftBukkit 1.4.5 R0.3 Build 2498 為例



接著在 src 資料夾內建立一個資料夾並在底下建立一個 java 檔案

這邊資料夾名稱MyPlugin 為例,檔案名稱Main 為例。

(Java 檔只要建立純文字檔案後更改副檔名為 java 即可)
(資料夾的名稱以及檔案名稱將會跟接下來編寫的插件有關)
(建立資料夾的部分其實是非必要動作,不過初學者建議還是建立一下會比較清楚)



返回 Eclipse 並重新整理,接著如上圖對著 libs 資料夾中的 Bukkit 伺服器主檔

[ 右鍵 ] 選擇 [ Build Path ][ Add to Build Path ]

完成後即可開啟剛剛建立的 Java 檔進行程式編寫:



package MyPlugin;

 這邊的 MyPlugin 對應的是剛才先建立的那一層資料夾名稱
 若 Java 主檔直接建立在 src 資料夾底下,Eclipse 會顯示上一層為 (default package) ,則不需要此行。

- -

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.plugin.java.JavaPlugin;

 這邊四行 import 為引用的來源參照。上面示範的引用皆是來自 Bukkit 伺服器主檔
 若有將 Bukkit 伺服器主檔 加入 Build Path 的話,Eclipse 會視程式需要自動加入的。
 Eclipse 會將多餘的引用以 Warnings 來提示。

- -

public class Main extends JavaPlugin implements Listener

 這邊的 Main 對應的是 Java 的檔案名稱

- -

public void onEnable()

 如字面上, onEnable 包含的將是插件啟動時會執行的程式碼。

- -

public void PlayerRespawn (PlayerRespawnEvent event)

 這邊的 PlayerRespawn 為自定義的名稱。

 PlayerRespawnEvent 對應的是上方引用的 org.bukkit.event.player.PlayerRespawnEvent

 可開啟 Bukkit 伺服器主檔 進入到對應位置來觀察引用內容。

 這邊 PlayerRespawnEvent 為當玩家重生的事件。

 也就是說圖中所示範的程式碼為:

 當玩家重生時,伺服器將會廣播「XXX ReSpawn!」此訊息。

- -

 關於 Java 程式的編寫,這邊以引入門為主,就不做進一步的深入教學了。

 而在編寫時若有錯誤或警告皆會在下方的 Problems 問題區塊顯示。

 同時有問題的字列也會以紅色(錯誤)或黃色(警告)的底標提示。



4. 封裝插件  



程式編寫完成後,對專案 [ 右鍵 ] 選擇 [ Export ] 即可開始封裝並匯出的動作。



選擇 Java  → JAR file  後進行下一步



JAR file  選擇 Browse  進行瀏覽,設定要儲存的位置及檔案名稱

下面以 NewPlugin 為檔案名稱示範。



5. 完成插件  



剛產生的插件 ( Jar ) 以 WinRAR 開啟後將會如上圖。



最後 Bukkit 的插件還需要再建立一個如上圖格式的 plugin.yml 檔案。

若都照上方指引命名的話,最上方的 name 為我們最後匯出的 Jar 檔案名稱

接著的 main 意指程式主檔的位置,我們有先建立一層 MyPlugin 資料夾
底下才是我們主要編寫的 Main.java (在完成的插件中會變成已編譯好的 Main.class)
所以在 main 的部分輸入 MyPlugin.Main (在 Java 中,點「.」符號通常代表連接上下層關係)

最後 version 為插件的版本號。

完成後將 plugin.yml 檔案透過 WinRAR 拖曳至我們的插件主檔 ( Jar ) 中即完成!



  補充  

在 Eclipse 編寫程式時,儲存檔案後會立即編譯為 Class 檔,該檔案將會在專案資料夾中的 bin 資料夾內。
 若已存在 Jar 檔,可直接將 Class 檔拖曳至 Jar 中,不必每次修改插件後都重新匯出 Jar 檔。
     
板務人員: