Harbinger - 面向中文社区的 1.12.2 Forge Mod 开发指南

Harbinger - 面向中文社区的 1.12.2 Forge Mod 开发指南

简介

欢迎阅读《Harbinger - 面向中文社区的 1.12.2 Forge Mod 开发指南》。本指南旨在帮助开发者快速入门并掌握在Minecraft 1.12.2版本上使用Forge进行Mod开发的基本知识和技巧。

目录

  1. 环境搭建
  2. 创建第一个Mod
  3. 基础Mod结构
  4. 注册物品和方块
  5. 添加自定义功能
  6. 调试与发布
  7. 常见问题
  8. 参考资料

环境搭建

在开始开发之前,首先需要搭建开发环境。

工具准备

  1. JDK:下载并安装Java Development Kit(JDK),推荐使用JDK 8。
  2. IDE:推荐使用IntelliJ IDEA或Eclipse作为集成开发环境(IDE)。
  3. Minecraft Forge:下载适用于1.12.2版本的Minecraft Forge开发包。

设置开发环境

  1. 下载并解压Minecraft Forge MDK(Mod Development Kit)。
  2. 使用IDE打开解压后的项目文件夹。
  3. 配置项目SDK,确保使用JDK 8。
  4. 在项目根目录打开终端,运行以下命令以初始化项目:
    1
    2
    3
    gradlew 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

## 基础Mod结构

### `@Mod`注解

`@Mod`注解用于声明Mod的基本信息,如`modid`、`name`和`version`。这些信息会在游戏启动时显示,并用于识别Mod。

### 事件处理方法

使用`@Mod.EventHandler`注解标记方法以处理不同的生命周期事件,例如初始化(`FMLInitializationEvent`)。

## 注册物品和方块

### 注册物品

创建一个新的物品类,并在初始化方法中注册该物品。

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
2
3
4
5
6
7
8
9
10
11
12
13
14

@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
GameRegistry.register(new ItemExample());
}

`



### 注册方块

创建一个新的方块类,并在初始化方法中注册该方块。

@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
GameRegistry.register(new BlockExample());
}

1
2
3
4
5
6
7
8
9
10
11

## 调试与发布

### 调试

在IDE中配置运行环境,使用`gradlew runClient`命令启动游戏进行调试。

### 发布

使用以下命令构建您的Mod包:

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>