[精讚] [會員登入]
256

【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/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

你可能感興趣的文章

【Wicket】[Cookie]如何讀取和設定客戶端的Cookie 對於某些參數需要給予使用者,我們可以使用 Cookie 來讓客戶端記著,之後再跟伺服器裡的比對來達到驗證的目的

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

【Discord bot 2.0.1】(discord.ui.View)如何將舊機器人升級至目前最新版本 很多時候升級軟體是為了讓別人覺得你的程式很先進,但這次卻是因為要使用某個新功能

【Maven】用Maven來託管Wildfly/jBoss的部屬(deploy)、解部屬(undeploy) 極簡版,給未來想要抄作業的小編自己,完整的一切設定檔,可以依照個人需求作增刪。

【Python3】[Django] (Windows / Liunx) 如何從零開始創建一個網站 除了最基本的運作以外,還小小的加上了如何自導向特定目錄。

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

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

高捷少女:小穹與果仁巧克力㊤ 阿敏突然輕笑一聲,從櫃臺拿來一個塑膠餐盒,打開給大家看。「這是小穹烤的餅乾,妳們吃吃看就知道她為什麼不想講了。」小穹變得緊張起來。「阿敏,妳怎麼還留著呀?」艾米莉亞、婕兒與耐耐各自拿了一塊,把夾著奶油

高捷少女:小穹與果仁巧克力㊥ 艾咪臉上泛起笑容說:「妳知道嗎?就跟花語一樣,每一種巧克力也都有各自的涵義:薄荷巧克力代表初戀;卡通巧克力代表天真爛漫;而果仁巧克力代表的是窩心,還有想陪伴對方的心情,這在德國是女生之間在慶生時會彼此

高捷少女:地下城的探險少女② 「等我一下喔,我好像有帶去漬的清潔噴霧。」婕兒翻翻飛揚,拿出噴霧劑給小穹,小穹趕緊對著汙漬噴了噴,紅茶漬果然乾淨了許多。「婕兒,謝謝妳。來,還妳。」小穹感謝地把噴霧還給她,卻發現婕兒盯著打開的飛揚,一

高捷少女:美麗島的守護者① 婕兒跟耐耐嚇得臉色發白。「耐耐,小穹有這方面的愛好喔?」婕兒小聲地說。耐耐默默的拿出筆記本,臉上浮現一層微笑:「這麼大的新聞,要趕快記下來!」

高捷少女:美麗島的守護者③ 小雅閉上眼睛,思索在高捷發生的點點滴滴。她心意已決,在高捷的日子的確也有快樂的部分,不過她相信換個方向是更好的決定。有關高捷的所有美好回憶,小雅決定保留在心裡就好,繼續在高捷工作只會讓自己更痛苦而已,