在 Spigot 架設的 Minecraft 伺服器中安裝需要的插件教學

此篇文章是Spigot的延伸教學,在此篇文章中筆者將會示範如何為Spigot裝上你要在Minecraft遊戲中使用的插件功能。當然如果你是使用另外一套Bukkit來架設Minecraft伺服器的話,那也是可以參考此篇教學,因為Spigot和Bukkit兩者所使用的插件幾乎都可以相容的。

此篇文章主要延續之前寫的Spigot架設多人遊玩的Minecraft伺服器,如果你需要參考如何在Debian/Ubuntu環境中架設Minecraft伺服器的話,那可以參考那篇教學。此篇教學將會分別示範3個有提供Spigot插件下載的網站,以及也會示範3個不同的插件,那3個插件下載的網站分別為CurseForge、SpigotMC和Bukkit,而那3個插件部分,分別為:Dynmap、SkinsRestorer和WorldEdit,其中Dynmap(動態地圖-可以在瀏覽器上直接顯示Minecraft世界地圖和玩家動向)和WorldEdit(可以使用指令來構建Minecraft世界,功能十分強大)為功能性插件,而SkinsRestorer(可以更換玩家的人物造型)比較偏向有趣性的插件。另外要說一下就是,目前提供Minecraft插件下載的網站,幾乎都有使用Cloudflare的DDOS防護,而導致無法直接使用Wget或cURL指令來下載插件,為了解決這個問題,筆者在此篇教學,會使用SFTP方式來手動將需要的插件上傳至Minecraft伺服器,而FTP的軟體,筆者會使用FileZilla Client來做示範。

在還未進入教學之前,筆者這邊先列出Spigot插件資源的下載網站連結:

 Bukkit Plugins

 CurseForge-Minecraft: Bukkit Plugins

 SpigotMC Resources

1)下載FTP軟體,及使用SFTP協定連線至遠端的主機。

Step 1:現在一般租用的Linux主機,都有內建了OpenSSH,所以我們可以使用SSH提供的FTP功能,來直接使用SFTP協定,要使用SFTP的功能之前,當然電腦本機也需要安裝好FTP軟體,而你可以使用你自己比較習慣使用的FTP軟體,還有你也需要自己確定你使用的FTP軟體,是可以支援SFTP協定的。如果你不知道要使用哪一套FTP軟體,那可以跟筆者一樣使用FileZilla的FileZilla Client,如下圖所示連結至FileZilla Client下載頁面及點選FileZilla Client免安裝64位元版本的下載連結。

下載FileZilla Client免安裝版本-spigotplugin001

 

Step 2:FileZilla Client免安裝版本下載與解壓縮完成之後,就可以點擊如下圖所示的『filezilla.exe』來開啟FileZilla程式。

執行FileZilla程式-spigotplugin002

 

Step 3:如下圖所示在各個欄位中輸入遠端主機的連線資訊,因為是使用SFTP連線,所以記得要在主機欄位要連線的IP位址前面加上『sftp://』,然後其他欄位就輸入你主機登入的使用者名稱、密碼和Port號(如果使用預設Port號22,可以留空),完成之後點擊『快速連線』按鈕。接著可以先點開『plugins』目錄,假如你所架設的Minecraft伺服器是參考筆者之前寫的Spigot架設多人遊玩的Minecraft伺服器的話,那可以參考如下圖所示Spigot插件存放的目錄位置。

/home/minecraft/server/plugins

使用SFTP協定連上遠端的主機-spigotplugin021

 

2)連上有提供Spigot插件資源的網站下載你要的插件。

**筆者此部分教學會使用Dynmap插件來做例子。

**有提供Dynmap插件下載的網站分別有:

 Bukkit-Dynmap

 CurseForge-Dynmap

 SpigotMC-Dynmap

**筆者此部分教學會使用CurseForge網站來做例子。

Step 1:可以連上有提供Spigot插件資源的網站來選擇及下載你要的插件,如下圖所示為CurseForge-Minecraft: Bukkit Plugins首頁介面說明,在這邊你可以看到有許多插件可供選擇及下載。

連上有提供Spigot插件的網站-spigotplugin041

 

Step 2:如下圖所示可以看到筆者在CurseForge網站選擇了Dynmap插件,在說明頁面中可以看到Dynmap有提供了哪些功能。

以Dynmap插件來做例子-spigotplugin042

 

Step 3:假如此插件是你需要的話,那在下載的時候,不要直接點擊右上角的下載按鈕,因為直接點擊下載,那可能會下載到不相容你Minecraft遊戲的版本,所以你應該點選如下圖所示的『舊版』頁籤,並在『遊戲版本』的下拉式清單中選擇你要下載的Minecraft遊戲版本,然後點擊『篩選版本』按鈕,就可以看到適用你遊戲版本的插件了,接著直接點擊如下圖所示的『下載』圖示按鈕吧。

選擇所需要的Dynmap插件版本-spigotplugin043

 

Step 4:如下圖所示可以看到筆者已下載了Dynmap插件。

將Dynmap插件下載至電腦本機-spigotplugin044

 

Step 5:接著在FileZilla的本地站台這邊點開你剛剛下載Dynmap的資料夾位置,然後可以用拖曳方式將插件拖到遠端站台『plugins』的目錄下。

將下載好的插件上傳至Minecraft伺服器的plugins目錄位置-spigotplugin061

 

Step 6:將插件上傳好到遠端的Minecraft伺服器後,接著就可以重啟你的Minecraft伺服器了。

**如果你是參考筆者之前寫的Spigot架設多人遊玩的Minecraft伺服器的話,那可以輸入『/etc/init.d/minecraft restart』指令來重啟你的Minecraft伺服器。

新的插件上傳完成之後,接著要重新啟動Minecraft伺服器-spigotplugin062

 

Step 7:接著回到Dynmap的說明頁面,在頁面中可以看到首次使用的說明,從說明中可以看到只需在瀏覽器的網址列輸入你Minecraft伺服器的IP位址及Port號『8123』就可以連上Dynmap動態地圖了。

可以查閱插件的相關文檔,以可以來進一步知道要怎麼使用插件的功能-spigotplugin063

 

Step 8:如下圖所示筆者輸入了筆者的Minecraft伺服器IP位址和Port『8123』,可以看到是可以成功連上Dynmap動態地圖,首次開始連進去的時候,你應該是看到全部黑色的畫面,而那是正常的,就放著給他跑一下,就會看到正常的Minecraft地圖了。當然假如跑了一段時間,周圍還是出現黑色的畫面,那就表示說那些黑色畫面是還未探索的地方。

**如果你的Minecraft伺服器有在使用防火牆,請記得將Dynmap所使用的『8123』Port加入至iptables中,以Debian/Ubuntu來說,最常使用的防火牆為UFW,那可以輸入『sudo ufw allow 8123/tcp』指令來允許外面的連線經由Port 8123來連線至你的主機。

可以看到Dynmap的使用方式是需要在瀏覽器輸入Minecraft伺服器的IP位址和Port號就可以在瀏覽器上看到Minecraft遊戲即時的動態地圖-spigotplugin081

 

Step 9:如果你有為你的Minecraft伺服器設定域名,那可以將IP位址換成域名及加上『8123』Port號,一樣是可以連上Dynmap動態地圖。

如果有為Minecraft伺服器設定域名,那也可以輸入域名及加上Port號,一樣可以開啟動態地圖-spigotplugin082

 

Step 10:如下圖所示為Dynmap介面功能的簡單介紹。另外,如下圖所示你可以看到筆者的Dynmap動態地圖出現黑色的方塊無法正常顯示的問題,其實Dynmap是有提供相關指令來解決這個問題的,而地圖渲染指令為『dynmap fullrender world』,讓Dynmap跑一段時間就可以解決這些黑區塊的問題,需要注意的是,使用『dynmap fullrender world』指令會耗用你主機不少的資源,所以假如Dynmap動態地圖都顯示正常的話,要記得取消渲染,而取消渲染的指令為『dynmap cancelrender world』。

**除了上面提到的Dynmap兩個指令之外,Dynmap有提供相當多的指令,你可以參考webbukkit/dynmap-Commands

**指令除了能在Screen輸入之外,如果你要在遊戲中使用你的角色來輸入指令,那也是可以的,你需要先從Screen授予你自己遊戲角色管理員權限,而OP指令格式參考如下:

op <遊戲角色名稱>

**獲得管理員權限之後,就可以來輸入如下面所示的相關指令了。

使用遊戲的角色來渲染當前的地圖。

/dynmap fullrender

要使用遊戲的角色來渲染Minecraft主世界(World)。

/dynmap fullrender world

使用遊戲的角色取消渲染地圖。

/dynmap cancelrender

Dynmap介面的功能介紹-spigotplugin083

 

Step 11:滑鼠滑向Dynmap動態地圖右側,可以看到更多的功能,如下圖所示點選world的『地底透視』,可以看到很清楚的地下結構,這功能對於如果要尋找廢棄礦坑或其他洞穴十分有幫助。

Dynmap動態地圖有提供地底透視功能,這在探索遺跡時十分好用-spigotplugin084

 

Step 12:你也可以自己額外架設網頁伺服器,來讓玩家在輸入網址時不用輸入Port號,如下圖所示也可以看到筆者為域名綁上了SSL憑證

**Dynmap有提供一系列文檔,包含:自架網頁伺服器的設定、Dynmap進階的設定、Dynmap性能上的改善和其他文檔,你可以點選連結webbukkit/dynmap-Home來查看Dynmap相關的文檔。

可以自己額外架設網頁伺服器,來讓玩家在輸入網址時不用輸入Port號-spigotplugin085

 

3)SkinsRestorer插件下載與使用。

**筆者此部分教學會使用SpigotMC網站來做例子。

Step 1:如下圖所示筆者在SpigotMC的SkinsRestorer頁面,你需要先在『Tested Minecraft Version』查看此插件是否有支援你Minecraft遊戲的版本,確定有支援之後就可以直接點擊『Download Now』。下載完成後,然後一樣要將SkinsRestorer上傳到你的Minecraft伺服器,接著記得一定要重啟你的Minecraft伺服器。

在SpigotMC的網頁上下載SkinsRestorer插件-spigotplugin101

 

Step 2:在SkinsRestorer頁面上可以看到SkinsRestorer插件有提供哪些指令,如下圖所示可以看到就是SkinsRestorer有提供給玩家和管理者分別設定了兩套的指令。

**預設中玩家是無法使用這些指令的,你需要再為Minecraft伺服器安裝另一個權限管理插件,而你可以使用你習慣的權限管理插件,如果不知道要使用哪個插件的話,那筆者這邊推薦使用LuckPerms權限管理插件,關於要怎麼在LuckPerms新增一個新的群組,及為這個新的群組加入新的指令可用權限,還有將玩家加入至這個群組中,都可以參考筆者在設定LuckPerms時的範例圖片,關於更多LuckPerms詳細的指令,可以參考官方LuckPerms-Command Usage文檔。

**如果你沒有要讓玩家可以自行更換造型的話,那可以不用安裝權限管理插件,而你可以直接經由Screen或在遊戲中的OP權限管理員,來直接幫玩家更換造型,協助玩家更換造型的指令參考如下:

/sr set <玩家名稱> <造型名稱>

比如說KJie玩家要更換Mario造型,那指令會是如下:

/sr set KJie mario

SkinsRestorer插件的指令說明-spigotplugin102

 

Step 3:假如玩家具有更換造型的權限,那玩家自己可以輸入指令的格式如下:

/skin <造型名稱>

比如說筆者要將角色換成Mario造型,那指令就如下圖所示的方式那樣輸入:

/skin mario

可以輸入指令來更換你要的Skin-spigotplugin121

 

Step 4:可以看到筆者的角色在遊戲中成功更換了Mario造型的例子。

更換了mario造型的例子-spigotplugin122

 

Step 5:筆者個人比較喜歡如下圖所示的Nvidia造型。

更換了nvidia造型的例子-spigotplugin123

 

4)安裝與使用WorldEdit插件(中文稱為『神奇小木斧』)。

**有提供WorldEdit插件下載的網站分別有:

 Bukkit-WorldEdit

 CurseForge-WorldEdit

**筆者此部分教學會使用Bukkit網站來做例子。

Step 1:連結至Bukkit Plugins的WorldEdit頁面,Bukkit網站在下載插件時跟CurseForge網站一樣,不要直接點擊右上角的Download Latest File,而你應該點選『檔案』頁籤,來篩選『遊戲版本』,及下載當前版本最新的WorldEdit插件。下載完成後,然後一樣要將WorldEdit上傳到你的Minecraft伺服器,接著要重啟你的Minecraft伺服器。

下載WorldEdit插件-spigotplugin141

 

Step 2:WorldEdit有自己的WorldEdit-wiki頁面,裡面有相當多的文檔,來解說WorldEdit有提供哪些功能及使用方法,如果你要知道相關的指令,那可以參考WorldEdit-Reference或者WorldEdit-Permissions(官方建議參考這個文檔,因為資料會比較新),如下圖所示筆者要產生一個空心的球體,那就要使用『//hsphere』指令,而『//hsphere』指令格式參考如下:

//hsphere <方塊ID> <半徑>

WorldEdit有提供很多編輯Minecraft世界的指令-spigotplugin142

 

Step 3:因為要知道方塊的ID,所以你可以至Gamepedia-Java版數據值/Indev頁面參考方塊ID,如下圖所示可以看到筆者要的是『金磚』方塊,而『金磚』方塊十進位ID為『41』。

以產生一個空心的球體來說,那還需要知道方塊的ID-spigotplugin143

 

Step 4:如下圖所示可以看到筆者輸入了產生一個空心球體的指令。

//hsphere 41 5

這邊的指令是要產生一個空心的球體來做例子-spigotplugin161

 

Step 5:輸入完成之後,就可以看到空心的球體產生好了。

已產生了一個空心的球體-spigotplugin162

 

Step 6:如下圖所示為球體的外觀,可能因為半徑不夠大,所以球體看起來並不是很圓。

空心的球體外觀-spigotplugin163

 

Step 7:從Dynmap動態地圖上也可以看到剛剛產生好的球體。

在Dynmap上也可以看到剛剛產生的一顆球體-spigotplugin164

 

Step 8:WorldEdit是一個很強大的插件,能做的事很多,除了參考官方的文檔之外,你也可以使用搜尋引擎來參考別人構建東西的範例,甚至如果你不明白官方文檔的指令說明,你也可以使用『WorldEdit 指令』等等的關鍵字,查找到相關的資料。另外除了WorldEdit之外,在Spigot中還有一個更為強大的世界編輯器,稱為Fast Async WorldEdit & VoxelSniper(簡稱為FAWE),FAWE官網表示此插件與WorldEdit相比效能方面改善了很多,以及添加了更多功能,還有需要注意的是FAWE插件不能與WorldEdit插件一起安裝,而你只能選擇其中一個編輯器使用。FAWE方面的文檔可以參考GitHub-FastAsyncWorldedit,指令方面可以參考FAWE-Commands

**FAWE的指令有支援中文,但僅有支援簡體中文,如果你需要的話,那可以更改FAWE的『config.yml』設定檔,如以下指令筆者使用了Vim編輯器來編輯FAWE設定檔:

vim ~/server/plugins/FastAsyncWorldEdit/config.yml

大約在第10行左右,你應該可以看到『language: ''』,那就將其改成『language: 'cn'』,更改完成後一樣記得要重啟你的Minecraft伺服器:

language: 'cn'