第三章:真正弄清楚一個Mod的組織結構

<基於1.8 Forge的Minecraft mod製作經驗分享>

首先看看一個mod的文件結構,懂Java的應該都看得懂:

src/main/
            --java/com.xxxxxxxx.xxx/
                                        ----block/
                                        ----item/
                                        ......
                                        ----xxx.java
            --resources/assets/xxx/
                                        ----blockstates/
                                        ----lang/
                                        ----models/
                                        ----textures/
                                        ----mcmod.info


可以看到在main文件夾下,有java、resources兩個文件夾,前者放Java源碼,後者存放要用到的資源,現在開始具體介紹:

  1. 首先,你需要一個用@Mod(modid = xxxx, version = xxxx)這個註解標識的Java主類作爲入口,對應上圖的xxx.java。Forge會根據這個註解識別到它。modid是你的mod的Id,即一個唯一標識你的mod的字符串,記得小寫,version是版本號,一個形如1.0.0的String。一般建議把這兩個String作爲常量定義主類裏,方便隨後的調用。

    然後,你需要用@EventHandler註解標註幾個方法,使這個主類能夠真正的在Forge運行時做一些事情。這個註解是根據其標註的方法的參數來工作的,這裏有三個基本的參數:FMLPreInitializationEvent、FMLInitializationEvent、FMLPostInitializationEvent。這三個參數其實是三個事件,Forge會在MC開始時依次執行這三個事件。關於它們的具體分工我發現很難說清楚,還是在之後用到的時候再細說吧。

    在我的鬥羅大(大)陸(坑)mod裏,主類是長這樣的:

    @Mod(modid = DouroMod.MODID, version = DouroMod.VERSION)
    public class DouroMod
    {
        /**ModInfo*/
        public static final String MODID = "douromod";
        public static final String VERSION = "0.0.0";
    
        ......
        ......
    
        @EventHandler
        public void preInit(FMLPreInitializationEvent event)
        { ...... }
    
        @EventHandler
        public void init(FMLInitializationEvent event)
        { ...... }
    
        @EventHandler
        public void postInit(FMLPostInitializationEvent event)
        { ...... }
    }


  2. 然後你需要對你的mod做一個描述,這部分內容在上圖中的mcmod.info裏面完成。裏面的modid、name、description等等都是顧名思義的,填上就行。需要注意version、mcversion別動,看得出那是佔位符吧,是由gradle搞定的,不需要你寫。另外,如果想要輸中文並正常顯示的話,需要把文件編碼調整爲GBK而不是UTF-8,有點奇怪對吧,所以建議別用中文,除非你想讓外國友人看到亂碼。

  3. 現在你的mod主類已經建立,並且用@Mod申明瞭mod的Id和Version,也爲你的mod添加了描述信息。但你還需要在build.gradle裏面同步的修改它們。在工程目錄下找到build.gradle並打開,可以看到裏面其實寫的很詳細,你需要改什麼,不應該動什麼。關鍵是把version = ""裏面改爲你的mod版本號,group = ""裏面寫你的包名com.xxxxxxxx.xxx,archivesBaseName = ""裏面寫mod的Id。

好了,運行試試看,在mod選項裏是不是已經看到了你的mod以及的描述信息了呢?我的Github鏈接https://github.com/zhengxiaoyao0716/DouroMod,快來一起做啊

第三章:真正弄清楚一個Mod的組織結構

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章