[精讚] [會員登入]
883

【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

你可能感興趣的文章

【Wildfly/jBoss】[Linux] 如何從無到有建立Wildfly網頁伺服器 包含一切所需的指令

【Docker hub】[Linux]以IPv6來pull容器(container)吧! 在一個 IPv6 還不盛行的年代,做事情總是特別麻煩

【自製-製作epub輔助工具】(Sigil) content產生器 能交給程式快速結束的地方就不要自己手動浪費時間了吧。

【PaperMC - API】如何發送指令到伺服器內 How to sending or executing commands to server

【C++】class練習 — 檢測該字串是否為迴圈 第一次的C++結構式寫法,雖然以後應該會見怪不怪,但畢竟是第一次所以還是想保存下來

【C】(%c, %d)解決讀取字元時的緩衝區殘留 不解決就會莫名其妙地冒出一些莫名其妙的東西

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

【開箱】高捷少女collection總集篇1 由希萌創意寄來的大包裹!裡面究竟有什麼呢?小編就帶大家來看看!

高捷少女:購票大作戰① 「各位乘客,本班機即將降落,感謝各位乘客的搭乘……」隨著空中小姐的廣播音,那架飛機逐漸降落在地面,裡面的乘客們也紛紛開始整理自己的行李。 那個有著歐美人五官的少女抓緊包包,看著外面的小港機場,臉上緩緩

高捷少女:美麗島的守護者⑤  雖然暫時不用怕牠們了,可是一直躲在這裡終究不是辦法,小雅心想。她看看四周,這間更衣室沒有窗戶或後門,她不禁著急起來,不可能一直躲在這裡面,但從門出去只會被群貓圍攻而已。小雅低下頭苦思該怎麼辦,過了不

高捷少女:耐耐的新年驚喜(終) 他的話說到一半,便被一陣響亮的哭聲打住了,是從產房中的傳來的。聽起來就像嬰兒的哭聲。 婕兒、小穹跟艾米也被哭聲吵醒,婕兒揉揉眼睛,看向呆若木雞的耐耐父女。「剛剛的聲音,該不會是……」

【歌評】蓮台野夜行 - 少女秘封倶楽部 少女秘封俱樂部 我們的主角終於出場啦!這首歌一反蓮台野夜行的固有風格,總是華麗的開始又華麗的結束!