当前位置: 首页 > 知识库问答 >
问题:

如何在Minecraft Forge(Forge Gradle 3)中添加另一个具有mod的源集?

羊舌高爽
2023-03-14

我有一个在Forge dev环境中制作的库,一个在main源码集中,包含库代码;另一个在testmod(或任何其他名称)源码集中,包含需要作为锻造mod。

简单地添加

sourceSets {
    testmod {
        compileClasspath += sourceSets.main.output
        runtimeClasspath += sourceSets.main.output

        java {
            srcDir "src/testmod/java"
        }
        resources {
            srcDir "src/testmod/resources"
        }
    }
}

进入我的构建。gradle,Forge不会扫描源代码集,因此不会加载我的mod。如何让Forge加载我的mod?

请注意,我的mod是在Forge 1.14.4中,这应该适用于Forge Gradle 3的所有版本。

共有1个答案

法和硕
2023-03-14

Forge通过minecraft/run部分中声明的mod加载mod。您需要添加以下行以使Forge扫描mods的testmod源代码集。

minecraft {
    // ...
    runs {
        client {
            // ...
            mods {
                mainmodid {
                    source sourceSets.main
                }
                testmodid {
                    source sourceSets.testmod
                }
            }
        }

        server {
            // ...
            mods {
                mainmodid {
                    source sourceSets.main
                }
                testmodid {
                    source sourceSets.testmod
                }
            }
        }
    }
}

mainmodidtestmodid替换为您自己的modid。mainmodid应作为examplemod包含在MDK中。

虽然这确实会让Forge加载你的类,但是它不能正确地找到你的mods.toml(取决于ForgeGradle版本)。如果您遇到加载错误,说在mods.toml中找不到测试mod,请也添加以下代码片段

processResources {
    from(sourceSets.testmod.resources.srcDirs) {
        include "META_INF/mods.toml"
    }
}

另外,简单地添加源代码集testmod不会自动添加Forge和Minecraft作为它的依赖项。您还需要添加

configurations {
    testmodCompile.extendsFrom(compile)
    testmodCompileOnly.extendsFrom(compileOnly)
    testmodRuntimeOnly.extendsFrom(runtimeOnly)
}

要使Gradle添加Forge和Minecraft(testmodCompile中的testmod是源代码集名称,请参阅Gradle文档)。

 类似资料:
  • 问题内容: 我打算开发一个可在内显示一些动态数据的应用程序。所以我决定 在main中添加一个 。这是我的应用程序代码: 我的主要活动: 它是布局文件: 在这个rec​​yclerView内部还有另一个: 他们的适配器Main(RAdapter): 和第二个适配器: 我的问题是:正如您在CAdapter中看到的那样,仅显示构造函数的Log消息。 更新:如果有另一种方法可以在另一张动态卡中显示某些动态

  • 我想将集成测试添加到我的Gradle构建(版本1.0)中。它们应该与我的正常测试分开运行,因为它们需要将webapp部署到localhost(它们测试那个webapp)。测试应该能够使用在我的主源集中定义的类。我该怎么做?

  • 假设一组简单的项目a、B、C,每个项目都需要使用相同的公共项目Z。所有部分都在持续开发中。 这适用于Z类中的一个简单形式。 但是,假设我们从SwingX或其他非标准库中向类Z的表单添加组件。这个自动将相应的库依赖项添加到项目Z中。我们可以通过直接运行Z.main()来测试Z--工作得很好。但是,如果我们现在重新编译并运行a.main(),就会抛出一个异常:找不到SwingX(或其他)库。 这可以通

  • 我目前正在尝试为游戏创建GUI。我有一个JFrame,第一个面板上有多个按钮。点击一下后,我应该换一下面板。我创建了第一个类,它是一个框架 这个类包含使我们改变面板的按钮。为此,我在不同的类中创建了面板,扩展了JPanel。它起作用了,但我被阻止了,因为在第二个面板中,我仍然需要参考其他面板,但我无法再访问我的初始JFrame。 举例说明:这就是我如何从不同的JPanel切换。“this”指的是我

  • 我有一个活动选项卡的自动播放选项卡类current,这意味着当该选项卡活动时, 有一个名为current的类。现在我要向第一个子 添加不同的类 null null