在这章开始前我们先修改一下信息打开build.gradle
找到
version = "1.0"
group = "com.yourname.modid"
archivesBaseName = "modid"
version = ‘1.0’ :模组的版本号(版本的标识号,Maven的版本号规则,语义化版本)。
archivesBaseName = ‘modid’ :这个关联到你最后导出的Jar文件名,直译过来是“归档基本名称”。
了解了意思,大家就应该知道要填什么了吧!
[info] version = ‘ [这里填模组版本号] ‘
group = ‘ [填GroupID,要根据你的文件夹填,在工程文件夹(MDK)下的src\main\java下] ‘
archivesBaseName = ‘ [填模组ID] ‘
- group:java文件夹下你可以找到
com\example\examplemod
,这是默认的,但我建议重命名为com\[作者名]\[模组ID]
(这个不是一个文件夹的名称,在com下的example文件夹重命名为[作者名],重命名后这个文件夹下的examplemod重命名为模组ID),比如我填的是com.tangguo.pe
(每个文件夹名之间用点隔开)。tangguo就是我的名字,pe就是我的模组ID的缩写。那么我的文件夹名就是com\tangguo\pe
- 模组ID是什么:该模组的唯一标识符,不要填写出英文字母与一些半角符号(_)外的其他字符(空格替换为下划线)。必须全小写字母且不得超过64个字符。
(除了模组的本地化外都不要写中文与特殊字符)
修改为
version = "1.0"
group = "com.wzhrdx.xenoage"
archivesBaseName = "xenoage"
在这篇教程里我将哪出我写的模组的一部分进行讲解
那么废话不多说,我们开始正题,本人使用的是IDEA
新建一个主类
这里我们直接双击ipr
文件,然后IDEA就会导入工程了,这里在scr/main/java/
下新建一个包com.wzrdx.XenoAge
然后创建一个java类XenoAge
,代码如下
package com.wzhrdx.XenoAge;
import net.minecraft.init.Blocks;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import org.apache.logging.log4j.Logger;
@Mod(modid = XenoAge.MODID, name = XenoAge.NAME, version = XenoAge.VERSION, acceptedMinecraftVersions = "1.12.2")
public class XenoAge {
public static final String MODID = "xenoage";
public static final String NAME = "Xeno Age";
public static final String VERSION = "1.0.0";
private static Logger logger;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event)
{
logger = event.getModLog();
}
@Mod.EventHandler
public void init(FMLInitializationEvent event)
{
// some example code
logger.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
}
}
@Mod(modid = “XenoAge”,name = “XenoAge”,version=”1.0”)//modid是Mod的唯一标识符(ID),name是Mod的名称,version是Mod的版本
@Mod.EventHandler 则标识了三个FML事件,三个方法分别对应三个事件,调用proxy的对应方法。
- 含有
FMLPreInitializationEvent
参数的方法(这里是preInit
)在所有Mod初始化之前调用,这时候应该加载配置文件,实例化物品和方块,并注册它们。
- 含有
- 含有
FMLInitializationEvent
参数的方法(这里是init
)用于该Mod的初始化,这时候应该为Mod进行设置,如注册合成表和烧炼系统,并且向其他Mod发送交互信息。
- 含有
- 含有
FMLPostInitializationEvent
参数的方法(这里是postInit
)在所有Mod都初始化之后调用,这时候应该接收其他Mod发送的交互信息,并完成对Mod的设置。
- 含有
这样我们就完成第一步了
完善你的mod信息
打开src/main/resources/mcmod.info
[
{
"modid": "examplemod",
"name": "Example Mod",
"description": "Example placeholder mod.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["ExampleDude"],
"credits": "The Forge and FML guys, for making this example",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]
修改如下
[
{
"modid": "xenoage",
"name": "Xeno Age",
"description": "It's a 1.12.2 mod",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["wzhrdx"],
"credits": "The Forge and FML guys, for making this example",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]