From d6885236a21634ca36d08719e1e18350ae7d46b6 Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sat, 21 Jan 2023 14:49:11 +0800 Subject: [PATCH 01/10] Create SupportCC.java --- src/main/java/rwg/support/SupportCC.java | 57 ++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/main/java/rwg/support/SupportCC.java diff --git a/src/main/java/rwg/support/SupportCC.java b/src/main/java/rwg/support/SupportCC.java new file mode 100644 index 0000000..13e0c42 --- /dev/null +++ b/src/main/java/rwg/support/SupportCC.java @@ -0,0 +1,57 @@ +package rwg.support; + +import rwg.api.RWGBiomes; +import rwg.biomes.realistic.RealisticBiomeBase; +import rwg.surface.SurfaceGrassland; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.world.biome.BiomeGenBase; +import rwg.support.Support.BiomeCategory; +import rwg.terrain.*; + +public class SupportCC +{ + /* + ChromatiCraft BIOMES + + 46: "Ender Forest" + 47: "Rainbow Forest" + 48: "Luminous Cliffs" + 49: "Luminous Cliffs Edge" + */ + + public static void init() + { + BiomeGenBase[] b = BiomeGenBase.getBiomeGenArray(); + + for(int i = 0; i < 256; i++) + { + if(b[i] != null) + { + if(b[i].biomeName == "Ender Forest" || b[i].biomeName == "Rainbow Forest") + { + Support.addBiome( + new RealisticBiomeSupport( + b[i], RWGBiomes.baseRiverTemperate, + new TerrainSmallSupport(0f, 140f, 68f, 200f), + new SurfaceGrassland(b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone) + ), + BiomeCategory.HOT + ); + } + + if(b[i].biomeName == "Luminous Cliffs" || b[i].biomeName == "Luminous Cliffs Shores") + { + Support.addBiome( + new RealisticBiomeSupport( + b[i], RWGBiomes.baseRiverTemperate, + new TerrainGrasslandHills(90f, 180f, 13f, 100f, 38f, 260f, 71f), + new SurfaceGrassland(b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone) + ), + BiomeCategory.COLD + ); + } + } + } + } +} From b1affdbd257be8a17f0f42b36723626433db693e Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sat, 21 Jan 2023 14:50:12 +0800 Subject: [PATCH 02/10] Update Support.java --- src/main/java/rwg/support/Support.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/rwg/support/Support.java b/src/main/java/rwg/support/Support.java index 3ff7a7c..0106271 100644 --- a/src/main/java/rwg/support/Support.java +++ b/src/main/java/rwg/support/Support.java @@ -40,6 +40,11 @@ public static void init() { if (Loader.isModLoaded("Thaumcraft")) { SupportTC.init(); } + + if (Loader.isModLoaded("ChromatiCraft")) + { + SupportCC.init(); + } } public static void addBiome(RealisticBiomeSupport b, BiomeCategory cat) { From f5cbe206cdea5f9b3266e205bb4f123961562505 Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sat, 21 Jan 2023 14:54:05 +0800 Subject: [PATCH 03/10] Update Support.java --- src/main/java/rwg/support/Support.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/rwg/support/Support.java b/src/main/java/rwg/support/Support.java index 0106271..8b2e030 100644 --- a/src/main/java/rwg/support/Support.java +++ b/src/main/java/rwg/support/Support.java @@ -41,10 +41,9 @@ public static void init() { SupportTC.init(); } - if (Loader.isModLoaded("ChromatiCraft")) - { - SupportCC.init(); - } + if (Loader.isModLoaded("ChromatiCraft")) { + SupportCC.init(); + } } public static void addBiome(RealisticBiomeSupport b, BiomeCategory cat) { From bc7111f95fe938d5af4ef63e1ffad48b14cb0720 Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sat, 21 Jan 2023 15:04:31 +0800 Subject: [PATCH 04/10] Update SupportCC.java --- src/main/java/rwg/support/SupportCC.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/rwg/support/SupportCC.java b/src/main/java/rwg/support/SupportCC.java index 13e0c42..a429c95 100644 --- a/src/main/java/rwg/support/SupportCC.java +++ b/src/main/java/rwg/support/SupportCC.java @@ -33,7 +33,7 @@ public static void init() Support.addBiome( new RealisticBiomeSupport( b[i], RWGBiomes.baseRiverTemperate, - new TerrainSmallSupport(0f, 140f, 68f, 200f), + new TerrainHighland(0f, 140f, 68f, 200f), new SurfaceGrassland(b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone) ), BiomeCategory.HOT From c53810ec62591157defdd65f08b89fd1aac82b3e Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sat, 21 Jan 2023 15:32:22 +0800 Subject: [PATCH 05/10] ew ew --- src/main/java/rwg/support/{ => edit}/Support.java | 0 src/main/java/rwg/support/{ => edit}/SupportCC.java | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/main/java/rwg/support/{ => edit}/Support.java (100%) rename src/main/java/rwg/support/{ => edit}/SupportCC.java (100%) diff --git a/src/main/java/rwg/support/Support.java b/src/main/java/rwg/support/edit/Support.java similarity index 100% rename from src/main/java/rwg/support/Support.java rename to src/main/java/rwg/support/edit/Support.java diff --git a/src/main/java/rwg/support/SupportCC.java b/src/main/java/rwg/support/edit/SupportCC.java similarity index 100% rename from src/main/java/rwg/support/SupportCC.java rename to src/main/java/rwg/support/edit/SupportCC.java From bb4231b3cee8ce30b1b950ec54ea3b3f7bd48553 Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sat, 21 Jan 2023 15:32:38 +0800 Subject: [PATCH 06/10] ew eww --- src/main/java/rwg/support/{edit => }/Support.java | 0 src/main/java/rwg/support/{edit => }/SupportCC.java | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/main/java/rwg/support/{edit => }/Support.java (100%) rename src/main/java/rwg/support/{edit => }/SupportCC.java (100%) diff --git a/src/main/java/rwg/support/edit/Support.java b/src/main/java/rwg/support/Support.java similarity index 100% rename from src/main/java/rwg/support/edit/Support.java rename to src/main/java/rwg/support/Support.java diff --git a/src/main/java/rwg/support/edit/SupportCC.java b/src/main/java/rwg/support/SupportCC.java similarity index 100% rename from src/main/java/rwg/support/edit/SupportCC.java rename to src/main/java/rwg/support/SupportCC.java From 8cd008955f8c54af1f6a71aa5a5bf3ffb7452032 Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sat, 21 Jan 2023 15:42:46 +0800 Subject: [PATCH 07/10] Revert "ew" This reverts commit bb4231b3cee8ce30b1b950ec54ea3b3f7bd48553. --- src/main/java/rwg/support/{ => edit}/Support.java | 0 src/main/java/rwg/support/{ => edit}/SupportCC.java | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/main/java/rwg/support/{ => edit}/Support.java (100%) rename src/main/java/rwg/support/{ => edit}/SupportCC.java (100%) diff --git a/src/main/java/rwg/support/Support.java b/src/main/java/rwg/support/edit/Support.java similarity index 100% rename from src/main/java/rwg/support/Support.java rename to src/main/java/rwg/support/edit/Support.java diff --git a/src/main/java/rwg/support/SupportCC.java b/src/main/java/rwg/support/edit/SupportCC.java similarity index 100% rename from src/main/java/rwg/support/SupportCC.java rename to src/main/java/rwg/support/edit/SupportCC.java From afe2939a39f6c164ec43c22d549bffd55274728a Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sat, 21 Jan 2023 15:42:52 +0800 Subject: [PATCH 08/10] Revert "ew" This reverts commit c53810ec62591157defdd65f08b89fd1aac82b3e. --- src/main/java/rwg/support/{edit => }/Support.java | 0 src/main/java/rwg/support/{edit => }/SupportCC.java | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/main/java/rwg/support/{edit => }/Support.java (100%) rename src/main/java/rwg/support/{edit => }/SupportCC.java (100%) diff --git a/src/main/java/rwg/support/edit/Support.java b/src/main/java/rwg/support/Support.java similarity index 100% rename from src/main/java/rwg/support/edit/Support.java rename to src/main/java/rwg/support/Support.java diff --git a/src/main/java/rwg/support/edit/SupportCC.java b/src/main/java/rwg/support/SupportCC.java similarity index 100% rename from src/main/java/rwg/support/edit/SupportCC.java rename to src/main/java/rwg/support/SupportCC.java From 75d99d820a6a3361a2768d638dfa2f5f11e5398c Mon Sep 17 00:00:00 2001 From: KuroPeach <1193319600@qq.com> Date: Sun, 22 Jan 2023 16:41:32 +0800 Subject: [PATCH 09/10] supcc --- src/main/java/rwg/support/Support.java | 2 +- src/main/java/rwg/support/SupportCC.java | 91 +++++++++++------------- src/main/java/rwg/support/SupportTC.java | 14 +++- 3 files changed, 56 insertions(+), 51 deletions(-) diff --git a/src/main/java/rwg/support/Support.java b/src/main/java/rwg/support/Support.java index 8b2e030..0c7e62a 100644 --- a/src/main/java/rwg/support/Support.java +++ b/src/main/java/rwg/support/Support.java @@ -43,7 +43,7 @@ public static void init() { if (Loader.isModLoaded("ChromatiCraft")) { SupportCC.init(); - } + } } public static void addBiome(RealisticBiomeSupport b, BiomeCategory cat) { diff --git a/src/main/java/rwg/support/SupportCC.java b/src/main/java/rwg/support/SupportCC.java index a429c95..ab2ff8f 100644 --- a/src/main/java/rwg/support/SupportCC.java +++ b/src/main/java/rwg/support/SupportCC.java @@ -1,57 +1,50 @@ package rwg.support; -import rwg.api.RWGBiomes; -import rwg.biomes.realistic.RealisticBiomeBase; -import rwg.surface.SurfaceGrassland; -import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.biome.BiomeGenBase; +import rwg.api.RWGBiomes; import rwg.support.Support.BiomeCategory; -import rwg.terrain.*; +import rwg.surface.SurfaceGrassland; +import rwg.terrain.TerrainHighland; +import rwg.terrain.TerrainHilly; + +public class SupportCC { + /* + ChromatiCraft BIOMES + + 46: "Ender Forest" + 47: "Rainbow Forest" + 48: "Luminous Cliffs" + 49: "Luminous Cliffs Edge" + */ + + public static void init() { + BiomeGenBase[] b = BiomeGenBase.getBiomeGenArray(); -public class SupportCC -{ - /* - ChromatiCraft BIOMES - - 46: "Ender Forest" - 47: "Rainbow Forest" - 48: "Luminous Cliffs" - 49: "Luminous Cliffs Edge" - */ - - public static void init() - { - BiomeGenBase[] b = BiomeGenBase.getBiomeGenArray(); - - for(int i = 0; i < 256; i++) - { - if(b[i] != null) - { - if(b[i].biomeName == "Ender Forest" || b[i].biomeName == "Rainbow Forest") - { - Support.addBiome( - new RealisticBiomeSupport( - b[i], RWGBiomes.baseRiverTemperate, - new TerrainHighland(0f, 140f, 68f, 200f), - new SurfaceGrassland(b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone) - ), - BiomeCategory.HOT - ); - } + for (int i = 0; i < 256; i++) { + if (b[i] != null) { + if (b[i].biomeName == "Ender Forest" || b[i].biomeName == "Rainbow Forest") { + Support.addBiome( + new RealisticBiomeSupport( + b[i], + RWGBiomes.baseTemperateForest, + new TerrainHighland(6f, 120f, 65f, 150f), + new SurfaceGrassland( + b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone)), + BiomeCategory.HOT); + } - if(b[i].biomeName == "Luminous Cliffs" || b[i].biomeName == "Luminous Cliffs Shores") - { - Support.addBiome( - new RealisticBiomeSupport( - b[i], RWGBiomes.baseRiverTemperate, - new TerrainGrasslandHills(90f, 180f, 13f, 100f, 38f, 260f, 71f), - new SurfaceGrassland(b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone) - ), - BiomeCategory.COLD - ); - } - } - } - } + if (b[i].biomeName == "Luminous Cliffs" || b[i].biomeName == "Luminous Cliffs Shores") { + Support.addBiome( + new RealisticBiomeSupport( + b[i], + RWGBiomes.baseOceanTemperate, + new TerrainHilly(100f, 120f, 0f), + new SurfaceGrassland( + b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone)), + BiomeCategory.HOT); + } + } + } + } } diff --git a/src/main/java/rwg/support/SupportTC.java b/src/main/java/rwg/support/SupportTC.java index fd8ac4f..dcef3cf 100644 --- a/src/main/java/rwg/support/SupportTC.java +++ b/src/main/java/rwg/support/SupportTC.java @@ -5,6 +5,7 @@ import rwg.api.RWGBiomes; import rwg.support.Support.BiomeCategory; import rwg.surface.SurfaceGrassland; +import rwg.terrain.TerrainHighland; import rwg.terrain.TerrainSmallSupport; public class SupportTC { @@ -20,7 +21,7 @@ public static void init() { for (int i = 0; i < 256; i++) { if (b[i] != null) { - if (b[i].biomeName == "Tainted Land" || b[i].biomeName == "Magical Forest") { + if (b[i].biomeName == "Tainted Land") { Support.addBiome( new RealisticBiomeSupport( b[i], @@ -30,6 +31,17 @@ public static void init() { b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone)), BiomeCategory.SMALL); } + + if (b[i].biomeName == "Magical Forest") { + Support.addBiome( + new RealisticBiomeSupport( + b[i], + RWGBiomes.baseTemperateForest, + new TerrainHighland(6f, 120f, 65f, 150f), + new SurfaceGrassland( + b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone)), + BiomeCategory.WET); + } } } } From 5b81c20fd7a292c2aa8d83b106e18fc0d4bc32fa Mon Sep 17 00:00:00 2001 From: Martin Robertz Date: Mon, 13 Mar 2023 09:11:39 +0100 Subject: [PATCH 10/10] update Bs + sa --- build.gradle | 310 +++++++++++++++++++++-- gradle/wrapper/gradle-wrapper.jar | Bin 61608 -> 61574 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- src/main/java/rwg/support/SupportCC.java | 20 +- src/main/java/rwg/support/SupportTC.java | 5 +- 5 files changed, 307 insertions(+), 30 deletions(-) diff --git a/build.gradle b/build.gradle index fe8a2e7..927ed20 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1675110695 +//version: 1678003329 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -9,13 +9,18 @@ import com.diffplug.blowdryer.Blowdryer import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import com.gtnewhorizons.retrofuturagradle.ObfuscationAttribute import com.gtnewhorizons.retrofuturagradle.mcp.ReobfuscatedJar +import com.gtnewhorizons.retrofuturagradle.minecraft.RunMinecraftTask import com.matthewprenger.cursegradle.CurseArtifact import com.matthewprenger.cursegradle.CurseRelation import com.modrinth.minotaur.dependencies.ModDependency import com.modrinth.minotaur.dependencies.VersionDependency +import cpw.mods.fml.relauncher.Side +import org.gradle.api.tasks.options.Option; import org.gradle.internal.logging.text.StyledTextOutput.Style import org.gradle.internal.logging.text.StyledTextOutputFactory +import org.gradle.internal.xml.XmlTransformer import org.jetbrains.gradle.ext.* import java.nio.file.Files @@ -23,10 +28,10 @@ import java.nio.file.Paths import java.util.concurrent.TimeUnit import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream +import javax.inject.Inject buildscript { repositories { - mavenLocal() mavenCentral() maven { @@ -47,6 +52,8 @@ buildscript { name 'Scala CI dependencies' url 'https://repo1.maven.org/maven2/' } + + mavenLocal() } } plugins { @@ -66,7 +73,7 @@ plugins { id 'com.diffplug.spotless' version '6.7.2' apply false id 'com.modrinth.minotaur' version '2.+' apply false id 'com.matthewprenger.cursegradle' version '1.4.0' apply false - id 'com.gtnewhorizons.retrofuturagradle' version '1.1.2' + id 'com.gtnewhorizons.retrofuturagradle' version '1.2.3' } boolean settingsupdated = verifySettingsGradle() settingsupdated = verifyGitAttributes() || settingsupdated @@ -122,6 +129,9 @@ propertyDefaultIfUnset("gradleTokenGroupName", "") propertyDefaultIfUnset("enableModernJavaSyntax", false) // On by default for new projects only propertyDefaultIfUnset("enableGenericInjection", false) // On by default for new projects only +// this is meant to be set using the user wide property file. by default we do nothing. +propertyDefaultIfUnset("ideaOverrideBuildType", "") // Can be nothing, "gradle" or "idea" + project.extensions.add(Blowdryer, "Blowdryer", Blowdryer) // Make blowdryer available in "apply from:" scripts if (!disableSpotless) { apply plugin: 'com.diffplug.spotless' @@ -143,7 +153,7 @@ java { } else { languageVersion.set(projectJavaVersion) } - vendor.set(JvmVendorSpec.ADOPTIUM) + vendor.set(JvmVendorSpec.AZUL) } if (!noPublishedSources) { withSourcesJar() @@ -186,11 +196,21 @@ configurations { } if (enableModernJavaSyntax.toBoolean()) { + repositories { + mavenCentral { + mavenContent { + includeGroup("me.eigenraven.java8unsupported") + } + } + } + dependencies { annotationProcessor 'com.github.bsideup.jabel:jabel-javac-plugin:1.0.0' compileOnly('com.github.bsideup.jabel:jabel-javac-plugin:1.0.0') { transitive = false // We only care about the 1 annotation class } + // Allow using jdk.unsupported classes like sun.misc.Unsafe in the compiled code, working around JDK-8206937. + patchedMinecraft('me.eigenraven.java8unsupported:java-8-unsupported-shim:1.0.0') } tasks.withType(JavaCompile).configureEach { @@ -202,7 +222,7 @@ if (enableModernJavaSyntax.toBoolean()) { javaCompiler.set(javaToolchains.compilerFor { languageVersion.set(JavaLanguageVersion.of(17)) - vendor.set(JvmVendorSpec.ADOPTIUM) + vendor.set(JvmVendorSpec.AZUL) }) } } @@ -234,12 +254,14 @@ if (apiPackage) { } if (accessTransformersFile) { - String targetFile = "src/main/resources/META-INF/" + accessTransformersFile - if (!getFile(targetFile).exists()) { - throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile) + for (atFile in accessTransformersFile.split(",")) { + String targetFile = "src/main/resources/META-INF/" + atFile.trim() + if (!getFile(targetFile).exists()) { + throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile) + } + tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile) + tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile) } - tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile) - tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile) } else { boolean atsFound = false for (File at : sourceSets.getByName("main").resources.files) { @@ -367,6 +389,10 @@ minecraft { injectMissingGenerics.set(true) } + username = developmentEnvironmentUserName.toString() + + lwjgl3Version = "3.3.2-SNAPSHOT" + // Enable assertions in the current mod extraRunJvmArguments.add("-ea:${modGroup}") @@ -401,6 +427,16 @@ configurations.configureEach { } } } + def obfuscationAttr = it.attributes.getAttribute(ObfuscationAttribute.OBFUSCATION_ATTRIBUTE) + if (obfuscationAttr != null && obfuscationAttr.name == ObfuscationAttribute.SRG) { + resolutionStrategy.eachDependency { DependencyResolveDetails details -> + // Remap CoFH core cursemaven dev jar to the obfuscated version for runObfClient/Server + if (details.requested.group == 'curse.maven' && details.requested.name.endsWith('-69162') && details.requested.version == '2388751') { + details.useVersion '2388750' + details.because 'Pick obfuscated jar' + } + } + } } // Ensure tests have access to minecraft classes @@ -430,8 +466,9 @@ repositories.configureEach { repo -> apply from: 'repositories.gradle' configurations { + runtimeClasspath.extendsFrom(runtimeOnlyNonPublishable) + testRuntimeClasspath.extendsFrom(runtimeOnlyNonPublishable) for (config in [compileClasspath, runtimeClasspath, testCompileClasspath, testRuntimeClasspath]) { - config.extendsFrom(runtimeOnlyNonPublishable) if (usesShadowedDependencies.toBoolean()) { config.extendsFrom(shadowImplementation) // TODO: remove Compile after all uses are refactored to Implementation @@ -484,6 +521,13 @@ repositories { } } } + maven { + name 'sonatype' + url 'https://oss.sonatype.org/content/repositories/snapshots/' + content { + includeGroup "org.lwjgl" + } + } if (includeWellKnownRepositories.toBoolean()) { maven { name "CurseMaven" @@ -520,20 +564,20 @@ dependencies { annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3') annotationProcessor('com.google.guava:guava:24.1.1-jre') annotationProcessor('com.google.code.gson:gson:2.8.6') - annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.10:processor') + annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.13:processor') if (usesMixinDebug.toBoolean()) { runtimeOnlyNonPublishable('org.jetbrains:intellij-fernflower:1.2.1.16') } } if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - implementation('com.gtnewhorizon:gtnhmixins:2.1.10') + implementation('com.gtnewhorizon:gtnhmixins:2.1.13') } } pluginManager.withPlugin('org.jetbrains.kotlin.kapt') { if (usesMixins.toBoolean()) { dependencies { - kapt('com.gtnewhorizon:gtnhmixins:2.1.10:processor') + kapt('com.gtnewhorizon:gtnhmixins:2.1.13:processor') } } } @@ -633,9 +677,150 @@ tasks.named("processResources", ProcessResources).configure { if (usesMixins.toBoolean()) { from refMap + dependsOn("compileJava", "compileScala") + } +} + +ext.java17Toolchain = (JavaToolchainSpec spec) -> { + spec.languageVersion.set(JavaLanguageVersion.of(17)) + spec.vendor.set(JvmVendorSpec.matching("jetbrains")) +} + +ext.java17DependenciesCfg = configurations.create("java17Dependencies") { + extendsFrom(configurations.getByName("runtimeClasspath")) // Ensure consistent transitive dependency resolution + canBeConsumed = false +} +ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies") { + canBeConsumed = false +} + +dependencies { + def lwjgl3ifyVersion = '1.1.35' + def asmVersion = '9.4' + if (modId != 'lwjgl3ify') { + java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}") + } + if (modId != 'hodgepodge') { + java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.0.40') + } + + java17PatchDependencies('net.minecraft:launchwrapper:1.15') {transitive = false} + java17PatchDependencies("org.ow2.asm:asm:${asmVersion}") + java17PatchDependencies("org.ow2.asm:asm-commons:${asmVersion}") + java17PatchDependencies("org.ow2.asm:asm-tree:${asmVersion}") + java17PatchDependencies("org.ow2.asm:asm-analysis:${asmVersion}") + java17PatchDependencies("org.ow2.asm:asm-util:${asmVersion}") + java17PatchDependencies('org.ow2.asm:asm-deprecated:7.1') + java17PatchDependencies("org.apache.commons:commons-lang3:3.12.0") + java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") {transitive = false} +} + +ext.java17JvmArgs = [ + // Java 9+ support + "--illegal-access=warn", + "-Djava.security.manager=allow", + "-Dfile.encoding=UTF-8", + "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED", + "--add-opens", "java.base/java.net=ALL-UNNAMED", + "--add-opens", "java.base/java.nio=ALL-UNNAMED", + "--add-opens", "java.base/java.io=ALL-UNNAMED", + "--add-opens", "java.base/java.lang=ALL-UNNAMED", + "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens", "java.base/java.text=ALL-UNNAMED", + "--add-opens", "java.base/java.util=ALL-UNNAMED", + "--add-opens", "java.base/jdk.internal.reflect=ALL-UNNAMED", + "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", + "--add-opens", "jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED,java.naming", + "--add-opens", "java.desktop/sun.awt.image=ALL-UNNAMED", + "--add-modules", "jdk.dynalink", + "--add-opens", "jdk.dynalink/jdk.dynalink.beans=ALL-UNNAMED", + "--add-modules", "java.sql.rowset", + "--add-opens", "java.sql.rowset/javax.sql.rowset.serial=ALL-UNNAMED" +] + +ext.hotswapJvmArgs = [ + // DCEVM advanced hot reload + "-XX:+AllowEnhancedClassRedefinition", + "-XX:HotswapAgent=fatjar" +] + +ext.setupHotswapAgentTask = tasks.register("setupHotswapAgent") { + group = "GTNH Buildscript" + description = "Installs a recent version of HotSwapAgent into the Java 17 JetBrains runtime directory" + def hsaUrl = 'https://github.com/HotswapProjects/HotswapAgent/releases/download/1.4.2-SNAPSHOT/hotswap-agent-1.4.2-SNAPSHOT.jar' + def targetFolderProvider = javaToolchains.launcherFor(java17Toolchain).map {it.metadata.installationPath.dir("lib/hotswap")} + def targetFilename = "hotswap-agent.jar" + onlyIf { + !targetFolderProvider.get().file(targetFilename).asFile.exists() + } + doLast { + def targetFolder = targetFolderProvider.get() + targetFolder.asFile.mkdirs() + download.run { + src hsaUrl + dest targetFolder.file(targetFilename).asFile + overwrite false + tempAndMove true + } + } +} + +public abstract class RunHotswappableMinecraftTask extends RunMinecraftTask { + // IntelliJ doesn't seem to allow commandline arguments so we also support an env variable + private boolean enableHotswap = Boolean.valueOf(System.getenv("HOTSWAP")); + + @Input + public boolean getEnableHotswap() { return enableHotswap } + @Option(option = "hotswap", description = "Enables HotSwapAgent for enhanced class reloading under a debugger") + public boolean setEnableHotswap(boolean enable) { enableHotswap = enable } + + @Inject + public RunHotswappableMinecraftTask(Side side, String superTask, org.gradle.api.invocation.Gradle gradle) { + super(side, gradle) + + this.lwjglVersion = 3 + this.javaLauncher = project.javaToolchains.launcherFor(project.java17Toolchain) + this.extraJvmArgs.addAll(project.java17JvmArgs) + this.extraJvmArgs.addAll(project.provider(() -> enableHotswap ? project.hotswapJvmArgs : [])) + + this.classpath(project.java17PatchDependenciesCfg) + if (side == Side.CLIENT) { + this.classpath(project.minecraftTasks.lwjgl3Configuration) + } + // Use a raw provider instead of map to not create a dependency on the task + this.classpath(project.provider(() -> project.tasks.named(superTask, RunMinecraftTask).get().classpath)) + this.classpath.filter { file -> + !file.path.contains("2.9.4-nightly-20150209") // Remove lwjgl2 + } + this.classpath(project.java17DependenciesCfg) + + if (!(project.usesMixins.toBoolean() || project.forceEnableMixins.toBoolean())) { + this.extraArgs.addAll("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker") + } } } +def runClient17Task = tasks.register("runClient17", RunHotswappableMinecraftTask, Side.CLIENT, "runClient") +runClient17Task.configure { + setup(project) + group = "Modded Minecraft" + description = "Runs the modded client using Java 17, lwjgl3ify and Hodgepodge" + dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar') + mainClass = "GradleStart" + username = minecraft.username + userUUID = minecraft.userUUID +} + +def runServer17Task = tasks.register("runServer17", RunHotswappableMinecraftTask, Side.SERVER, "runServer") +runServer17Task.configure { + setup(project) + group = "Modded Minecraft" + description = "Runs the modded server using Java 17, lwjgl3ify and Hodgepodge" + dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar') + mainClass = "GradleStartServer" + extraArgs.add("nogui") +} + def getManifestAttributes() { def manifestAttributes = [:] if (!containsMixinsAndOrCoreModOnly.toBoolean() && (usesMixins.toBoolean() || coreModClass)) { @@ -670,7 +855,7 @@ if (usesShadowedDependencies.toBoolean()) { tasks.register('relocateShadowJar', ConfigureShadowRelocation) { target = tasks.shadowJar prefix = modGroup + ".shadow" - enabled = minimizeShadowedDependencies.toBoolean() + enabled = relocateShadowedDependencies.toBoolean() } tasks.named("shadowJar", ShadowJar).configure { manifest { @@ -686,7 +871,7 @@ if (usesShadowedDependencies.toBoolean()) { project.configurations.shadeCompile ] archiveClassifier.set('dev') - if (minimizeShadowedDependencies.toBoolean()) { + if (relocateShadowedDependencies.toBoolean()) { dependsOn(relocateShadowJar) } } @@ -705,7 +890,7 @@ if (usesShadowedDependencies.toBoolean()) { javaComponent.withVariantsFromConfiguration(configurations.shadowRuntimeElements) { skip() } - for (runTask in ["runClient", "runServer"]) { + for (runTask in ["runClient", "runServer", "runClient17", "runServer17"]) { tasks.named(runTask).configure { dependsOn("shadowJar") } @@ -743,9 +928,23 @@ idea { module { downloadJavadoc = true downloadSources = true + inheritOutputDirs = true } project { settings { + if (ideaOverrideBuildType != "") { + delegateActions { + if ("gradle".equalsIgnoreCase(ideaOverrideBuildType)) { + delegateBuildRunToGradle = true + testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.GRADLE + } else if ("idea".equalsIgnoreCase(ideaOverrideBuildType)) { + delegateBuildRunToGradle = false + testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM + } else { + throw GradleScriptException('Accepted value for ideaOverrideBuildType is one of gradle or idea.') + } + } + } runConfigurations { "1. Run Client"(Gradle) { taskNames = ["runClient"] @@ -753,6 +952,20 @@ idea { "2. Run Server"(Gradle) { taskNames = ["runServer"] } + "1a. Run Client (Java 17)"(Gradle) { + taskNames = ["runClient17"] + } + "2a. Run Server (Java 17)"(Gradle) { + taskNames = ["runServer17"] + } + "1b. Run Client (Java 17, Hotswap)"(Gradle) { + taskNames = ["runClient17"] + envs = ["HOTSWAP": "true"] + } + "2b. Run Server (Java 17, Hotswap)"(Gradle) { + taskNames = ["runServer17"] + envs = ["HOTSWAP": "true"] + } "3. Run Obfuscated Client"(Gradle) { taskNames = ["runObfClient"] } @@ -770,7 +983,7 @@ idea { } "Run Client (IJ Native)"(Application) { mainClass = "GradleStart" - moduleName = project.name + ".main" + moduleName = project.name + ".ideVirtualMain" afterEvaluate { workingDirectory = tasks.runClient.workingDir.absolutePath programParameters = tasks.runClient.calculateArgs(project).collect { '"' + it + '"' }.join(' ') @@ -781,7 +994,7 @@ idea { } "Run Server (IJ Native)"(Application) { mainClass = "GradleStartServer" - moduleName = project.name + ".main" + moduleName = project.name + ".ideVirtualMain" afterEvaluate { workingDirectory = tasks.runServer.workingDir.absolutePath programParameters = tasks.runServer.calculateArgs(project).collect { '"' + it + '"' }.join(' ') @@ -798,6 +1011,51 @@ idea { ] } } + withIDEADir { File ideaDir -> + if (!ideaDir.path.contains(".idea")) { + // If an .ipr file exists, the project root directory is passed here instead of the .idea subdirectory + ideaDir = new File(ideaDir, ".idea") + } + if (ideaDir.isDirectory()) { + def miscFile = new File(ideaDir, "misc.xml") + if (miscFile.isFile()) { + boolean dirty = false + def miscTransformer = new XmlTransformer() + miscTransformer.addAction { root -> + Node rootNode = root.asNode() + def rootManager = rootNode + .component.find { it.@name == 'ProjectRootManager' } + if (!rootManager) { + rootManager = rootNode.appendNode('component', ['name': 'ProjectRootManager', 'version': '2']) + dirty = true + } + def output = rootManager.output + if (!output) { + output = rootManager.appendNode('output') + dirty = true + } + if (!output.@url) { + // Only modify the output url if it doesn't yet have one, or if the existing one is blank somehow. + // This is a sensible default for most setups + output.@url = 'file://$PROJECT_DIR$/build/ideaBuild' + dirty = true + } + } + def result = miscTransformer.transform(miscFile.text) + if (dirty) { + miscFile.write(result) + } + } else { + miscFile.text = """ + + + + + +""" + } + } + } } } } @@ -945,10 +1203,21 @@ def addCurseForgeRelation(String type, String name) { } // Updating + +def buildscriptGradleVersion = "8.0.1" + +tasks.named('wrapper', Wrapper).configure { + gradleVersion = buildscriptGradleVersion +} + tasks.register('updateBuildScript') { group = 'GTNH Buildscript' description = 'Updates the build script to the latest version' + if (gradle.gradleVersion != buildscriptGradleVersion && !Boolean.getBoolean('DISABLE_BUILDSCRIPT_GRADLE_UPDATE')) { + dependsOn('wrapper') + } + doLast { if (performBuildScriptUpdate()) return @@ -961,6 +1230,9 @@ if (!project.getGradle().startParameter.isOffline() && !Boolean.getBoolean('DISA performBuildScriptUpdate() } else { out.style(Style.SuccessHeader).println("Build script update available! Run 'gradle updateBuildScript'") + if (gradle.gradleVersion != buildscriptGradleVersion) { + out.style(Style.SuccessHeader).println("updateBuildScript can update gradle from ${gradle.gradleVersion} to ${buildscriptGradleVersion}\n") + } } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ccebba7710deaf9f98673a68957ea02138b60d0a..943f0cbfa754578e88a3dae77fce6e3dea56edbf 100644 GIT binary patch delta 5107 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 I6Xdi10eY*&F8}}l delta 5094 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f398c33..fc10b60 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/rwg/support/SupportCC.java b/src/main/java/rwg/support/SupportCC.java index ab2ff8f..440ed06 100644 --- a/src/main/java/rwg/support/SupportCC.java +++ b/src/main/java/rwg/support/SupportCC.java @@ -2,6 +2,7 @@ import net.minecraft.init.Blocks; import net.minecraft.world.biome.BiomeGenBase; + import rwg.api.RWGBiomes; import rwg.support.Support.BiomeCategory; import rwg.surface.SurfaceGrassland; @@ -10,13 +11,8 @@ public class SupportCC { /* - ChromatiCraft BIOMES - - 46: "Ender Forest" - 47: "Rainbow Forest" - 48: "Luminous Cliffs" - 49: "Luminous Cliffs Edge" - */ + * ChromatiCraft BIOMES 46: "Ender Forest" 47: "Rainbow Forest" 48: "Luminous Cliffs" 49: "Luminous Cliffs Edge" + */ public static void init() { BiomeGenBase[] b = BiomeGenBase.getBiomeGenArray(); @@ -30,7 +26,10 @@ public static void init() { RWGBiomes.baseTemperateForest, new TerrainHighland(6f, 120f, 65f, 150f), new SurfaceGrassland( - b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone)), + b[i].topBlock, + b[i].fillerBlock, + Blocks.stone, + Blocks.cobblestone)), BiomeCategory.HOT); } @@ -41,7 +40,10 @@ public static void init() { RWGBiomes.baseOceanTemperate, new TerrainHilly(100f, 120f, 0f), new SurfaceGrassland( - b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone)), + b[i].topBlock, + b[i].fillerBlock, + Blocks.stone, + Blocks.cobblestone)), BiomeCategory.HOT); } } diff --git a/src/main/java/rwg/support/SupportTC.java b/src/main/java/rwg/support/SupportTC.java index e0466e0..c137b0a 100644 --- a/src/main/java/rwg/support/SupportTC.java +++ b/src/main/java/rwg/support/SupportTC.java @@ -40,7 +40,10 @@ public static void init() { RWGBiomes.baseTemperateForest, new TerrainHighland(6f, 120f, 65f, 150f), new SurfaceGrassland( - b[i].topBlock, b[i].fillerBlock, Blocks.stone, Blocks.cobblestone)), + b[i].topBlock, + b[i].fillerBlock, + Blocks.stone, + Blocks.cobblestone)), BiomeCategory.WET); } }