[精讚] [會員登入]
1771

【Maven】如何開始撰寫 Minecraft PaperMC server插件

萬事起頭難,要開始寫一個插件最難的一步就是要怎麼開始寫

分享此文連結 //n.sfs.tw/15437

分享連結 【Maven】如何開始撰寫 Minecraft PaperMC server插件@小編過路君子
(文章歡迎轉載,務必尊重版權註明連結來源)
2021-11-22 00:40:53 最後編修
2021-10-19 09:04:59 By 過路君子
 

哈囉大家好,這裡是來寫網頁逃避現實的小編過路君子

目前在研讀上遇上了不小的問題,來寫個網頁轉換心情

 

 

通常如果各位想要和朋友一起遊玩同一個 minecraft世界的時候會怎麼做呢?交換地圖檔?用區域網路連線?亦或者是直接架設公開伺服器讓好友連線進來世界遊玩?

不管是那種方式,玩久了之後可能會想要自己寫一些好用的指令來用,所以先到網路上找支援差件的伺服器來開,好不容易架好了、也開好了。

結果當要開始寫的時候,跑到 PaperMC API 的下載頁面一看:

(所有圖片點擊都可以放大、變高清)

直接傻眼,到底什麼是 Maven?沒錯,小編的有個朋友就是這樣,後來就拿著這個網頁跑來找小編,小編就幫他架一架然後就直接跑起來了。

雖然他後來有稍微去看一下 Maven怎麼用,但後來還是纏著小編搞了好幾個小時才順利在終端機顯示出了「Hello World!」。

所以才撰寫了這篇,以後只要有人想寫插件卻卡在第一步小編就輕鬆了,直接丟這個頁面給他們看,完美!

 

那麼小編在開始之前就先來快速介紹什麼是 Maven。

Maven 是一種專案管理程式,其主要功能即為控管 Java程式專案,只需要在設定檔裡面寫入想要 import的 Jar檔資訊,Maven 就會自動連線到資料庫然後下載。

一來可以確保下載下來的 Jar檔品質,二來可以輕鬆的將 Jar檔資訊傳遞出去(很常引入一個 Jar檔,然後那個 Jar檔又引入數個 Jar檔,越引用越多...)。

 

那麼,Maven 極簡介就此為止,我們接下來就要正式進入如何開始一個 PaperMC API 的專案了。

跟以往相同,會附上 LinuxWindows兩種解法,然後會提供產生器快速完成某些步驟。

為了讓大部分的人能快速上手,所以小編會忽略超級大部份的細節,僅以可以讓人快速開始為解說目的。

 

照慣例小編手上沒有Mac,所以Mac使用者就……加油!

那放完環境一覽表就讓我們開始吧!

Java 版本: 16.0.1
Maven 版本:3.8.1
Minecraft 版本:1.17.1

 

Linux

因為 Liunx沒有一些圖形化軟體內建 Maven,所以在開始使用前請各位先自行去安裝 Maven,至於怎麼下載、安裝和執行,在 Maven官網都可以找到相關的方式。

至於各位要使用何種方式創建資料夾結構,都可以。

小編在這裡提供一種資料夾結構以及其相關檔案內容產生的 shell來供大家使用,依序執行下方的指令,全部執行完畢即可得到:

wget http://n.sfs.tw/uploads/content/21/211019085403/6d4dd9ae7d09c0c6af4ac43df7b580f4.zip
unzip 6d4dd9ae7d09c0c6af4ac43df7b580f4.zip
chmod 755 PaperMC-quickstart.sh
./PaperMC-quickstart.sh
cd PaperMC_quickstart
mvn package

在這裡 Java的版本小編並未選用最新的 Java17,而是採用了與 Minecraft執行環境相同的 Java16,所以如果在進行 Maven package的時候有報錯,請各位確認一下編譯的 JDK是否為 16。

另外,受限於這個網站所能上傳的檔案類型,小編僅能壓縮成 zip,無法打包成較為常見的 tar,還請各位見諒。

順利的話會顯示以下畫面:

接下來 cd target/ && ls 就可以看到多了一些資料夾以及最重要的 Jar檔

接著將這個 Jar檔 cp到你伺服器資料夾的 plugins資料夾裡面就可以了。

然後執行看看有沒有出現「Hello World」字樣。

那你說接下來要怎麼開始寫第一個差件指令?先回到 pom.xml所在的位置,然後打cd src/main/java/editor/passing/jinzan && ls

應該就可以看到一個「main.java」的檔案了,直接 vi打開,看到 main區塊,直接寫進去就好了;至於如何模組化以及多檔案合併,就不是本篇的重點了,所以小編也不再此贅述。

 

Windows

請各位先下載這個壓縮檔 PaperMC-quickstart.zip

下載完、解壓縮後應該能看到一個 PaperMC-quickstart.bat的檔案,雙擊執行,如果有跳出任何訊息選「是」即可。

看到上圖的畫面之後就可以隨便按一個按鍵將 cmd關閉囉。

順帶檢查一下在同一個目錄底下有沒有出現一個名為 PaperMC_quickstart的資料夾。

接下來就是重點了,如果各位有在電腦裡面安裝並設置好 Maven的環境變數。

那就直接 cd進 PaperMC_quickstart這個資料夾裡面然後下 mvn package然後就可以看到 Jar檔躺在 PaperMC_quickstart\target的資料夾裡面,然後丟進伺服器的 plugins啟動,完成。

那如果各位剛剛上面那兩段文字完全看不懂,沒關係,先去下載 IntelliJ IDEA Community

下載好之後,開啟,找到剛剛產生出來的資料夾,按「Open」→ 選擇「PaperMC_quickstart」資料夾 →「OK」導入。

點擊「Trust Project」。

這邊請確認目錄結構是否跟下圖的紅框內相同,如果一樣的話就可以準備來使用 Maven執行囉。

我們等等會使用 IntelliJ IDEA Community內建的 Maven功能來做打包(package)。

在我們一將那個資料夾導入 IntelliJ IDEA Community的時候,是沒有辦法做執行的。

因為 IntelliJ IDEA Community根本不知道要怎麼執行,所以我們接下來就是要設定以 Maven來做執行。

比對上下圖不同處,就是上圖的 1處由本來的未設定狀態變成了下圖紅框處,Maven的標誌跑出來了。

按照上圖的說明點擊了綠色小三角之後,正常會跳出下方一欄。

看到「BUILD SUCCESS」就代表我們所需要的 Jar檔案已經躺在 PaperMC_quickstart\target裡面等著我們去執行囉~

回到檔案總管,進到 PaperMC_quickstart資料夾後,點開 target資料夾,就可以看到可愛的 Jar檔躺在裡面了喔!

確認有出現一個名為「PaperMC-quickstart-7.39.1.jar」的檔案就可以將 IntelliJ IDEA Community關閉囉。

接下來直接將這個 Jar檔直接丟入伺服器開服資料夾的 plugins資料夾裡面。

緊接著執行相對應的 PaperMC伺服器開服 Jar檔,例如:「paper-1.17.1-336.jar」。

那接下來怎麼開始寫你差件的第一個指令?重新打開 IntelliJ IDEA Community,然後依照下圖找到 main.java,接下來就是各位大展身手的時候了吧。

 

 

 

後記

小編撰寫這篇的目的是要快速讓不熟的人可以撰寫一些簡單的小差件,小編所提供的這個結構為最簡單就可以執行的差件架構,不太適合大型差件的撰寫。

當然只要對整個目錄結構做小小的變化,就可以拿來構建大型專案了,具體要怎麼做,不是這篇文章的目的,所以小編在此就沒提了。

END

你可能感興趣的文章

【C++】SFML安裝於Microsoft Visual Studio 2019 此方法僅適用單個C++專案,因為一次就適用整台電腦的方式有人寫了,而且寫得非常不錯。

【Arduino/LinkIt 7697】實作小小的 MQTT Publish & Subscribe 若是要多點對多點傳輸資料,那使用 MQTT 即可快速的達成我們所需的目的

【C++】使用SFML製作讓方塊落下的畫面 從開啟新視窗延伸過來的應用(?),配合上一篇所使用到開啟一個可渲染視窗的那堆程式碼的延伸。

【Linux】[CentOS 8]如何更新sudo指令 上次會想要更新sudo這個指令的時間應該是2017年了吧?轉眼間就2021了耶

【ESXI & Oepnwrt】基本錯誤處理 Oepnwrt 為一個自由度超高的軟體,很多事情都能請其幫忙完成,但也因此很複雜,這邊簡單的介紹幾個錯誤的處理方式

【JDA/discord bot】如何獲得訊息中的圖片和影片並儲存或轉傳 如何將訊息中的圖片或影片之類的多媒體提取出來之後,再進行相關的處理

隨機好文

高捷少女:耐耐的新年驚喜③ 即使如此,夫人仍然每年都會問老爺是否能空出一週時間,但總是被回絕,除了前年以外。老爺答應夫人一定會排出空檔,他們在去年的二十三日前往澳洲。」耐耐嘆了口氣。「那一天的晚上,我打電話給媽媽時,她很高興地告

【歌評】蓮台野夜行 - 幻視之夜 ~ Ghostly Eyes 若有什麼是在聽到boss曲前的鋪襯,那一定就是每個系列的道中曲

【數學】徐氏數學簡明講義(三) 第二章 直線與園 P2.1-17 Q26 26.三角形的兩邊分別在二直線 x-3y+10=0 , 2x-y-8=0 上,且知第三邊中點為(3 , 2),求第三邊所

【影片心得&大意】(空中浩劫)法國航空4590號班機空難 一架飛機若會發生事故,那除了是飛機本身的故障或是飛行員的操作失誤,若前兩者都沒問題,是否有一些外在的因素參雜進來?

【英文作文】如何寫好英文作文 ~英文作文基本架構 從最簡單的英文作文框架開始下手,也就是俗稱的套公式,雖然很笨,但不失一個好辦法。