pluginManagement { repositories { maven { name "Fabric" url "https://maven.fabricmc.net/" } // TODO: Stop using Forge for versions with NeoForged maven { name "Forge" url "https://maven.minecraftforge.net/" } maven { name "Neoforged" url "https://maven.neoforged.net/releases/" } maven { name "Architectury (Better Forge because regular Forge is annoying)" // TODO: Once we switch to NeoForge, would it's gradle work better? or will it have Forge's problems in it url "https://maven.architectury.dev/" } maven { name "Quilt" url "https://maven.quiltmc.org/repository/release" } maven { // Used for Vanilla Minecraft's libraries name "Sponge" url "https://repo.spongepowered.org/repository/maven-public/" } mavenCentral() gradlePluginPortal() // Not needed, but useful for debugging gradle plugins mavenLocal() } } // Loads the version.properties def loadProperties() { def defaultMcVersion = "1.20.1" // 1.20.1 is our current most stable version so we use that if no version was defined def mcVersion = "" def mcVers = fileTree("versionProperties").files.name // Get all the files in "versionProperties" for (int i = 0; i < mcVers.size(); i++) { mcVers[i] = mcVers[i].replaceAll("\\.properties", "") // As we are getting the file names, we should remove the ".properties" at the end to get the versions } mcVers.sort() // Sort so it always goes from oldest to newest int mcIndex = -1 println "Avalible MC versions: ${mcVers}" if (hasProperty("mcVer")) { mcVersion = mcVer mcIndex = mcVers.indexOf(mcVer) } if (mcIndex == -1) { println "No mcVer set or the set mcVer is invalid! Defaulting to ${defaultMcVersion}." println "Tip: Use -PmcVer=\"${defaultMcVersion}\" in cmd arg to set mcVer." mcVersion = defaultMcVersion mcIndex = mcVers.indexOf(defaultMcVersion) assert mcIndex != -1 } println "Loading properties file at " + mcVersion + ".properties" def props = new Properties() props.load(new FileInputStream("$rootDir/versionProperties/"+"$mcVersion"+".properties")) props.each { prop -> gradle.ext.set(prop.key, prop.value) // println "Added prop [key:" + prop.key + ", value:" + prop.value + "]" } gradle.ext.mcVers = mcVers gradle.ext.mcIndex = mcIndex } loadProperties() // Minecraft independent sub-projects include("core") project(":core").projectDir = file('coreSubProjects/core') include("api") project(":api").projectDir = file('coreSubProjects/api') // Minecraft dependent sub-projects include("common") // Enables or disables the subprojects depending on whats in the versionProperties/mcVer.properties for (loader in ((String) gradle.builds_for).split(",")) { include(loader.strip()) // Strip it in case a space is added before or after the comma } //if (gradle.builds_for.contains("fabric") || gradle.builds_for.contains("quilt")) // include("fabricLike") rootProject.name = "DistantHorizons"