Harbinger - 面向中文社区的 1.12.2 Forge Mod 开发指南
Harbinger - 面向中文社区的 1.12.2 Forge Mod 开发指南
Mybbs —— 开源MC社区Harbinger - 面向中文社区的 1.12.2 Forge Mod 开发指南
简介
欢迎阅读《Harbinger - 面向中文社区的 1.12.2 Forge Mod 开发指南》。本指南旨在帮助开发者快速入门并掌握在Minecraft 1.12.2版本上使用Forge进行Mod开发的基本知识和技巧。
目录
环境搭建
在开始开发之前,首先需要搭建开发环境。
工具准备
- JDK:下载并安装Java Development Kit(JDK),推荐使用JDK 8。
- IDE:推荐使用IntelliJ IDEA或Eclipse作为集成开发环境(IDE)。
- Minecraft Forge:下载适用于1.12.2版本的Minecraft Forge开发包。
设置开发环境
- 下载并解压Minecraft Forge MDK(Mod Development Kit)。
- 使用IDE打开解压后的项目文件夹。
- 配置项目SDK,确保使用JDK 8。
- 在项目根目录打开终端,运行以下命令以初始化项目:
1
2
3gradlew setupDecompWorkspace
gradlew eclipse // 如果使用Eclipse
gradlew idea // 如果使用IntelliJ IDEA
创建第一个Mod
创建项目结构
在src/main/java
目录下创建您的包结构,例如com.example.harbinger
。
编写主类
创建一个主类并使用@Mod
注解标记,这是您的Mod的入口点。```
package com.example.harbinger;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
@Mod(modid = Harbinger.MODID, name = Harbinger.NAME, version = Harbinger.VERSION)
public class Harbinger {
public static final String MODID = “harbinger”;
public static final String NAME = “Harbinger”;
public static final String VERSION = “1.0”;
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
// 初始化代码
}
}
1 |
|
package com.example.harbinger.items;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public class ItemExample extends Item {
public ItemExample() {
setUnlocalizedName(“example_item”);
setRegistryName(“example_item”);
setCreativeTab(CreativeTabs.MISC);
}
}
1 |
|
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
GameRegistry.register(new BlockExample());
}
1 |
|
gradlew build
构建完成后,您的Mod JAR文件将位于`build/libs`目录下。
## 常见问题
1. **Mod加载失败** :检查`@Mod`注解中的`modid`是否唯一且正确。
2. **物品或方块无法显示** :确保注册代码在`preInit`阶段执行,并且资源文件路径正确。
## 参考资料
* [Minecraft Forge 官方文档](https://mcforge.readthedocs.io/en/latest/)
* [MCBBS - 我的世界中文论坛](https://www.mcbbs.net/)
* [Forge 1.12.2 示例代码](https://github.com/MinecraftForge/MinecraftForge/tree/1.12.x)
<div id="lv-container" data-id="city" data-uid="MTAyMC81OTg1MC8zNjMxMg==">
<script type="text/javascript">
(function(d, s) {
var j, e = d.getElementsByTagName(s)[0];
if (typeof LivereTower === 'function') { return; }
j = d.createElement(s); j.src = 'https://cdn-city.livere.com/js/embed.dist.js'; j.async = true;
e.parentNode.insertBefore(j, e);
})(document, 'script');
</script>
</div>