Как добавить еще один исходный набор с модом в Minecraft Forge (Forge Gradle 3)? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть библиотека, созданная в среде Forge dev, одна находится в исходном наборе main, содержащем код библиотеки; другой находится в исходном наборе testmod (или любом другом имени), содержащем тестовый код, который необходимо загрузить как мод Forge.

Просто добавьте

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

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

в мой build.gradle Forge не сканирует исходный набор и поэтому не загружает мой мод. Как я могу заставить Forge загрузить мой мод?

Обратите внимание, что мой мод в Forge 1.14.4, и это должно относиться ко всем версиям с Forge Gradle 3.

1 Ответ

0 голосов
/ 08 апреля 2020

Подделать загрузки модов через моды, объявленные в разделе minecraft / run. Вам нужно будет добавить следующие строки, чтобы Forge сканировал исходный набор testmod для модов.

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

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

Замените mainmodid и testmodid вашими собственными модами. mainmodid должен быть включен в MDK как examplemod.


Хотя это и заставляет Forge загружать ваши классы, он не сможет правильно найти ваш mods.toml (зависит от ForgeGradle версия). Если вы сталкиваетесь с ошибками загрузки, говоря, что тестовый мод не найден в mods.toml, добавьте также следующий фрагмент

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 (testmod в testmodCompile - это имя исходного набора, см. Документацию Gradle).

...