所以我刚开始使用Forge。我只是有一个非常简单的示例mod用于学习目的。当我使用gradlew build
导出mod时,一切正常,它将mod放入伪造的build\libs
文件夹中。但是,该文件的名称为modid-1.0
。现在我很确定我在mcmod.info文件中对mod进行了不同的命名。为什么要这样做,我该如何改变呢?此外,即使mod正确运行,(我的世界发射器控制台打印声明),但是当我点击我的mod的主菜单中的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": []
}
]
Mod源代码:
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文件放入我的文件的mods文件夹中并运行mod。