diff --git a/.gitignore b/.gitignore index 9a08cc7ad..b6f0d8f7a 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,3 @@ Merged/ # file genearated via MC version switching using preprocessor build.properties - -# This accesswidener is generated at runtime ant not needed -common/src/main/resources/lod.accesswidener diff --git a/build.gradle b/build.gradle index b8543de69..2f95173ae 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,17 @@ plugins { - // Plugin to help in developing multi-loader mods - id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.0-SNAPSHOT" apply false + id "java" // Plugin to handle dependencies - id 'com.github.johnrengelman.shadow' version '7.0.0' apply false + id "com.github.johnrengelman.shadow" version '7.0.0' apply false // Plugin to create merged jars -// id "io.github.pacifistmc.forgix" version "1.2.6" + id "io.github.pacifistmc.forgix" version "1.2.6" + + // Manifold preprocessor + id "systems.manifold.manifold-gradle-plugin" version "0.0.2-alpha" // Provides mc libraries to core - id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' apply false +// id "org.spongepowered.gradle.vanilla" version '0.2.1-SNAPSHOT' apply false } /** @@ -20,10 +21,10 @@ plugins { * @param mcIndex array index of the currently active MC version */ def writeBuildGradlePredefine(List mcVers, int mcIndex) { - ArrayList redefineList = new ArrayList() + for (int i=0; i mcVers, int mcIndex) { } } - // build the list of preprocessors to use + // Build the list of preprocessors to use StringBuilder sb = new StringBuilder() - // check if this is a development build + sb.append("# DON'T TOUCH THIS FILE, This is handled by the build script\n") + + // Check if this is a development build if (mod_version.toLowerCase().contains("dev")) { // WARNING: only use this for logging, we don't want to have confusion // when a method doesn't work correctly in the release build. @@ -46,7 +49,7 @@ def writeBuildGradlePredefine(List mcVers, int mcIndex) { sb.append("=\n") } - // build the MC version preprocessors + // Build the MC version preprocessors for (String redefinedVersion : redefineList) { sb.append(redefinedVersion) sb.append("=\n") @@ -56,107 +59,89 @@ def writeBuildGradlePredefine(List mcVers, int mcIndex) { // Sets up the variables for Manifold in the code def loadProperties() { - def defaultMcVersion = "1.19.2" -// def defaultMcVersion = "1.19" // For now use 1.18.2 as default until 1.19 is done + def defaultMcVersion = "1.18.2" // 1.18.2 is our current most stable version so we use that if no version was defined + def mcVersion = "" - def mcVers = mcVersions.split(",") + 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: ${mcVersions}" + println "Avalible MC versions: ${mcVers}" if (project.hasProperty("mcVer")) { mcVersion = mcVer - mcIndex = Arrays.asList(mcVers).indexOf(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." + println "Tip: Use -PmcVer=\"${defaultMcVersion}\" in cmd arg to set mcVer." mcVersion = defaultMcVersion - mcIndex = Arrays.asList(mcVers).indexOf(defaultMcVersion) + mcIndex = mcVers.indexOf(defaultMcVersion) assert mcIndex != -1 } println "Loading properties file at " + mcVersion + ".properties" def props = new Properties() - props.load(new FileInputStream("$rootProject.rootDir/"+"$mcVersion"+".properties")) + props.load(new FileInputStream("$rootProject.rootDir/versionProperties/"+"$mcVersion"+".properties")) props.each { prop -> rootProject.ext.set(prop.key, prop.value) // println "Added prop [key:" + prop.key + ", value:" + prop.value + "]" } - writeBuildGradlePredefine(Arrays.asList(mcVers), mcIndex) - - // Stuff for access wideners - def mcVersionToAcsessWidenerVersion = [ - "1.16.5": "1_16", - "1.17.1": "1_17", - "1.18.1": "1_18", - "1.18.2": "1_18", - "1.19": "1_19", - "1.19.1": "1_19", - "1.19.2": "1_19" - ] - // Use this as sometimes multiple versions use the same access wideners - rootProject.ext.set("accessWidenerVersion", mcVersionToAcsessWidenerVersion.get(mcVersion)) + writeBuildGradlePredefine(mcVers, mcIndex) } + loadProperties() -// Sets up the accesswideners -def makeAccessWidener() { - def accessWidenerFile = project(":common").file("src/main/resources/lod.accesswidener") - if (accessWidenerFile.exists()) { - delete accessWidenerFile - } - - copy { - from project(":common").file("src/main/resources/${rootProject.accessWidenerVersion}.lod.accesswidener") - into project(":common").file("src/main/resources/") - rename "${rootProject.accessWidenerVersion}.lod.accesswidener", "lod.accesswidener" - } -} -makeAccessWidener() - -// Sets up the version string +// Sets up the version string (the name we use for our jar) rootProject.versionStr = rootProject.mod_version + "-" + rootProject.minecraft_version // + "-" + new Date().format("yyyy_MM_dd_HH_mm") +// Forgix settings (used for merging jars) +forgix { + group = "com.seibel.lod" + mergedJarName = "DistantHorizons-${rootProject.versionStr}.jar" + + forge { + jarLocation = "build/libs/DistantHorizons-${rootProject.versionStr}.jar" + } -// Merged jar settings -//forgix { -// group = "com.seibel.lod" -// mergedJarName = "DistantHorizons-${rootProject.versionStr}.jar" -// -// forge { -// jarLocation = "build/libs/DistantHorizons-${rootProject.versionStr}.jar" -// } -// -// fabric { -// jarLocation = "build/libs/DistantHorizons-${rootProject.versionStr}.jar" -// } -// -// removeDuplicate "com.seibel.lod.api" -// removeDuplicate "com.seibel.lod.core" -//} + fabric { + jarLocation = "build/libs/DistantHorizons-${rootProject.versionStr}.jar" + } -architectury { - minecraft = rootProject.minecraft_version + removeDuplicate "com.seibel.lod.api" + removeDuplicate "com.seibel.lod.core" } + subprojects { p -> - - // setup Architectury - if (p == project(":core") || p == project(":api")) { + // Does the same as "p == project(":common") || p == project(":fabric") || p == project(":quilt") || p == project(":forge")" + // Useful later on so we dont have duplicated code + def isMinecraftSubProject = p != project(":core") && p != project(":api") + + + // Apply plugins + apply plugin: "java" + if (isMinecraftSubProject) + apply plugin: "systems.manifold.manifold-gradle-plugin" + apply plugin: "com.github.johnrengelman.shadow" +// apply plugin: "org.spongepowered.gradle.vanilla" // Provides minecraft libraries + if (p == project(":core")) { apply plugin: "application" - apply plugin: "org.spongepowered.gradle.vanilla" // Provides minecraft libraries - apply plugin: "com.github.johnrengelman.shadow" - } else { - apply plugin: "com.github.johnrengelman.shadow" - apply plugin: "dev.architectury.loom" - - loom { - silentMojangMappingsLicense() - } } + + // Set the manifold version (may not be required tough) + manifold { + manifoldVersion = rootProject.manifold_version + } + + // set up custom configurations (configurations are a way to handle dependencies) configurations { // extends the shadowJar configuration @@ -166,84 +151,71 @@ subprojects { p -> customModule implementation.extendsFrom(customModule) - } - - // Set up the minecraft non-dependency for core sub-projects - if (p == project(":core") || p == project(":api")) { - minecraft { - version("${rootProject.minecraft_version}") - } - // Set the standalone jar entrypoint - // (This will point to a non-existent class in all sub-projects except "Core") + if (isMinecraftSubProject) { + // Shadow common + common + shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. + compileClasspath.extendsFrom common + runtimeClasspath.extendsFrom common + developmentForge.extendsFrom common + } + } + + + // Let the application plugin know where the main class is + // (This will point to a non-existent class in all sub-projects except "Core") + if (p == project(":core")) { application { mainClass.set('com.seibel.lod.core.jar.JarMain') } } dependencies { - //=====================// // shared dependencies // //=====================// // Manifold - annotationProcessor("systems.manifold:manifold-preprocessor:${rootProject.manifold_version}") + if (isMinecraftSubProject) + annotationProcessor("systems.manifold:manifold-preprocessor:${rootProject.manifold_version}") + + // Log4j + implementation("org.apache.logging.log4j:log4j-api:${rootProject.log4j_version}") + implementation("org.apache.logging.log4j:log4j-core:${rootProject.log4j_version}") + + // JOML + implementation("org.joml:joml:${rootProject.joml_version}") // JUnit tests implementation("org.junit.jupiter:junit-jupiter:5.8.2") implementation("org.junit.jupiter:junit-jupiter-engine:5.8.2") implementation("junit:junit:4.13") - + // Compression shadowMe("org.tukaani:xz:1.9") - shadowMe("org.apache.commons:commons-compress:1.21") // NightConfig (includes Toml & Json) shadowMe("com.electronwill.night-config:toml:${rootProject.nightconfig_version}") shadowMe("com.electronwill.night-config:json:${rootProject.nightconfig_version}") - if (p == project(":core")) { - // Theming - shadowMe("com.formdev:flatlaf:${rootProject.flatlaf_version}") - - // SVG - shadowMe("com.formdev:flatlaf-extras:${rootProject.flatlaf_version}") - shadowMe("com.formdev:svgSalamander:${rootProject.svgSalamander_version}") - } + // Theming + shadowMe("com.formdev:flatlaf:${rootProject.flatlaf_version}") + // SVG + shadowMe("com.formdev:flatlaf-extras:${rootProject.flatlaf_version}") + shadowMe("com.formdev:svgSalamander:${rootProject.svgSalamander_version}") + //==========================// // conditional dependencies // //==========================// - // The logic for buildForge can be made more succinct, but the readability goes way down. - def buildForge = true - if (gradle.startParameter.taskRequests.size() > 0) { - if (gradle.startParameter.taskRequests[0].args.size() > 0) { - if (gradle.startParameter.taskRequests[0].args[0].startsWith("fabric:")) { - buildForge = false - } - } - } - - // Minecraft dependent sub-projects - if (p == project(":common") || (buildForge && p == project(":forge")) || p == project(":fabric")) { - // Add Minecraft - minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" - // The following line declares the mojmap mappings & parchment mappings - mappings loom.layered() { - // Mojmap mappings - officialMojangMappings() - // Parchment mappings (it adds parameter mappings & javadoc) - parchment("org.parchmentmc.data:parchment-${rootProject.minecraft_version}:${rootProject.parchment_version}@zip") - } - } // Add core - if (p != project(":api") && p != project(":core")) { + if (isMinecraftSubProject) { implementation(project(":core")) { // Remove Junit test libraries exclude group: "org.junit.jupiter", module: "junit-jupiter" @@ -263,60 +235,72 @@ subprojects { p -> } } - // Allows the jar to run standalone + // Adds the standalone jar's entrypoint jar { + from "LICENSE.txt" manifest { - attributes 'Implementation-Title': rootProject.archives_base_name, + attributes 'Implementation-Title': rootProject.mod_name, 'Implementation-Version': rootProject.mod_version, 'Main-Class': 'com.seibel.lod.core.jar.JarMain' // When changing the main of the jar change this line } } // this can be un-commented if we ever wanted to make DH modular (AKA use a module-info.java file) again -// // Tells gradle where to look for other modules -// // Why isn't the classpath added to the modules path by default? -// if (p == project(":core")) { -// compileJava { -// inputs.property('moduleName', 'dhApi') -// doFirst { -// options.compilerArgs = [ -// '--module-path', classpath.asPath -// ] -// classpath = files() -// } -// } -// } + /* + // Tells gradle where to look for other modules + // Why isn't the classpath added to the modules path by default? + if (p == project(":core")) { + compileJava { + inputs.property('moduleName', 'dhApi') + doFirst { + options.compilerArgs = [ + '--module-path', classpath.asPath + ] + classpath = files() + } + } + } + */ // Run mergeJars when running build -// if (p != project(":api") && p != project(":api")) { -// build.finalizedBy(mergeJars) -// assemble.finalizedBy(mergeJars) -// } + if (isMinecraftSubProject) { + build.finalizedBy(mergeJars) + assemble.finalizedBy(mergeJars) + } } allprojects { p -> + // Does the same as "p == project(":common") || p == project(":fabric") || p == project(":quilt") || p == project(":forge")" + // Useful later on so we dont have duplicated code + def isMinecraftSubProject = p != project(":core") && p != project(":api") + + apply plugin: "java" - apply plugin: "architectury-plugin" apply plugin: "maven-publish" - archivesBaseName = rootProject.archives_base_name - version = rootProject.mod_version + archivesBaseName = rootProject.mod_name + version = project.name + "-" + rootProject.mod_version group = rootProject.maven_group + repositories { + // The central repo mavenCentral() + // Used for Google's Collect library // TODO: Attempt to remove this library + maven { url "https://repo.enonic.com/public/" } + // For parchment mappings maven { url "https://maven.parchmentmc.org" } // For Architectury API maven { url "https://maven.architectury.dev" } - // used to download and compile dependencies from git repos - maven { url 'https://jitpack.io' } + // For Git repositories + maven { url "https://jitpack.io" } // For Manifold Preprocessor - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } // Required for importing Modrinth mods maven { @@ -341,7 +325,7 @@ allprojects { p -> // Required for Mixins & VanillaGradle maven { url "https://repo.spongepowered.org/maven/" } - // Required for canvas + // Required for Canvas (mod) maven { url "https://maven.vram.io/" } // These 2 are for importing mods that arnt on CursedForge, Modrinth, GitHub, GitLab or anywhere opensource @@ -359,50 +343,68 @@ allprojects { p -> } } + // Adds some dependencies that are in vanilla but not in core + if (p == project(":core")) { + OperatingSystem os = org.gradle.nativeplatform.platform.internal.DefaultNativePlatform.currentOperatingSystem; - // Only uncomment this when testing stuff with lwjgl in the core jar -// if (p == project(":core")) { -// dependencies { -// project.ext.lwjglNatives = "natives-linux" -// -// implementation platform("org.lwjgl:lwjgl-bom:3.3.0") -// -// implementation "org.lwjgl:lwjgl" -// implementation "org.lwjgl:lwjgl-assimp" -// implementation "org.lwjgl:lwjgl-glfw" -// implementation "org.lwjgl:lwjgl-openal" -// implementation "org.lwjgl:lwjgl-opengl" -// implementation "org.lwjgl:lwjgl-stb" -// implementation "org.lwjgl:lwjgl-tinyfd" -// runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives" -// runtimeOnly "org.lwjgl:lwjgl-tinyfd::$lwjglNatives" -// implementation "org.joml:joml:1.10.2" -// } -// } + // Set the OS lwjgl is using to the current os + project.ext.lwjglNatives = "natives-" + os.toFamilyName() + + dependencies { + // Imports most of lwjgl's libraries (well, only the ones that we need) + implementation platform("org.lwjgl:lwjgl-bom:${rootProject.lwjgl_version}") + + implementation "org.lwjgl:lwjgl" + implementation "org.lwjgl:lwjgl-assimp" + implementation "org.lwjgl:lwjgl-glfw" + implementation "org.lwjgl:lwjgl-openal" + implementation "org.lwjgl:lwjgl-opengl" + implementation "org.lwjgl:lwjgl-stb" + implementation "org.lwjgl:lwjgl-tinyfd" + runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives" + runtimeOnly "org.lwjgl:lwjgl-tinyfd::$lwjglNatives" + implementation "org.joml:joml:${rootProject.joml_version}" + + + // Some other dependencies + // TODO: Attempt to remove some of these dependencies from the core + implementation("org.jetbrains:annotations:16.0.2") + implementation("com.google.code.findbugs:jsr305:3.0.2") + implementation("com.google.common:google-collect:0.5") + implementation("com.google.guava:guava:31.1-jre") + implementation("it.unimi.dsi:fastutil:8.5.11") + } + } + + // Fix forge version numbering system as it is weird + def compatible_forgemc_versions = "${compatible_minecraft_versions}".replaceAll("\"", "").replaceAll("]", ",)") +// System.out.println(compatible_forgemc_versions) // Put stuff from gradle.properties into the mod info processResources { - def resourceTargets = ["fabric.mod.json", "META-INF/mods.toml"] // Location of where to put + def resourceTargets = ["fabric.mod.json", "quilt.mod.json", "META-INF/mods.toml"] // Location of where to inject the properties def intoTargets = ["$buildDir/resources/main/"] // Location of the built resources folder def replaceProperties = [ version : mod_version, - mod_name : mod_name, + mod_name : mod_readable_name, authors : mod_authors, description : mod_description, homepage : mod_homepage, source : mod_source, issues : mod_issues, + discord : mod_discord, minecraft_version : minecraft_version, compatible_minecraft_versions: compatible_minecraft_versions, + compatible_forgemc_versions : compatible_forgemc_versions, java_version : java_version ] // The left side is what gets replaced in the mod info and the right side is where to get it from in the gradle.properties - //TODO: Make Forge loader version also be relaced with non hardcoded value instead of "[36,42)" + //TODO: Make Forge loader version also be replaced with non hardcoded value instead of "[36,42)" inputs.properties replaceProperties replaceProperties.put 'project', project @@ -423,19 +425,26 @@ allprojects { p -> } } + task copyAccessWidener(type: Copy) { + from project(":common").file("src/main/resources/${accessWidenerVersion}.lod.accesswidener") + into(file(p.file("build/resources/main"))) + rename "${accessWidenerVersion}.lod.accesswidener", "lod.accesswidener" + } + task copyCoreResources(type: Copy) { from fileTree(project(":core").file("src/main/resources")) into p.file("build/resources/main") } tasks.withType(JavaCompile) { - if (p != project(":core")) { + if (isMinecraftSubProject) { options.release = rootProject.java_version as Integer options.compilerArgs += ['-Xplugin:Manifold'] } else { -// options.release = 8; // Core should use Java 8 no matter what +// options.release = 8; // Core & Api should use Java 8 no matter what // No it shouldn't cause it fails to find minecraft if it uses Java 8 options.release = rootProject.java_version as Integer + // TODO: Once the new build system is done, check if there is a way to make core/api only use java 8 again } options.encoding = "UTF-8" } @@ -443,12 +452,6 @@ allprojects { p -> java { withSourcesJar() } - - // Disable running common - if (p == project(":common")) { - runClient.enabled = false - runServer.enabled = false - } } // Delete the merged folder when running clean diff --git a/buildAll b/buildAll index ba86063fc..fc042cb76 100755 --- a/buildAll +++ b/buildAll @@ -1,13 +1,15 @@ -#!/usr/bin/env sh +#!/bin/sh -buildVersion() -{ - ./gradlew clean -PmcVer=$1 --no-daemon - ./gradlew build -PmcVer=$1 --no-daemon -} +# Loop trough everything in the version properties folder +for d in versionProperties/*; do + # Get the name of the version that is going to be compiled + version=$(echo "$d" | sed "s/versionProperties\///" | sed "s/.properties//") -buildVersion 1.19 -buildVersion 1.18.2 -buildVersion 1.18.1 -buildVersion 1.17.1 -buildVersion 1.16.5 + # Clean out the folders and build it + # (We could use "./" to run gradlew, but as it is a shell script im going to be running it with the "sh" command) + echo "Cleaning workspace to build $version" + sh gradlew clean -PmcVer=$version --no-daemon | true + echo "Building $version" + sh gradlew build -PmcVer=$version --no-daemon | true + # The "| true" at the end of those 2 are just to make sure the script continues even if a build fails +done diff --git a/buildAll.bat b/buildAll.bat index c5d06ee5d..9affd3a91 100644 --- a/buildAll.bat +++ b/buildAll.bat @@ -1,16 +1,25 @@ @echo off -SETLOCAL -CALL :buildVersion "1.19" -CALL :buildVersion "1.18.2" -CALL :buildVersion "1.18.1" -CALL :buildVersion "1.17.1" -CALL :buildVersion "1.16.5" -EXIT /B %ERRORLEVEL% +echo Windows build all script needs to be rewritten +echo I dont use Windows so I cant really make this +echo So if someone does use Windows and knows how to script stuff then can you please port the "buildall" script I made for Unix -:buildVersion -@echo on -call ./gradlew.bat clean -PmcVer="%~1" --no-daemon -call ./gradlew.bat build -PmcVer="%~1" --no-daemon -@echo off -EXIT /B 0 + + + +@REM Old BAT script if you need some help with this task + +@REM SETLOCAL +@REM CALL :buildVersion "1.19" +@REM CALL :buildVersion "1.18.2" +@REM CALL :buildVersion "1.18.1" +@REM CALL :buildVersion "1.17.1" +@REM CALL :buildVersion "1.16.5" +@REM EXIT /B %ERRORLEVEL% +@REM +@REM :buildVersion +@REM @echo on +@REM call ./gradlew.bat clean -PmcVer="%~1" --no-daemon +@REM call ./gradlew.bat build -PmcVer="%~1" --no-daemon +@REM @echo off +@REM EXIT /B 0 diff --git a/common/build.gradle b/common/build.gradle index 7d345402c..85a243371 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,27 +1,26 @@ -architectury { - common(rootProject.enabled_platforms.split(",")) +plugins { + id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' } -loom { - accessWidenerPath = file("src/main/resources/lod.accesswidener") +minecraft { + accessWideners(project(":common").file("src/main/resources/${accessWidenerVersion}.lod.accesswidener")) + version(rootProject.minecraft_version) } dependencies { // We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies // Do NOT use other classes from fabric loader - modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" +// modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" - if (minecraft_version == "1.16.5") { - modApi("me.shedaniel:architectury:${rootProject.architectury_version}") - } else { - modApi("dev.architectury:architectury:${rootProject.architectury_version}") - } + // So mixins can be written in common + compileOnly group:'org.spongepowered', name:'mixin', version:'0.8.5' } + publishing { publications { mavenCommon(MavenPublication) { - artifactId = rootProject.archives_base_name + artifactId = rootProject.mod_readable_name from components.java } } diff --git a/common/src/main/java/com/seibel/lod/common/networking/NetworkReceiver.java b/common/src/main/java/com/seibel/lod/common/networking/NetworkReceiver.java index 49e6998dd..ca8692686 100644 --- a/common/src/main/java/com/seibel/lod/common/networking/NetworkReceiver.java +++ b/common/src/main/java/com/seibel/lod/common/networking/NetworkReceiver.java @@ -19,6 +19,7 @@ package com.seibel.lod.common.networking; +/* #if MC_1_16_5 import me.shedaniel.architectury.networking.NetworkManager; #else @@ -26,6 +27,7 @@ import dev.architectury.networking.NetworkManager; #endif import net.minecraft.client.Minecraft; import net.minecraft.network.FriendlyByteBuf; +*/ /** * @author Ran @@ -33,6 +35,7 @@ import net.minecraft.network.FriendlyByteBuf; // Comment: What does the 'server' side mean? Dedicated server? Or does it include the internal server? // (I removed the hookup that calls the register method, since I'm not sure what it is doing yet) public class NetworkReceiver { + /* public void register_Client() { NetworkManager.registerReceiver(NetworkManager.serverToClient(), Networking.RESOURCE_LOCATION, new ClientReceiver()); } @@ -54,4 +57,5 @@ public class NetworkReceiver { com.seibel.lod.common.networking.NetworkHandler.receivePacketClient(Minecraft.getInstance(), buf, context.getPlayer()); } } + */ } diff --git a/common/src/main/java/com/seibel/lod/common/networking/Networking.java b/common/src/main/java/com/seibel/lod/common/networking/Networking.java index b046bf84d..51c87b1a4 100644 --- a/common/src/main/java/com/seibel/lod/common/networking/Networking.java +++ b/common/src/main/java/com/seibel/lod/common/networking/Networking.java @@ -20,11 +20,11 @@ package com.seibel.lod.common.networking; import com.seibel.lod.core.ModInfo; -#if MC_1_16_5 -import me.shedaniel.architectury.networking.NetworkManager; -#else -import dev.architectury.networking.NetworkManager; -#endif +//#if MC_1_16_5 +//import me.shedaniel.architectury.networking.NetworkManager; +//#else +//import dev.architectury.networking.NetworkManager; +//#endif import io.netty.buffer.Unpooled; import net.minecraft.client.Minecraft; import net.minecraft.network.FriendlyByteBuf; @@ -57,7 +57,7 @@ public class Networking { * @param buf the payload of the packet. */ public static void send(ServerPlayer player, FriendlyByteBuf buf) { - NetworkManager.sendToPlayer(player, RESOURCE_LOCATION, buf); +// NetworkManager.sendToPlayer(player, RESOURCE_LOCATION, buf); } /** @@ -67,7 +67,7 @@ public class Networking { * @throws IllegalStateException if the client is not connected to a server */ public static void send(FriendlyByteBuf buf) throws IllegalStateException { - NetworkManager.sendToServer(RESOURCE_LOCATION, buf); +// NetworkManager.sendToServer(RESOURCE_LOCATION, buf); } } diff --git a/common/src/main/resources/architectury.common.json b/common/src/main/resources/architectury.common.json deleted file mode 100644 index a37cd6679..000000000 --- a/common/src/main/resources/architectury.common.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "accessWidener": "lod.accesswidener" -} \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index 22cfcc4b0..fda3e0485 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,21 +1,29 @@ -version = rootProject.versionStr - -architectury { - platformSetupLoomIde() - fabric() +plugins { + id "fabric-loom" version "1.1-SNAPSHOT" } loom { - accessWidenerPath = project(":common").loom.accessWidenerPath + // FIXME: AccessWidener + accessWidenerPath = project(":common").file("src/main/resources/${accessWidenerVersion}.lod.accesswidener") + + // "runs" isn't required, but when we do need it then it can be useful + runs { + client { + client() + setConfigName("Fabric Client") + ideConfigGenerated(true) + runDir("run") + } + server { + server() + setConfigName("Fabric Server") + ideConfigGenerated(true) + runDir("run") + } + } } configurations { - common - shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. - compileClasspath.extendsFrom common - runtimeClasspath.extendsFrom common - developmentFabric.extendsFrom common - // The addModJar basically embeds the mod to the built jar addModJar include.extendsFrom addModJar @@ -30,15 +38,25 @@ def addMod(path, enabled) { } dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + mappings loom.layered() { + // Mojmap mappings + officialMojangMappings() + // Parchment mappings (it adds parameter mappings & javadoc) + parchment("org.parchmentmc.data:parchment-${rootProject.minecraft_version}:${rootProject.parchment_version}@zip") + } // Fabric loader modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" + // Common + implementation project(":common") + // Architectury API - if (minecraft_version == "1.16.5") { - addModJar("me.shedaniel:architectury-fabric:${rootProject.architectury_version}") - } else { - addModJar("dev.architectury:architectury-fabric:${rootProject.architectury_version}") - } +// if (minecraft_version == "1.16.5") { +// addModJar("me.shedaniel:architectury-fabric:${rootProject.architectury_version}") +// } else { +// addModJar("dev.architectury:architectury-fabric:${rootProject.architectury_version}") +// } // Fabric API addModJar(fabricApi.module("fabric-lifecycle-events-v1", rootProject.fabric_api_version)) @@ -93,22 +111,19 @@ dependencies { */ - common(project(path: ":common", configuration: "namedElements")) { transitive false } - shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } -// shadowMe files(project(":common").file("build/libs/DistantHorizons-${rootProject.mod_version}-transformProductionFabric.jar")) - shadowMe files(project(":core").file("build/libs/DistantHorizons-${rootProject.mod_version}.jar")) - shadowMe files(project(":api").file("build/libs/DistantHorizons-API-${rootProject.mod_version}.jar")) + common(project(path: ":common")) { transitive false } + shadowCommon(project(path: ":common")) { transitive false } +// shadowCommon(project(path: ":common"), configuration: "transformProductionFabric") { transitive false } // FIXME + shadowMe(project(path: ":core")) { transitive false } + shadowMe(project(path: ":api")) { transitive false } } shadowJar { - exclude "architectury.common.json" - configurations = [project.configurations.shadowCommon, project.configurations.shadowMe, project.configurations.customModule] - relocate 'com.seibel.lod.common', 'fabric.com.seibel.lod.common' + relocate 'com.seibel.lod.common', 'loaderCommon.fabric.com.seibel.lod.common' // Compression relocate 'org.tukaani', 'distanthorizons.libraries.tukaani' - relocate 'org.apache.commons.compress', 'distanthorizons.libraries.apache.commons.compress' // NightConfig (includes Toml & Json) relocate 'com.electronwill.nightconfig', 'distanthorizons.libraries.electronwill.nightconfig' @@ -124,7 +139,8 @@ shadowJar { } remapJar { - injectAccessWidener = true + // FIXME: AccessWidener +// injectAccessWidener = true input.set shadowJar.archiveFile dependsOn shadowJar classifier null @@ -136,10 +152,12 @@ task deleteResources(type: Delete) { processResources { dependsOn(copyCoreResources) + dependsOn(copyAccessWidener) } runClient { dependsOn(copyCoreResources) + dependsOn(copyAccessWidener) jvmArgs "-XX:-OmitStackTraceInFastThrow" finalizedBy(deleteResources) } @@ -163,7 +181,7 @@ components.java { publishing { publications { mavenFabric(MavenPublication) { - artifactId = rootProject.archives_base_name + "-" + project.name + artifactId = rootProject.mod_name + "-" + project.name from components.java } } diff --git a/fabric/src/main/java/com/seibel/lod/fabric/FabricServerProxy.java b/fabric/src/main/java/com/seibel/lod/fabric/FabricServerProxy.java index ab6b2e08a..0ca5de7d3 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/FabricServerProxy.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/FabricServerProxy.java @@ -104,7 +104,7 @@ public class FabricServerProxy { } // This just exists here for testing purposes, it'll be removed in the future - public void tester(MinecraftServer server) { + public void tester(MinecraftServer server) { // I disabled the Networking functions for now so this will not work atm - coolGi for (ServerPlayer player : server.getPlayerList().getPlayers()) { FriendlyByteBuf payload = Networking.createNew(); payload.writeInt(1); diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 84ae1a058..2113de2ae 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -16,6 +16,8 @@ "license": "LGPL-3", "icon": "icon.png", + "accessWidener": "lod.accesswidener", + "environment": "*", "entrypoints": { "client": [ @@ -48,7 +50,7 @@ "custom": { "modmenu": { "links": { - "modmenu.discord": "https://discord.gg/xAB8G4cENx" + "modmenu.discord": "${discord}" } } } diff --git a/forge/build.gradle b/forge/build.gradle index 2ce6ba5a3..0e41d49e7 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,98 +1,173 @@ -version = rootProject.versionStr +buildscript { + repositories { + maven { url = "https://maven.minecraftforge.net" } + maven { url = "https://maven.parchmentmc.org" } + maven { url = "https://repo.spongepowered.org/repository/maven-public/" } + mavenCentral() + } + dependencies { + classpath group: "net.minecraftforge.gradle", name: "ForgeGradle", version: "5.1.+", changing: true + classpath "org.parchmentmc:librarian:1.+" + classpath "org.spongepowered:mixingradle:0.7-SNAPSHOT" + } +} +apply plugin: "net.minecraftforge.gradle" +apply plugin: "org.parchmentmc.librarian.forgegradle" +apply plugin: "org.spongepowered.mixin" -loom { - forge { - convertAccessWideners.set(true) - extraAccessWideners.add("lod.accesswidener") - mixinConfigs("DistantHorizons.mixins.json") +// TODO: Check accessWidener works fine + +mixin { + add sourceSets.main, "DistantHorizons.refmap.json" + + config "DistantHorizons.mixins.json" +} + +minecraft { +// mappings channel: "official", version: minecraft_version // Vanilla mappings + mappings channel: "parchment", version: "${parchment_version}-${minecraft_version}" // Parchment mappings + + accessTransformer = project(":forge").file("src/main/resources/META-INF/accesstransformer.cfg") // FIXME: Find a libary to use fabric's accessWidener instead of forge's own accesstransformer format + + runs { + client { + workingDirectory project.file("run") + ideaModule "${rootProject.name}.${project.name}.main" + taskName "Client" + args "-mixins.config=DistantHorizons.mixins.json" + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { + modClientRun { + source sourceSets.main + source project(":common").sourceSets.main + source project(":core").sourceSets.main + source project(":api").sourceSets.main + } + } + } + + // TODO: Do this once client works +// server { +// workingDirectory project.file("run") +// ideaModule "${rootProject.name}.${project.name}.main" +// taskName "Server" +// args "-mixins.config=DistantHorizons.mixins.json" +// } + + data { + workingDirectory project.file("run") + ideaModule "${rootProject.name}.${project.name}.main" + args '--mod', "lod", '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + taskName 'Data' + args "-mixins.config=DistantHorizons.mixins.json" // To add more mixins, you can just add a comma for another arg + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { + modClientRun { + source sourceSets.main + source project(":common").sourceSets.main + source project(":core").sourceSets.main + source project(":api").sourceSets.main + } + } + } + } +} +// TODO: Check if the next 7 lines are necessary +sourceSets.main.resources.srcDir "src/generated/resources" +minecraft.runs.all { + lazyToken('minecraft_classpath') { + configurations.library.copyRecursive().resolve().collect { it.absolutePath }.join(File.pathSeparator) + configurations.runtimeLibrary.copyRecursive().resolve().collect { it.absolutePath }.join(File.pathSeparator) } } +//loom { +// forge { +// convertAccessWideners.set(true) +// extraAccessWideners.add("lod.accesswidener") +// mixinConfigs("DistantHorizons.mixins.json") +// } +//} -architectury { - platformSetupLoomIde() - forge() -} -loom { - accessWidenerPath = project(":common").loom.accessWidenerPath +//loom { +// accessWidenerPath = project(":common").loom.accessWidenerPath +// +// forge { +// convertAccessWideners = true +// extraAccessWideners.add loom.accessWidenerPath.get().asFile.name +// } +//} - forge { - convertAccessWideners = true - extraAccessWideners.add loom.accessWidenerPath.get().asFile.name - } -} - -configurations { - common - shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. - compileClasspath.extendsFrom common - runtimeClasspath.extendsFrom common - developmentForge.extendsFrom common -} def addMod(path, enabled) { if (enabled == "2") - dependencies { modImplementation(path) } + dependencies { implementation(path) } else if (enabled == "1") dependencies { modCompileOnly(path) } } dependencies { // Forge loader - forge "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}" + minecraft "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}" // Architectury API - if (minecraft_version == "1.16.5") { - modImplementation("me.shedaniel:architectury-forge:${rootProject.architectury_version}") - } else { - modImplementation("dev.architectury:architectury-forge:${rootProject.architectury_version}") - } +// if (minecraft_version == "1.16.5") { +// implementation("me.shedaniel:architectury-forge:${rootProject.architectury_version}") +// } else { +// implementation("dev.architectury:architectury-forge:${rootProject.architectury_version}") +// } // Starlight addMod("curse.maven:starlight-forge-526854:${rootProject.starlight_version_forge}", rootProject.enable_starlight_forge) -// annotationProcessor "org.spongepowered:mixin:0.8.4:processor" + annotationProcessor "org.spongepowered:mixin:0.8.4:processor" addMod("curse.maven:TerraForged-363820:${rootProject.terraforged_version}", rootProject.enable_terraforged) - common(project(path: ":common", configuration: "namedElements")) { transitive false } - shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive false } -// shadowMe files(project(":common").file("build/libs/DistantHorizons-${rootProject.mod_version}-transformProductionFabric.jar")) - shadowMe files(project(":core").file("build/libs/DistantHorizons-${rootProject.mod_version}.jar")) - shadowMe files(project(":api").file("build/libs/DistantHorizons-API-${rootProject.mod_version}.jar")) + if (System.getProperty("idea.sync.active") != "true") { + annotationProcessor "org.spongepowered:mixin:0.8.4:processor" + } + + common(project(path: ":common")) { transitive false } + shadowCommon(project(path: ":common")) { transitive false } + shadowMe(project(path: ":core")) { transitive false } + shadowMe(project(path: ":api")) { transitive false } } processResources { dependsOn(copyCoreResources) + dependsOn(copyAccessWidener) } shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon, project.configurations.shadowMe, project.configurations.customModule] + relocate "om.seibel.lod.common", "loaderCommon.forge.com.seibel.lod.common" // Compression - relocate 'org.tukaani', 'distanthorizons.libraries.tukaani' - relocate 'org.apache.commons.compress', 'distanthorizons.libraries.apache.commons.compress' + relocate "org.tukaani", "distanthorizons.libraries.tukaani" // NightConfig (includes Toml & Json) - relocate 'com.electronwill.nightconfig', 'distanthorizons.libraries.electronwill.nightconfig' + relocate "com.electronwill.nightconfig", "distanthorizons.libraries.electronwill.nightconfig" // Theming - relocate 'com.formdev.flatlaf', 'distanthorizons.libraries.formdev.flatlaf' + relocate "com.formdev.flatlaf", "distanthorizons.libraries.formdev.flatlaf" // svg - relocate 'com.kitfox.svg', 'distanthorizons.libraries.kitfox.svg' + relocate "com.kitfox.svg", "distanthorizons.libraries.kitfox.svg" classifier "dev-shadow" mergeServiceFiles() } -remapJar { - input.set shadowJar.archiveFile - dependsOn shadowJar - classifier null -} +//remapJar { +// input.set shadowJar.archiveFile +// dependsOn shadowJar +// classifier null +//} jar { classifier "dev" @@ -113,7 +188,7 @@ components.java { publishing { publications { mavenForge(MavenPublication) { - artifactId = rootProject.archives_base_name + "-" + project.name + artifactId = rootProject.mod_name + "-" + project.name from components.java } } diff --git a/forge/src/main/resources/META-INF/accesstransformer.cfg b/forge/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 000000000..e9eb6a824 --- /dev/null +++ b/forge/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1,28 @@ +public net.minecraft.world.level.lighting.LevelLightEngine f_75802_ +public net.minecraft.world.level.lighting.LevelLightEngine f_75803_ +public net.minecraft.client.renderer.LevelRenderer$RenderChunkInfo +public net.minecraft.client.renderer.LevelRenderer$RenderChunkInfo f_109839_ +public net.minecraft.world.level.biome.Biome f_47438_ +public net.minecraft.world.level.biome.Biome f_47442_ +public net.minecraft.client.renderer.texture.TextureAtlasSprite$AnimatedTexture +public net.minecraft.client.renderer.texture.TextureAtlasSprite$AnimatedTexture m_174764_(I)I +public net.minecraft.client.renderer.texture.TextureAtlasSprite$AnimatedTexture m_174759_(I)I +public net.minecraft.world.level.levelgen.Heightmap m_64245_(III)V +public net.minecraft.world.level.storage.DimensionDataStorage f_78146_ +public net.minecraft.client.renderer.LevelRenderer f_194307_ +public-f com.mojang.math.Matrix4f +public net.minecraft.client.renderer.texture.TextureAtlasSprite f_118342_ +public net.minecraft.client.renderer.texture.TextureAtlasSprite f_174723_ +public net.minecraft.client.renderer.texture.TextureAtlasSprite f_174725_ +public net.minecraft.client.renderer.texture.TextureAtlasSprite f_174724_ +public net.minecraft.client.renderer.LevelRenderer$RenderChunkStorage +public net.minecraft.client.renderer.GameRenderer m_109141_(Lnet/minecraft/client/Camera;FZ)D +public-f net.minecraft.util.ThreadingDetector f_199409_ +public net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator m_188662_(Lnet/minecraft/world/level/levelgen/blending/Blender;Lnet/minecraft/world/level/StructureFeatureManager;Lnet/minecraft/world/level/chunk/ChunkAccess;II)Lnet/minecraft/world/level/chunk/ChunkAccess; +public com.mojang.blaze3d.vertex.VertexBuffer f_166859_ +public com.mojang.blaze3d.vertex.VertexBuffer f_166863_ +public net.minecraft.server.level.ChunkMap f_140135_ +public net.minecraft.server.level.ChunkMap m_140427_(Lnet/minecraft/world/level/ChunkPos;)Lnet/minecraft/nbt/CompoundTag; +public net.minecraft.client.renderer.LightTexture f_109870_ +public net.minecraft.client.renderer.LightTexture f_109871_ +public net.minecraft.world.level.lighting.LayerLightEngine m_75660_(JLnet/minecraft/world/level/chunk/DataLayer;Z)V diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 1f8382dd5..94268a477 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -1,6 +1,6 @@ modLoader="javafml" #//mandatory -loaderVersion="[36,42)" # // mandatory. This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. +loaderVersion="*" # // mandatory. Allow all forge versions as we are definding what Minecraft versions we requre later on license="LGPL" issueTrackerURL="${issues}" @@ -24,3 +24,10 @@ issueTrackerURL="${issues}" #// Allow any version to be present (or not) on the server acceptableRemoteVersions="*" + +[[dependencies.lod]] + modId="minecraft" + mandatory=true + versionRange="${compatible_forgemc_versions}" # Where we set what version of mc it is avalible for + ordering="NONE" + side="BOTH" \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 594a1cb2e..4a51cd98a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,31 +1,31 @@ org.gradle.jvmargs=-Xmx4096M # Mod Info -archives_base_name=DistantHorizons -mod_version=2.0.0-a-dev +mod_name=DistantHorizons +mod_version=1.7.0-a-dev maven_group=com.seibel.lod -mod_name=Distant Horizons +mod_readable_name=Distant Horizons mod_description=This mod generates and renders simplified terrain beyond the normal view distance at a low performance cost. Allowing you to see much farther without turning your game into a slideshow. mod_authors=["James Seibel", "Leonardo Amato", "Cola", "coolGi", "Ran", "Leetom"] mod_homepage=https://www.curseforge.com/minecraft/mc-mods/distant-horizons mod_source=https://gitlab.com/jeseibel/minecraft-lod-mod/ mod_issues=https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues - -# Architectury Version & Info -architectury_version=5.7.28 -enabled_platforms=fabric,forge +mod_discord=https://discord.gg/xAB8G4cENx # Global Plugin Versions +manifold_version=2022.1.5 toml_version=3.6.4 nightconfig_version=3.6.6 flatlaf_version=2.3 svgSalamander_version=1.1.3 -manifold_version=2022.1.33 -mcVersions=1.16.5,1.17.1,1.18.1,1.18.2,1.19,1.19.1,1.19.2 -# Internal Properties (These are set at runtime) +log4j_version=2.19.0 +lwjgl_version=3.3.0 +joml_version=1.10.2 + +# Internal Properties (These are set at runtime for Forgix to merge jar's) versionStr= -##### This defines what MC version Intellij will use for the preprocessor -##### and what version is used automatically by build and run commands +# This defines what MC version Intellij will use for the preprocessor +# and what version is used automatically by build and run commands mcVer=1.18.2 diff --git a/settings.gradle b/settings.gradle index 9dd81f28b..273336f26 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,35 +1,37 @@ pluginManagement { repositories { - maven { url "https://maven.fabricmc.net/" } - maven { url "https://maven.architectury.dev/" } - maven { url "https://maven.minecraftforge.net/" } - maven { url "https://repo.spongepowered.org/repository/maven-public/"} + maven { + name "Fabric" + url "https://maven.fabricmc.net/" + } + maven { + name "Forge" + url "https://maven.minecraftforge.net/" + } + maven { // We may not use Quilt atm, but better to have it here for when it eventually gets added + 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() } } -// Minecraft dependent sub-projects -include("common") -include("fabric") - -// The logic for buildForge can be made more succinct, but the readability goes way down. -def buildForge = true -if (gradle.startParameter.taskRequests.size() > 0) { - if (gradle.startParameter.taskRequests[0].args.size() > 0) { - if (gradle.startParameter.taskRequests[0].args[0].startsWith("fabric:")) { - buildForge = false - } - } -} - -if (buildForge) { - include("forge") -} - // 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") +include("fabric") +//include("quilt") // Just put this here for once we need it ;) +//include("forge") // FIXME: Fix forge, its just annoying + + rootProject.name = "DistantHorizons" diff --git a/1.16.5.properties b/versionProperties/1.16.5.properties similarity index 95% rename from 1.16.5.properties rename to versionProperties/1.16.5.properties index 9f6c7b8e6..928b76199 100644 --- a/1.16.5.properties +++ b/versionProperties/1.16.5.properties @@ -1,9 +1,10 @@ # 1.16.5 version - java_version=8 minecraft_version=1.16.5 parchment_version=2022.03.06 compatible_minecraft_versions=["1.16.4", "1.16.5"] +accessWidenerVersion=1_16 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.13.2 diff --git a/1.17.1.properties b/versionProperties/1.17.1.properties similarity index 95% rename from 1.17.1.properties rename to versionProperties/1.17.1.properties index a59497dcd..d545e8066 100644 --- a/1.17.1.properties +++ b/versionProperties/1.17.1.properties @@ -1,9 +1,10 @@ # 1.17.1 version - java_version=16 minecraft_version=1.17.1 parchment_version=2021.12.12 compatible_minecraft_versions=["1.17", "1.17.1"] +accessWidenerVersion=1_17 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.13.2 diff --git a/1.18.1.properties b/versionProperties/1.18.1.properties similarity index 95% rename from 1.18.1.properties rename to versionProperties/1.18.1.properties index 907bccfc0..f350e8f99 100644 --- a/1.18.1.properties +++ b/versionProperties/1.18.1.properties @@ -1,9 +1,10 @@ # 1.18.1 version - java_version = 17 minecraft_version=1.18.1 parchment_version=2022.03.06 compatible_minecraft_versions=["1.18", "1.18.1"] +accessWidenerVersion=1_18 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.13.3 diff --git a/1.18.2.properties b/versionProperties/1.18.2.properties similarity index 91% rename from 1.18.2.properties rename to versionProperties/1.18.2.properties index c175a485c..5a25cf599 100644 --- a/1.18.2.properties +++ b/versionProperties/1.18.2.properties @@ -1,24 +1,25 @@ # 1.18.2 version based stuff - java_version = 17 minecraft_version=1.18.2 parchment_version=2022.11.06 compatible_minecraft_versions=["1.18.2"] +accessWidenerVersion=1_18 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.14.14 fabric_api_version=0.67.1+1.18.2 -architectury_version=4.4.59 # Fabric mod versions modmenu_version=3.1.0 + #architectury_version=4.4.59 starlight_version_fabric=3667443 phosphor_version_fabric=3573395 lithium_version=mc1.18.2-0.7.9 sodium_version=mc1.18.2-0.4.1 iris_version=1.18.x-v1.2.5 bclib_version=1.4.5 - canvas_version=mc118:1.0.2397 immersive_portals_version = v1.4.9-1.18 + canvas_version=mc118:1.0.2397 # Fabric mod run # 0 = Don't enable and don't run @@ -33,7 +34,7 @@ architectury_version=4.4.59 enable_canvas=0 # Forge loader -forge_version=40.2.1 +forge_version=40.0.18 # Forge mod versions starlight_version_forge= terraforged_version= diff --git a/1.19.2.properties b/versionProperties/1.19.2.properties similarity index 94% rename from 1.19.2.properties rename to versionProperties/1.19.2.properties index 61681a13d..bc6dbc99a 100644 --- a/1.19.2.properties +++ b/versionProperties/1.19.2.properties @@ -1,7 +1,10 @@ +# 1.19.2 version java_version = 17 minecraft_version=1.19.2 parchment_version=2022.08.10 compatible_minecraft_versions=["1.19.2"] +accessWidenerVersion=1_19 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.14.9 diff --git a/1.19.properties b/versionProperties/1.19.properties similarity index 94% rename from 1.19.properties rename to versionProperties/1.19.properties index 4d2287315..9a3538802 100644 --- a/1.19.properties +++ b/versionProperties/1.19.properties @@ -1,9 +1,10 @@ -# 1.18.2 version based stuff - +# 1.19 version java_version = 17 minecraft_version=1.19 parchment_version=2022.08.10 compatible_minecraft_versions=["1.19"] +accessWidenerVersion=1_19 +builds_for=["fabric", "forge"] # Fabric loader fabric_loader_version=0.14.7 @@ -16,8 +17,8 @@ architectury_version=5.6.24 lithium_version= sodium_version=3820973 iris_version=1.19.x-v1.2.5 - immersive_portals_version = bclib_version= + immersive_portals_version = canvas_version=mc118:1.0.2397 # Fabric mod run