快轉到主要內容

Minecraft Fabric模組開發教學 #1 開發環境設定

分類   遊戲攻略 Minecraft
標籤   Minecraft Java Fabric Mod
🗓️ 民國110年 辛丑年
✍ 切換正體/簡體字
目錄

Fabric是Java版Minecraft的模組載入器,近年來發展快速、相容性佳的特性,使其成為Forge的強勁對手,很多人開始用這個製作模組。

開發模組,你需要具備以下知識:

  • 熟悉Java語法
  • 電腦能正常執行Minecraft  1.17.1
  • 會安裝fabric模組
  • 有用英語google錯誤訊息的能力

第一篇教學是設定開發環境,和製作一個只有圖示的空白模組,放到遊戲中測試。

一、開發環境設定
#

1.安裝AdoptOpenJDK 16。 1.17開發模組必備,如果有裝其他版本的Java,請自行調整環境變數"JAVA_HOME",確保目前作業系統都是使用Java 16。(參考: java 環境變數)

這裡使用AdoptOpenJDK而非Oracle公司發行的JDK,功能一樣,只是授權條款不同。

2.選擇一款IDE

IDE是開發程式碼的環境,好的IDE會在你打錯字告訴你,並提供很多方便的功能。在此我們選擇JetBrains發行的IntelliJ IDEA。

到官網的 下載頁面,下載安裝右邊黑色的Community免費版。

二、設定專案
#

1.從 Github將官方的"fabric mod"範本複製到電腦 (按Code→Download ZIP),解壓縮,將"fabric-example-mod-1.17"放到桌面。

2.開啟IDEA,點選右上角的"Open Project",選擇fabric範本的資料夾。

3.開啟之後,下面的Gradle會開始工作,等待訊息出現"BUILD SUCCESS",就表示完成了。 Gradle是一個自動化工具,能夠自動處理一些開發上的繁瑣操作。

4.從左邊的面板開啟"gradle.properties",設定模組名稱與JDK路徑。注意目前Minecraft版本的部分是1.17.1,其他版本請到fabric 網站查詢。 原本長這樣:

# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx1G

# Fabric Properties
	# check these on https://fabricmc.net/versions.html
	minecraft_version=1.17.1
	yarn_mappings=1.17.1+build.39
	loader_version=0.11.6

# Mod Properties
	mod_version = 1.0.0
	maven_group = com.example
	archives_base_name = fabric-example-mod

# Dependencies
	fabric_version=0.39.2+1.17

修改之後 ("#“開頭的是註解,自行刪除):

# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx1G
# 指定JDK路徑
org.gradle.java.home=C:/Program Files/Eclipse Foundation/jdk-16.0.2.7-hotspot

# Fabric Properties
	# check these on https://fabricmc.net/versions.html
	minecraft_version=1.17.1
	yarn_mappings=1.17.1+build.39
	loader_version=0.11.6

# Mod Properties
# 模組版本號取名:遊戲版本+模組版本
	mod_version = 1.17.1-0.0.1
# 以網站名稱命名如果沒有就電子郵件倒著寫例如"com.gmail.ivon"
	maven_group = net.mcbedev
# 模組ID
	archives_base_name = mymod

# Dependencies
	fabric_version=0.39.2+1.17

5.調整完之後,按File -> Close Project,關閉這個專案,接著重新開啟專案。

6.展開src/main/java資料夾,會發現範本已經提供了一個範例"net.fabricmc.example”。這就是Java中所謂的"package",你可以保留參考用,因為我們要用的專案應該跟上面gradle.properties檔案裡寫的一致。

7.對"java"資料夾按右鍵,New -> Package,輸入package的名稱,例如"net.mcbedev.mymod"

8.展開"resources"資料夾,開啟"fabric.mod.json",這個檔案是我們模組檔案的資料。 修改內容如下 (//是註解,一定要刪除):

{
  "schemaVersion": 1,
  //模組ID,必須獨一無二
  "id": "mymod",
  "version": "${version}",
  //模組名稱
  "name": "My Mod",
  //模組簡介
  "description": "My Fabric Mod.",
  //作者
  "authors": [
    "Ivon852"
  ],
  //聯絡資訊
  "contact": {
    "homepage": "https://twitter.com/ivon852",
    "sources": "https://github.com/FabricMC/fabric-example-mod"
  },
  //授權條款
  "license": "MIT",
  //模組圖示路徑
  "icon": "assets/mymod/icon.png",
  "environment": "*",
  //主程式路徑
  "entrypoints": {
    "main": [
      "net.mcbedev.mymod.Main"
    ]
  },
  //Mixin路徑
  "mixins": [
    "mymod.mixins.json"
  ],
  "depends": {
    "fabricloader": ">=0.11.3",
    "fabric": "*",
    "minecraft": "1.17.x",
    "java": ">=16"
  },
  "suggests": {
    "another-mod": "*"
  }
}

9.對"mixin.modid.json"按下右鍵,Refactor -> Rename,改名成"模組ID+mixins.json",在跳出的視窗按下Refactor。

10.開啟該檔案,輸入以下內容:

{
  "required": true,
  "minVersion": "0.8",
  "package": "net.mcbedev.mymod.mixin",
  "compatibilityLevel": "JAVA_16",
  "mixins": [
  ],
  "client": [
    "MymodMixin"
  ],
  "injectors": {
    "defaultRequire": 1
  }
}

11.對"net.mcebedev.mymod"右鍵 -> New -> New Java Class,取名為"Main",這就是主程式的類別。

12.在Main裡面輸入以下內容。整個模組的程式會從這裡開始,也就是onInitialize()方法來初始化模組的東西。System.out.println則是會在模組啟動時,於終端機顯示該行文字。

package net.mcbedev.mymod;

import net.fabricmc.api.ModInitializer;

public class Main implements ModInitializer {
    @Override
    public void onInitialize() {
        System.out.println("Hello Fabric world!");
    }
}

13.展開"net.fabricmc.example",拖曳"mixins"資料夾到"net.mcebedev.mymod"。會跳出視窗,按下Refactor。

14.這樣這個資料夾就會跑到我們的package下面。展開"mixins",對"ExampleMixin"按下右鍵,同樣Refactorr -> Rename,重新命名成"MyModMixin"。

15.接著來新增模組的圖示。模組的圖示要放在/resources/assests/mymod/裡面。因此將"assests"展開,對"assests.modid"按右鍵Refactor,改名成"mymod"。

16.可以看到裡面已經有一個"icon.png"的範例圖片了,這就是模組圖示。按右鍵 -> Open in -> Explorer,接著檔案總管就會開啟,跳出這個檔案的所在位置。你可以把這個圖片改成自己喜歡的,名字仍然叫做"icon.png"。

17.到這邊為止,我們已經完成了一個空白模組!什麼都沒有,但至少fabric可以讀取到這個模組。

三、測試模組
#

要測試模組有以下二種方法:

以Minecraft實例測試模組
#

直接在IDEA中啟動Minecraft,fabric會自動載入目前開發中的模組。 這裡的Minecraft是獨立的,資料放在專案資料夾/run裡面,因此不用擔心會影響到Minecraft啟動器的資料。 1.點選右上角的綠色播放按鈕,啟動Minecraft Client。

2.終端機會開啟,開始啟動Minecraft。 如果你眼睛夠利的話,會看到這條訊息,就是剛剛在Main.java裡面寫的訊息成功顯示出來了。

3.成功開啟Minecraft後,毫無反應,因為fabric預設沒有介面顯示你裝了那些模組。 但為方便以後測試模組,你可以先創造一個世界。 退出遊戲後,終端機會顯示程式結束。接著來看如何將模組放到真正的Minecraft中測試。

實際放到Minecraft中測試
#

將你的模組打包成.jar檔,變成一般fabric模組,透過Minecraft啟動器來正式載入你的模組。

1.展開右邊的Gradle。展開"Task"-> “build”,對build按二下,就會開始打包。

2.打包好的檔案會放在/build/libs/,後面沒有dev或sources的就是一個可以使用的模組檔案,也就是"mymod-1.17.1-0.0.1.jar"

3.就像正常安裝fabric模組一樣,用檔案管理器將這個檔案移動到.minecraft/mods/資料夾。 在啟動Minecraft之前,請確定已經有安裝 Fabric API Mod Menu這二個模組,前者為必須,因為這個範本需要依賴Fabric API才能運作。

4.啟動之後,就會看到我們的模組顯示在模組列表中了。

參考資料/延伸閱讀
#

Fabric WIKI

相關文章

Minecraft Fabric模組開發教學 #1 開發環境設定 Visual Studio Code
分類   遊戲攻略 Minecraft
標籤   Minecraft Java Fabric Mod
如何反編譯Minecraft和查看原始碼 (fabric + loom)
分類   遊戲攻略 Minecraft
標籤   Minecraft Java Fabric Mod
Fabric + Geckolib模組新增生物實體教學
分類   遊戲攻略 Minecraft
標籤   Fabric Mod BlockBench

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。