diff --git a/build.gradle b/build.gradle index 0f06dd7..d247aab 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1656003793falsepattern29 +//version: 1656003793falsepattern34 /* DO NOT CHANGE THIS FILE! @@ -24,7 +24,7 @@ buildscript { mavenLocal() maven { name = "forge" - url = "https://maven.minecraftforge.net" + url = "https://mvn.falsepattern.com/forge" } maven { name = "sonatype" @@ -36,11 +36,11 @@ buildscript { } maven { name = "jitpack" - url = "https://jitpack.falsepattern.com/" + url = "https://mvn.falsepattern.com/jitpack/" } maven { name = "mavenpattern" - url = "https://maven.falsepattern.com/" + url = "https://mvn.falsepattern.com/releases/" } } dependencies { @@ -120,6 +120,7 @@ propertyDefaultIfUnset("mavenArtifactId", "") propertyDefaultIfUnset("hasMixinDeps", false) propertyDefaultIfUnset("mixinPreinitConfig", "") propertyDefaultIfUnset("remapStubs", false) +propertyDefaultIfUnset("useObsoleteSpongeMixins", false) propertyDefaultIfUnset("remoteMappings", "https://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/") propertyDefaultIfUnset("mappingsChannel", "stable") @@ -271,51 +272,67 @@ repositories { url = "https://gregtech.overminddl1.com/" } if(usesMixins.toBoolean() || hasMixinDeps.toBoolean()) { - maven { - name = "sponge" - url = "https://sponge.falsepattern.com/" + if (useObsoleteSpongeMixins.toBoolean()) { + maven { + name = "sponge" + url = "https://mvn.falsepattern.com/sponge" + } } maven { - url = "https://jitpack.falsepattern.com/" + url = "https://mvn.falsepattern.com/jitpack" } } } dependencies { if(usesMixins.toBoolean()) { - 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("org.spongepowered:mixin:0.8-20200110.181151-15") - // using 0.8 to workaround a issue in 0.7 which fails mixin application - compile("org.spongepowered:mixin:0.7.11-20180703.121122-1") { - // Mixin includes a lot of dependencies that are too up-to-date - exclude module: "launchwrapper" - exclude module: "guava" - exclude module: "gson" - exclude module: "commons-io" - exclude module: "log4j-core" + if (useObsoleteSpongeMixins.toBoolean()) { + 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("org.spongepowered:mixin:0.8-20200110.181151-15") + // using 0.8 to workaround a issue in 0.7 which fails mixin application + compile("org.spongepowered:mixin:0.7.11-20180703.121122-1") { + // Mixin includes a lot of dependencies that are too up-to-date + exclude module: "launchwrapper" + exclude module: "guava" + exclude module: "gson" + exclude module: "commons-io" + exclude module: "log4j-core" + } + compile("com.github.GTNewHorizons:SpongeMixins:1.3.3:dev") + } else { + compile("com.github.tox1cozZ:mixin-booter-legacy:1.1.2") + annotationProcessor("com.github.tox1cozZ:mixin-booter-legacy:1.1.2:processor") } - compile("com.github.GTNewHorizons:SpongeMixins:1.3.3:dev") } if(hasMixinDeps.toBoolean()) { - runtime("org.spongepowered:mixin:0.7.11-20180703.121122-1") { - // Mixin includes a lot of dependencies that are too up-to-date - exclude module: "launchwrapper" - exclude module: "guava" - exclude module: "gson" - exclude module: "commons-io" - exclude module: "log4j-core" + if (useObsoleteSpongeMixins.toBoolean()) { + runtime("org.spongepowered:mixin:0.7.11-20180703.121122-1") { + // Mixin includes a lot of dependencies that are too up-to-date + exclude module: "launchwrapper" + exclude module: "guava" + exclude module: "gson" + exclude module: "commons-io" + exclude module: "log4j-core" + } + runtime("com.github.GTNewHorizons:SpongeMixins:1.3.3:dev") + } else { + runtime("com.github.tox1cozZ:mixin-booter-legacy:1.1.2") } - runtime("com.github.GTNewHorizons:SpongeMixins:1.3.3:dev") } } apply from: 'dependencies.gradle' +def mixinDir = new File(project.buildDir, 'mixins') +if (!mixinDir.exists()) { + mixinDir.mkdirs() +} def mixingConfigRefMap = "mixins." + modId + ".refmap.json" -def refMap = "${tasks.compileJava.temporaryDir}" + File.separator + mixingConfigRefMap -def mixinSrg = "${tasks.reobf.temporaryDir}" + File.separator + "mixins.srg" +def srgFile = new File(project.buildDir, 'srgs/mcp-srg.srg') +def mixinSrg = new File(mixinDir, "${mixingConfigRefMap}.srg") +def mixinRefMap = new File(mixinDir, mixingConfigRefMap) task generateAssets { if(usesMixins.toBoolean()) { @@ -383,18 +400,14 @@ reobf { } } -afterEvaluate { - if(usesMixins.toBoolean()) { - tasks.compileJava { - options.compilerArgs += [ - "-AreobfSrgFile=${tasks.reobf.srg}", - "-AoutSrgFile=${mixinSrg}", - "-AoutRefMapFile=${refMap}", - // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code - "-XDenableSunApiLintControl", - "-XDignore.symbol.file" - ] - } +if(usesMixins.toBoolean()) { + tasks.compileJava { + options.compilerArgs += [ + '-Xlint:-processing', + "-AreobfSrgFile=${srgFile}", + "-AoutSrgFile=${mixinSrg}", + "-AoutRefMapFile=${mixinRefMap}" + ] } } @@ -476,7 +489,7 @@ processResources { } if(usesMixins.toBoolean()) { - from refMap + from mixinRefMap } // copy everything else that's not the mcmod.info @@ -586,6 +599,14 @@ task apiJar(type: Jar) { getArchiveClassifier().set('api') } +task copySrgs(type: Copy, dependsOn: 'genSrgs') { + from plugins.getPlugin('forge').delayedFile('{SRG_DIR}') + include '**/*.srg' + into layout.buildDirectory.file('srgs') +} + +compileJava.dependsOn(copySrgs) + artifacts { archives sourcesJar archives devJar @@ -694,7 +715,7 @@ task updateBuildScript { } } -if (!skipBuildScriptUpdateCheck.toBoolean() && isNewBuildScriptVersionAvailable(projectDir.toString())) { +if (!project.getGradle().startParameter.isOffline() && !skipBuildScriptUpdateCheck.toBoolean() && isNewBuildScriptVersionAvailable(projectDir.toString())) { if (autoUpdateBuildScript.toBoolean()) { performBuildScriptUpdate(projectDir.toString()) } else { diff --git a/dependencies.gradle b/dependencies.gradle index 83a15a9..9da0166 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -15,7 +15,7 @@ dependencies { } annotationProcessor("org.projectlombok:lombok:1.18.22") - compile("com.falsepattern:falsepatternlib-mc1.7.10:0.9.2:dev") + compile("com.falsepattern:falsepatternlib-mc1.7.10:0.10.5:dev") ////////////////Patched mods//////////////// @@ -31,8 +31,8 @@ dependencies { //Anti ID Conflict 1.3.5 compile(deobfCurse("antiidconflict-246288:2308279")) - //ArchaicFix snapshot - compileOnly("com.github.embeddedt:ArchaicFix:be8666cb2dbf2e0a8b799e88cef3c0d12e5d4911:dev") +// //ArchaicFix 0.2.0 +// compileOnly("com.github.embeddedt:ArchaicFix:0.2.0:dev") //Atum 0.6.77 compile(deobfCurse("atum-59621:2256356")) diff --git a/gradle.properties b/gradle.properties index 2fe4d6f..7b87c88 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,7 +14,7 @@ modGroup = com.falsepattern.endlessids # # The server to upload the artifacts to -repositoryURL = https://maven.falsepattern.com +repositoryURL = https://mvn.falsepattern.com/releases # What name is the login information inside ~/.m2/settings.xml stored under # (see https://gist.github.com/FalsePattern/82d93e3cfab01f671cc5f4a95931cfe3 for an example) @@ -70,6 +70,11 @@ mixinPlugin = mixin.plugin.MixinPlugin mixinsPackage = mixin.mixins # Specify a preinit mixin here. Preinit mixins should be used very rarely, if at all, so this mixin config will not be managed by the buildscript, only included. mixinPreinitConfig = +# By default, the buildscript uses mixin-booter-legacy for mixins. You can force the buildscript to use the obsolete SpongeMixins +# library using this setting. +# MixinBooterLegacy provides Mixins 0.8.2 +# SpongeMixins provides Mixins 0.7.11 on the official version, and Mixins 0.7.12 on the nh version +useObsoleteSpongeMixins = false # Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! # This parameter is for legacy compatibility only # Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin diff --git a/repositories.gradle b/repositories.gradle index 61ccaa9..4845be7 100644 --- a/repositories.gradle +++ b/repositories.gradle @@ -3,17 +3,17 @@ repositories { maven { name = "cursemaven" - url = "https://cursemaven.falsepattern.com/" + url = "https://mvn.falsepattern.com/cursemaven/" content { includeGroup "curse.maven" } } maven { name = "mavenpattern" - url = "https://maven.falsepattern.com/" + url = "https://mvn.falsepattern.com/releases/" } maven { name = "jitpack" - url = "https://jitpack.falsepattern.com/" + url = "https://mvn.falsepattern.com/jitpack/" } } diff --git a/src/main/java/com/falsepattern/endlessids/IEPlugin.java b/src/main/java/com/falsepattern/endlessids/IEPlugin.java index 82d5dd4..d8f847f 100644 --- a/src/main/java/com/falsepattern/endlessids/IEPlugin.java +++ b/src/main/java/com/falsepattern/endlessids/IEPlugin.java @@ -1,9 +1,6 @@ package com.falsepattern.endlessids; import com.falsepattern.endlessids.asm.IETransformer; -import com.falsepattern.endlessids.config.GeneralConfig; -import com.falsepattern.lib.config.ConfigException; -import com.falsepattern.lib.config.ConfigurationManager; import lombok.SneakyThrows; import lombok.val; @@ -23,13 +20,6 @@ import static cpw.mods.fml.relauncher.IFMLLoadingPlugin.TransformerExclusions; @TransformerExclusions({"com.falsepattern.endlessids.asm"}) @DependsOn("falsepatternlib") public class IEPlugin implements IFMLLoadingPlugin { - static { - try { - ConfigurationManager.registerConfig(GeneralConfig.class); - } catch (ConfigException e) { - System.err.println("Failed to load EndlessIDs config. Using defaults."); - } - } public IEPlugin() { super(); diff --git a/src/main/java/com/falsepattern/endlessids/config/DarkWorldIDConfig.java b/src/main/java/com/falsepattern/endlessids/config/DarkWorldIDConfig.java index d2f71c8..d4a04d8 100644 --- a/src/main/java/com/falsepattern/endlessids/config/DarkWorldIDConfig.java +++ b/src/main/java/com/falsepattern/endlessids/config/DarkWorldIDConfig.java @@ -3,17 +3,12 @@ package com.falsepattern.endlessids.config; import com.falsepattern.endlessids.Tags; import com.falsepattern.endlessids.constants.ExtendedConstants; import com.falsepattern.lib.config.Config; -import com.falsepattern.lib.config.ConfigException; import com.falsepattern.lib.config.ConfigurationManager; @Config(modid = Tags.MODID, category = "darkworld") public class DarkWorldIDConfig { static { - try { - ConfigurationManager.registerConfig(DarkWorldIDConfig.class); - } catch (ConfigException e) { - throw new RuntimeException(e); - } + ConfigurationManager.selfInit(); } @Config.Comment("Original: 100") @Config.RangeInt(min = 40, max = ExtendedConstants.biomeIDCount - 1) diff --git a/src/main/java/com/falsepattern/endlessids/config/FuturepackIDConfig.java b/src/main/java/com/falsepattern/endlessids/config/FuturepackIDConfig.java index 9a2d542..37df4e9 100644 --- a/src/main/java/com/falsepattern/endlessids/config/FuturepackIDConfig.java +++ b/src/main/java/com/falsepattern/endlessids/config/FuturepackIDConfig.java @@ -3,17 +3,12 @@ package com.falsepattern.endlessids.config; import com.falsepattern.endlessids.Tags; import com.falsepattern.endlessids.constants.ExtendedConstants; import com.falsepattern.lib.config.Config; -import com.falsepattern.lib.config.ConfigException; import com.falsepattern.lib.config.ConfigurationManager; @Config(modid = Tags.MODID, category = "futurepack") public class FuturepackIDConfig { static { - try { - ConfigurationManager.registerConfig(FuturepackIDConfig.class); - } catch (ConfigException e) { - throw new RuntimeException(e); - } + ConfigurationManager.selfInit(); } @Config.Comment("Original: 97") @Config.RangeInt(min = 40, max = ExtendedConstants.biomeIDCount - 1) diff --git a/src/main/java/com/falsepattern/endlessids/config/GeneralConfig.java b/src/main/java/com/falsepattern/endlessids/config/GeneralConfig.java index 6c9aa83..9372d94 100644 --- a/src/main/java/com/falsepattern/endlessids/config/GeneralConfig.java +++ b/src/main/java/com/falsepattern/endlessids/config/GeneralConfig.java @@ -2,16 +2,23 @@ package com.falsepattern.endlessids.config; import com.falsepattern.endlessids.Tags; import com.falsepattern.lib.config.Config; +import com.falsepattern.lib.config.ConfigurationManager; @Config(modid = Tags.MODID) public class GeneralConfig { - public static boolean catchUnregisteredBlocks = false; + static { + ConfigurationManager.selfInit(); + } + @Config.DefaultBoolean(false) + public static boolean catchUnregisteredBlocks; @Config.Comment("Remove invalid (corrupted) blocks from the game.") - public static boolean removeInvalidBlocks = false; + @Config.DefaultBoolean(false) + public static boolean removeInvalidBlocks; @Config.Comment("Extend DataWatcher IDs. Vanilla limit is 31, new limit is 127.") - public static boolean extendDataWatcher = false; + @Config.DefaultBoolean(false) + public static boolean extendDataWatcher; @Config.Comment( "Setting this value greater than 0 will reduce RAM usage, at the cost of less available Block IDs.\n" + @@ -21,5 +28,6 @@ public class GeneralConfig { "(0: 16M, 1: 8M, 2: 4M, 3: 2M, 4: 1M, 5: 512K, 6: 256K, 7: 128K, 8: 64K, 9: 32K, 10: 16K, 11: 8K, 12: 4K)\n") @Config.RangeInt(min = 0, max = 12) - public static int countCorrectionBits = 0; + @Config.DefaultInt(0) + public static int countCorrectionBits; } diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/antiidconflict/AntiIdConflictBaseMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/antiidconflict/AntiIdConflictBaseMixin.java index b48fe4a..fd2da31 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/antiidconflict/AntiIdConflictBaseMixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/antiidconflict/AntiIdConflictBaseMixin.java @@ -1,7 +1,7 @@ package com.falsepattern.endlessids.mixin.mixins.common.antiidconflict; import code.elix_x.coremods.antiidconflict.AntiIdConflictBase; -import org.spongepowered.asm.lib.Opcodes; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At;