所以我才开始使用Forge。我只是有一个非常简单的示例mod,用于学习目的。当我使用gradlew build导出mod时,一切正常,它将mod放入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": []
}
]


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文件放置到minecraft的mods文件夹中并运行mod 。

最佳答案

该文件的名称为modid-1.0,因为您需要在build.gradle文件中进行更改。它位于主目录中。将其打开,大约在中途,您将看到一些条目

version = "1.0-whatever-you-want"
group= "com.mymod.examplemod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "yourModName"


将其更改为所需的内容,然后在构建mod时将使用它们来创建.jar文件。

就制作的两个jar而言,modid-1.0-sources是mod的反混淆版本。您只能在开发环境中使用此代码。基本上,如果我想将您的mod用作依赖项,则需要-sources版本。另一个modid-1.0.jar是您要分配给其他玩家的那个

07-24 09:38