为什么我的 Forge mod 出口标题不正确并且没有出现在 Minecraft Forge 的 mod 标签中?

Why are my forge mod exports titled incorrectly and don't show up in minecraft forge's mods tab?

所以我刚开始使用 Forge。我只是有一个非常简单的例子 mod 用于学习目的。当我使用 gradlew build 导出 mod 时,一切正常,它将 mod 放入 forge 的 build\libs 文件夹中。但是,文件的名称是 modid-1.0。现在我很确定我在我的 mcmod.info 文件中以不同的方式命名了 mod。为什么要这样做,我该如何改变它?此外,即使 mod 运行s 正确,(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 文件。

就制作的两个罐子而言,modid-1.0-sources 是您的 mod 的去混淆版本。您只会在开发环境中使用这个。基本上,如果我想使用你的 mod 作为依赖项,我会想要 -sources 版本。另一个 modid-1.0.jar 是您想要分发给其他玩家的那个