所以我刚开始使用 Forge。我只有一个非常简单的示例 mod 用于学习目的。当我使用 导出模组时gradlew build
,一切正常,它会将模组放入 forge 的build\libs
文件夹中。但是,文件的名称是modid-1.0
. 现在我很确定我在我的 mcmod.info 文件中以不同的方式命名了这个 mod。为什么要这样做,我该如何更改?此外,即使 mod 运行正确(Minecraft 启动器控制台会打印该语句),但是当我单击 minecraft 主菜单中的 mods 选项卡时,我的 mod 不会显示。
另外,另一个问题,它实际上将两个文件生成到build\libs
. 一个称为 modid-1.0,另一个称为 modid-1.0-sources。我要使用哪一个(意思是我将哪一个放入 .minecraft/mods 文件夹)
我的 mcmod.info 文件
[
{
"modid": "myexamplemod",
"name": "Example Mod",
"description": "Example placeholder mod.",
"version": "1.0",
"mcversion": "1.8.8",
"url": "",
"updateUrl": "",
"authorList": ["ExampleDude"],
"credits": "The Forge and FML guys, for making this example",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]
模组源代码:
package com.example.examplemod;
import net.minecraft.init.Blocks;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
public class ExampleMod
{
public static final String MODID = "myexamplemod";
public static final String VERSION = "1.0";
@EventHandler
public void init(FMLInitializationEvent event)
{
// some example code
//while(true) {
for(int x = 0; x < 100; x++) {
System.out.println("My Mod Says: DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName());
}
//}
}
@EventHandler
public static void postInit(FMLPostInitializationEvent event) {
//while(true) {
System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName());
//}
}
}
我知道出于测试目的,我可以使用控制台命令 gradlew 运行它runClient
,但我希望能够以正常方式为用户执行此操作,我可以将 jar 文件放入 minecraft 的 mods 文件夹并运行 mod。