我的世界mod开发1.2主类和mod信息

Wzhrdx 发布于

在这章开始前我们先修改一下信息打开build.gradle找到

1
2
3
4
5
version = "1.0"

group = "com.yourname.modid"

archivesBaseName = "modid"

了解了意思,大家就应该知道要填什么了吧!

[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个字符。

(除了模组的本地化外都不要写中文与特殊字符)

修改为

1
2
3
4
5
version = "1.0"

group = "com.wzhrdx.xenoage"

archivesBaseName = "xenoage"

在这篇教程里我将哪出我写的模组的一部分进行讲解

那么废话不多说,我们开始正题,本人使用的是IDEA

新建一个主类

这里我们直接双击ipr文件,然后IDEA就会导入工程了,这里在scr/main/java/下新建一个包com.wzrdx.XenoAge

然后创建一个java类XenoAge,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[

{

"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": []

}

]

修改如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[

{

"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": []

}

]