觀看本系列教學之前,請先自行學好基本JAVA語法,並且自行做好環境設定以及把該安裝該下載的都弄好,本教學不負責以上內容。
本系列教學使用軟體為Eclipse(英文介面)。
創建插件:1.請於左側「Package Explorer」點選右鍵→New→Java Project
「Project name」輸入你的插件名稱,此教學以TutorialPlugin為例,點擊Finish完成創建
2.於左側「Package Explorer」展開剛剛創立的TutorialPlugin專案,會看到資料夾src
對src資料夾點擊右鍵→New→Package
Name的部分其實就等於插件內部的資料夾路徑,基本上沒有固定格式,可以自訂,只要自己記得不要搞混即可,本教學以wm.vdr.TutorialPlugin為例
輸入完畢後點選Finish完成
3.對剛剛創立好的wm.vdr.TutorialPlugin點選右鍵→New→Class
現在我們要創建的是這個插件的主要核心檔案
Name的部分一般來說我們會用Main或Core這樣子的名字來命名
但一樣只要自己清楚不搞混就可以了
本教學以Main為例,輸入完畢後點選Finish完成
設定插件建置路徑:
我們必須套用Spigot API進來我們的插件才能開始製作
首先對TutorialPlugin專案點擊右鍵→Build Path→Configure Build Path...
點擊右側Add External JARs...
之後選擇先前下載下來的Spigot API
然後點選Apply and Close
插件基本架構:
點開先前創建好的Main會是長這樣
我們要把它寫成這樣
先在public class Main 這行寫上extends JavaPlugin
此行用意是在讓Main繼承JavaPlugin,讓它知道這是個JavaPlugin
寫完之後按下Shift+Ctrl+O就會自動匯入第三行的程式
(若沒有請確認「設定插件建置路徑」篇章正確無誤)
接著
第6行的public void onEnable()以及第9行的public void onDisable()
分別代表著插件啟動時以及插件關閉時
onEnable()內通常會執行一些資料初始化的動作之類的
onDisable()內通常會做一些資料存檔的動作之類的
因為我們目前沒有資料可以讀取,為了測試,我們可以試著在啟動跟關閉時分別顯示不同的訊息
getLogger().info("訊息"); 可以在後台Console顯示訊息
這樣子,插件的基本架構就完成了!
plugin.yml:
以上都正確無誤之後,為了讓伺服器可以讀取的到我們製作的插件,必須設定好plugin.yml這個檔案
於左側TutorialPlugin專案點擊右鍵→New→File
File name輸入plugin.yml
這個File name不像前面所說的可以隨意取名,所以請固定使用plugin.yml
plugin.yml內可設定參數挺多的
這邊一一做介紹
必填項目
name
插件的名字,這邊就輸入我們創建的TutorialPlugin即可
範例:
name: TutorialPlugin
main
插件的主檔案路徑
範例:
main: wm.vdr.TutorialPlugin.Main
version
插件的版本,可隨意輸入
範例:
version: 1.0
非必填項目:
description
插件的簡介說明,可隨意輸入
範例:
description: A Tutorial Plugin.
author
插件的作者,可隨意輸入,輸入自己的名字、遊戲ID或其他等等,若作者不只一個,請使用authors
範例:
author: WMGameLive
authors
插件的作者「們」,若作者只有一個,請使用author
範例:
authors: [WMGameLive, friendA, friendB]
api-version
插件使用的API版本,目前只有1.13可以填
若需要用到1.13以上的API這行就一定要寫
否則就算下載的是1.13以上的API
也依然會使用1.12以前舊的API
範例:
api-version: 1.13
load
插件讀取時間,有STARTUP跟POSTWORLD可以填
填寫STARTUP代表插件在伺服器啟動時就會先行讀取
填寫POSTWORLD則代表插件會在地圖讀取後才讀取
不填寫的話預設為POSTWORLD
通常沒有寫的必要
範例:
load: STARTUP
website
網站,可以是插件的網站,作者的網站,或其他任何網站
範例:
website: www.youtube.com/user/28569324
prefix
插件前綴,這個前綴是指後台CONSOLE訊息的前綴
沒有寫的話預設就是你的插件名字
通常沒有寫的必要
範例:
prefix: TESTING
depend
插件的前置插件
如果你的插件需要某個前置插件才能運作,需要把該前置插件的名字寫在這裡,這樣子的話你的插件就只會在前置插件讀取完成之後才會讀取
像是如果你寫了個經濟類的插件,需要前置插件Vault
那麼你就必須先讓伺服器讀到Vault之後才讀取你的插件
否則你的插件會壞掉
範例:
depend: [Vault]
softdepend
與depend剛好相反
是讓那些需要你的插件當做前置插件的其他插件只能在讀取完你的插件後才能讀取
範例:
softdepend: [VDREconomy]
loadbefore
類似softdepend
指定某些插件只能在你的插件之後讀取
範例:
loadbefore: [VDREconomy]
commands
插件的指令,留到指令篇再詳細說明
permissions
插件的權限,留到權限篇再詳細說明
挑選我們需要的參數後大致上長這樣
存檔後我們就可以輸出囉!
輸出:
於左側的TutorialPlugin專案點擊右鍵→Export...
選擇Java→JAR file→Next >
.classpath和.project可以取消勾選不用輸出
plugin.yml保持勾選狀態
點擊Browse...選擇輸出路徑,直接選到伺服器的plugins資料夾即可
檔案名稱就寫TutorialPlugin
點擊Finish完成
測試:
開啟伺服器,若有出現我們剛剛設定的兩個訊息就是成功囉!
我是屬於那種會做不會教的人
如果有講得不好的地方甚至是講錯的地方
還請多多指教