diff --git a/addon.gradle b/addon.gradle index 2808d77d3..03af67ec8 100644 --- a/addon.gradle +++ b/addon.gradle @@ -3,25 +3,25 @@ minecraft { injectedTags.put 'GROOVY_VERSION', groovy_version - if (project.debug_use_examples_folder.toBoolean()) { + if (project.dev_use_examples_folder.toBoolean()) { extraRunJvmArguments.add('-Dgroovyscript.use_examples_folder=true') } - if (project.debug_run_ls.toBoolean()) { + if (project.dev_run_ls.toBoolean()) { extraRunJvmArguments.add('-Dgroovyscript.run_ls=true') } - if (project.debug_generate_examples.toBoolean()) { + if (project.dev_generate_examples.toBoolean()) { extraRunJvmArguments.add('-Dgroovyscript.generate_examples=true') } - if (project.debug_generate_wiki.toBoolean()) { + if (project.dev_generate_wiki.toBoolean()) { extraRunJvmArguments.add('-Dgroovyscript.generate_wiki=true') } - if (project.debug_generate_and_crash.toBoolean()) { + if (project.dev_generate_and_crash.toBoolean()) { extraRunJvmArguments.add('-Dgroovyscript.generate_and_crash=true') } - if (project.debug_log_missing_lang_keys.toBoolean()) { + if (project.dev_log_missing_lang_keys.toBoolean()) { extraRunJvmArguments.add('-Dgroovyscript.log_missing_lang_keys=true') } - if (project.debug_disable_cache.toBoolean()) { + if (project.dev_disable_cache.toBoolean()) { extraRunJvmArguments.add('-Dgroovyscript.disable_cache=true') } diff --git a/build.gradle b/build.gradle index 65d0de86f..6a3ac5928 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1723428048 +//version: 1753288091 /* * DO NOT CHANGE THIS FILE! * Also, you may replace this file at any time if there is an update available. @@ -50,6 +50,8 @@ def out = services.get(StyledTextOutputFactory).create('an-output') // Project properties +loadProjectProperties() + // Required properties: we don't know how to handle these being missing gracefully checkPropertyExists("modName") @@ -80,6 +82,7 @@ propertyDefaultIfUnset("includeWellKnownRepositories", true) propertyDefaultIfUnset("includeCommonDevEnvMods", true) propertyDefaultIfUnset("stripForgeRequirements", false) propertyDefaultIfUnset("noPublishedSources", false) +propertyDefaultIfUnset("mixinProviderSpec", "zone.rong:mixinbooter:10.6") propertyDefaultIfUnset("forceEnableMixins", false) propertyDefaultIfUnset("mixinConfigRefmap", "mixins.${project.modId}.refmap.json") propertyDefaultIfUnsetWithEnvVar("enableCoreModDebug", false, "CORE_MOD_DEBUG") @@ -518,7 +521,6 @@ configurations { testRuntimeClasspath.extendsFrom(runtimeOnlyNonPublishable) } -String mixinProviderSpec = 'zone.rong:mixinbooter:9.1' dependencies { if (usesMixins.toBoolean()) { annotationProcessor 'org.ow2.asm:asm-debug-all:5.2' @@ -870,10 +872,10 @@ if (enableJava17RunTasks.toBoolean()) { dependencies { if (modId != 'lwjgl3ify') { - java17Dependencies("io.github.twilightflower:lwjgl3ify:1.0.0") - } - java17PatchDependencies("io.github.twilightflower:lwjgl3ify:1.0.0:forgePatches") { + java17Dependencies("io.github.twilightflower:lwjgl3ify:1.0.1") + java17PatchDependencies("io.github.twilightflower:lwjgl3ify:1.0.1:forgePatches") { transitive = false + } } } @@ -1475,7 +1477,7 @@ tasks.register('faq') { "To add new dependencies to your project, place them in 'dependencies.gradle', NOT in 'build.gradle' as they would be replaced when the script updates.\n" + "To add new repositories to your project, place them in 'repositories.gradle'.\n" + "If you need additional gradle code to run, you can place it in a file named 'addon.gradle' (or either of the above, up to you for organization).\n\n" + - "If your build fails to recognize the syntax of newer Java versions, enable Jabel in your 'gradle.properties' under the option name 'enableModernJavaSyntax'.\n" + + "If your build fails to recognize the syntax of newer Java versions, enable Jabel in your 'buildscript.properties' under the option name 'enableModernJavaSyntax'.\n" + "To see information on how to configure your IDE properly for Java 17, see https://github.com/GregTechCEu/Buildscripts/blob/master/docs/jabel.md\n\n" + "Report any issues or feature requests you have for this build script to https://github.com/GregTechCEu/Buildscripts/issues\n") } @@ -1483,6 +1485,20 @@ tasks.register('faq') { // Helpers +def loadProjectProperties() { + def configFile = file("buildscript.properties") + if (configFile.exists()) { + configFile.withReader { + def prop = new Properties() + prop.load(it) + new ConfigSlurper().parse(prop).forEach { String k, def v -> + project.ext.setProperty(k, v) + } + } + } else { + print("Failed to read from buildscript.properties, as it did not exist!") + } +} def getDefaultArtifactGroup() { def lastIndex = project.modGroup.lastIndexOf('.') @@ -1495,7 +1511,7 @@ def getFile(String relativePath) { def checkPropertyExists(String propertyName) { if (!project.hasProperty(propertyName)) { - throw new GradleException("This project requires a property \"" + propertyName + "\"! Please add it your \"gradle.properties\". You can find all properties and their description here: https://github.com/GregTechCEu/Buildscripts/blob/main/gradle.properties") + throw new GradleException("This project requires a property \"" + propertyName + "\"! Please add it your \"buildscript.properties\" or \"gradle.properties\". You can find all properties and their description here: https://github.com/GregTechCEu/Buildscripts/blob/main/buildscript.properties and https://github.com/GregTechCEu/Buildscripts/blob/main/gradle.properties") } } diff --git a/buildscript.properties b/buildscript.properties new file mode 100644 index 000000000..b3a212c3e --- /dev/null +++ b/buildscript.properties @@ -0,0 +1,270 @@ +# +# The "buildscript.properties" file contains settings loaded and used by the "build.gradle" file. +# For settings loaded in all gradle files or custom settings, use "gradle.properties" instead. +# New properties should not be created in this file, use "gradle.properties" instead. +# + +# The name of your mod. Can be any sequence of characters. +modName = GroovyScript + +# This is a case-sensitive string to identify your mod. +# Must be less than 64 characters and all lowercase. Convention is to only contain alphabetic characters. +modId = groovyscript + +# Project package location. +modGroup = com.cleanroommc.groovyscript + +# Version of your mod. +# This field can be left empty if you want your mod's version to be determined by the latest git tag instead. +modVersion = 1.2.5 + +# Whether to use the old jar naming structure (modid-mcversion-version) instead of the new version (modid-version) +includeMCVersionJar = false + +# The name of your jar when you produce builds, not including any versioning info +modArchivesBaseName = groovyscript + +# Will update your build.gradle automatically whenever an update is available +autoUpdateBuildScript = false + +minecraftVersion = 1.12.2 + +# Select a username for testing your mod with breakpoints. You may leave this empty for a random username each time you +# restart Minecraft in development. Choose this dependent on your mod: +# Do you need consistent player progressing (for example Thaumcraft)? -> Select a name +# Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty +# Alternatively this can be set with the 'DEV_USERNAME' environment variable. +developmentEnvironmentUserName = Developer + +# Additional arguments applied to the JVM when launching minecraft +# Syntax: -arg1=value1;-arg2=value2;... +# Example value: -Dmixin.debug.verify=true;-XX:+UnlockExperimentalVMOptions +additionalJavaArguments = -Dterminal.jline=true + +# Enables using modern java syntax (up to version 17) via Jabel, while still targeting JVM 8. +# See https://github.com/bsideup/jabel for details on how this works. +# Using this requires that you use a Java 17 JDK for development. +enableModernJavaSyntax = true + +# Enables runClient/runServer tasks for Java 17 and Java 21 using LWJGL3ify. +# This is primarily used to test if your mod is compatible with platforms running +# Minecraft 1.12.2 on modern versions of Java and LWJGL, and assist in fixing any problems with it. +# Using this requires that you use a Java 17/Java 21 JDK for development. +enableJava17RunTasks = false + +# Generate a class with String fields for the mod id, name and version named with the fields below +generateGradleTokenClass = com.cleanroommc.groovyscript.Tags +gradleTokenModId = MODID +gradleTokenModName = MODNAME +gradleTokenVersion = VERSION + +# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can +# leave this property empty. +# Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api +apiPackage = + +# If you want to keep your API code in src/api instead of src/main +useSrcApiPath = false + +# Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/ +# There can be multiple files in a comma-separated list. +# Example value: mymodid_at.cfg,jei_at.cfg +accessTransformersFile = + +# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled! +usesMixins = true +# Mixin Provider to use. Primarily changed when needing to use a different version. +mixinProviderSpec = zone.rong:mixinbooter:10.7 +# Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail! +mixinsPackage = core.mixin +# Location of the mixin config refmap. If left, blank, defaults to "mixins.${modId}.refmap.json". Target file must have the "json" extension. +mixinConfigRefmap = +# Automatically generates a mixin config json if enabled, with the name mixins.modid.json +generateMixinConfig = false +# Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! +# Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin +coreModClass = core.GroovyScriptCore +# If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod (meaning that +# there is no class annotated with @Mod) you want this to be true. When in doubt: leave it on false! +containsMixinsAndOrCoreModOnly = false + +# Enables Mixins even if this mod doesn't use them, useful if one of the dependencies uses mixins. +forceEnableMixins = false + +# Outputs pre-transformed and post-transformed loaded classes to run/CLASSLOADER_TEMP. Can be used in combination with +# diff to see exactly what your ASM or Mixins are changing in the target file. +# Optionally can be specified with the 'CORE_MOD_DEBUG' env var. Will output a lot of files! +enableCoreModDebug = false + +# Adds CurseMaven, Modrinth Maven, BlameJared maven, and some more well-known 1.12.2 repositories +includeWellKnownRepositories = true + +# Adds JEI and TheOneProbe to your development environment. Adds them as 'implementation', meaning they will +# be available at compiletime and runtime for your mod (in-game and in-code). +# Overrides the above setting to be always true, as these repositories are needed to fetch the mods +includeCommonDevEnvMods = true + +# Some mods require a specific forge version to launch in. When you need to use one of those mods as a dependency, +# and cannot launch with the forge version required, enable this to strip the forge version requirements from that mod. +# This will add 'strip-latest-forge-requirements' as 'runtimeOnlyNonPublishable'. +# Requires useMixins or forceEnableMixins to be true, as the mod uses mixins to function. +stripForgeRequirements = true + + +# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your +# responsibility check the licence and request permission for distribution, if required. +usesShadowedDependencies = false +# If disabled, won't remove unused classes from shaded dependencies. Some libraries use reflection to access +# their own classes, making the minimization unreliable. +minimizeShadowedDependencies = true +# If disabled, won't rename the shadowed classes. +relocateShadowedDependencies = true + +# Separate run directories into "run/client" for runClient task, and "run/server" for runServer task. +# Useful for debugging a server and client simultaneously. If not enabled, it will be in the standard location "run/" +separateRunDirectories = false + +# The display name format of versions published to Curse and Modrinth. $MOD_NAME and $VERSION are available variables. +# Default: $MOD_NAME \u2212 $VERSION. \u2212 is the minus character which looks much better than the hyphen minus on Curse. +versionDisplayFormat = $MOD_NAME \u2212 $VERSION + +# Publishing to modrinth requires you to set the MODRINTH_API_KEY environment variable to your current modrinth API token. + +# The project's ID on Modrinth. Can be either the slug or the ID. +# Leave this empty if you don't want to publish on Modrinth. +# Alternatively this can be set with the 'MODRINTH_PROJECT_ID' environment variable. +modrinthProjectId = GJaDRTrb + +# The project's relations on Modrinth. You can use this to refer to other projects on Modrinth. +# Syntax: scope1-type1:name1;scope2-type2:name2;... +# Where scope can be one of [required, optional, incompatible, embedded], +# type can be one of [project, version], +# and the name is the Modrinth project or version slug/id of the other mod. +# Example: required-project:jei;optional-project:top;incompatible-project:gregtech +modrinthRelations = req:mixinbooter + + +# Publishing to CurseForge requires you to set the CURSEFORGE_API_KEY environment variable to one of your CurseForge API tokens. + +# The project's numeric ID on CurseForge. You can find this in the About Project box. +# Leave this empty if you don't want to publish on CurseForge. +# Alternatively this can be set with the 'CURSEFORGE_PROJECT_ID' environment variable. +curseForgeProjectId = 687577 + +# The project's relations on CurseForge. You can use this to refer to other projects on CurseForge. +# Syntax: type1:name1;type2:name2;... +# Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible], +# and the name is the CurseForge project slug of the other mod. +# Example: requiredDependency:railcraft;embeddedLibrary:cofhlib;incompatible:buildcraft +curseForgeRelations = req:mixin-booter;\ + opt:actually-additions;\ + opt:additional-enchanted-miner;\ + opt:advanced-mortars;\ + opt:advanced-rocketry;\ + opt:advanced-rocketry-2;\ + opt:aether;\ + opt:alchemistry;\ + opt:angry-pixel-the-betweenlands-mod;\ + opt:applied-energistics-2;\ + opt:arcane-archives;\ + opt:arcane-world;\ + opt:astral-sorcery;\ + opt:atum;\ + opt:avaritia-1-10;\ + opt:better-with-addons;\ + opt:bewitchment;\ + opt:blood-arsenal;\ + opt:blood-magic;\ + opt:botania;\ + opt:botania-tweaks;\ + opt:botanic-additions;\ + opt:bwm-suite;\ + opt:bwm-core;\ + opt:calculator;\ + opt:chisel;\ + opt:compact-machines;\ + opt:constructs-armory;\ + opt:cyclic;\ + opt:draconic-evolution;\ + opt:ender-io;\ + opt:essentialcraft-4-unofficial;\ + opt:evilcraft;\ + opt:extended-crafting;\ + opt:extrabotany;\ + opt:extra-utilities;\ + opt:forestry;\ + opt:future-mc;\ + opt:had-enough-items;\ + opt:horse-power;\ + opt:ic2-classic;\ + opt:ice-and-fire-dragons;\ + opt:immersive-engineering;\ + opt:immersive-petroleum;\ + opt:industrial-craft;\ + opt:industrial-foregoing;\ + opt:inspirations;\ + opt:integrated-dynamics;\ + opt:lazy-ae2;\ + opt:magneticraft;\ + opt:mct-immersive-technology;\ + opt:mekanism;\ + opt:mystical-agriculture;\ + opt:natures-aura;\ + opt:pneumaticcraft-repressurized;\ + opt:primal-tech;\ + opt:prodigy-tech;\ + opt:projecte;\ + opt:pyrotech;\ + opt:random-things;\ + opt:rustic;\ + opt:roots;\ + opt:silents-gems;\ + opt:techreborn;\ + opt:thaumcraft;\ + opt:the-aurorian;\ + opt:thermal-expansion;\ + opt:tinkers-construct;\ + opt:tinkers-complement;\ + opt:woot; + +# This project's release type on CurseForge and/or Modrinth +# Alternatively this can be set with the 'RELEASE_TYPE' environment variable. +# Allowed types: release, beta, alpha +releaseType = + +# Generate a default changelog for releases. Requires git to be installed, as it uses it to generate a changelog of +# commits since the last tagged release. +generateDefaultChangelog = false + +# Prevent the source code from being published +noPublishedSources = false + + +# Publish to a custom maven location. Follows a few rules: +# Group ID can be set with the 'ARTIFACT_GROUP_ID' environment variable, default to 'project.group' +# Artifact ID can be set with the 'ARTIFACT_ID' environment variable, default to 'project.name' +# Version can be set with the 'RELEASE_VERSION' environment variable, default to 'modVersion' +# For maven credentials: +# Username is set with the 'MAVEN_USER' environment variable, default to "NONE" +# Password is set with the 'MAVEN_PASSWORD' environment variable, default to "NONE" +customMavenPublishUrl = https://repo.cleanroommc.com/releases + +# The group for maven artifacts. Defaults to the 'project.modGroup' until the last '.' (if any). +# So 'mymod' becomes 'mymod' and 'com.myname.mymodid' 'becomes com.myname' +mavenArtifactGroup = com.cleanroommc + +# Enable spotless checks +# Enforces code formatting on your source code +# By default this will use the files found here: https://github.com/GregTechCEu/Buildscripts/tree/master/spotless +# to format your code. However, you can create your own version of these files and place them in your project's +# root directory to apply your own formatting options instead. +enableSpotless = true + +# Enable JUnit testing platform used for testing your code. +# Uses JUnit 5. See guide and documentation here: https://junit.org/junit5/docs/current/user-guide/ +enableJUnit = true + +# Deployment debug setting +# Uncomment this to test deployments to CurseForge and Modrinth +# Alternatively, you can set the 'DEPLOYMENT_DEBUG' environment variable. +deploymentDebug = false diff --git a/dependencies.gradle b/dependencies.gradle index 8802b1baa..73bb9dd77 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -25,124 +25,124 @@ // A hash map of curse maven mods to debug options that will enable it in runtime. // Anything that should be handled differently than always being "compileOnly" and also being "runtimeOnly" when debug enabled // should be handled in the main dependencies function. -// Sorted by alphabetical name of the `project.debug_[this]` value -final def mod_dependencies = [ - 'actually-additions-228404:3117927' : [project.debug_actually_additions], - 'additionalenchantedminer-282837:3851282' : [project.debug_additional_enchanted_miner], - 'advancedmortars-283777:2780626' : [project.debug_adv_mortars], - 'advanced-rocketry-236542:4671856' : [project.debug_advanced_rocketry], - 'libvulpes-236541:3801015' : [project.debug_advanced_rocketry], - 'aether-255308:3280119' : [project.debug_aether], - 'alchemistry-293425:3186612' : [project.debug_alchemistry], - 'alchemylib-293426:2761706' : [project.debug_alchemistry], - 'shadowfacts-forgelin-248453:2785465' : [project.debug_alchemistry, project.debug_future_mc, project.debug_industrial_foregoing, project.debug_magneticraft], - 'ae2-extended-life-570458:4553942' : [project.debug_applied_energistics_2, project.debug_lazy_ae2], - 'arcane-archives-311357:3057332' : [project.debug_arcane_archives], - 'guidebook-253874:2989594' : [project.debug_arcane_archives], - 'mystical_lib-277064:3483816' : [project.debug_arcane_archives, project.debug_roots], - 'lemonlib-306926:2639879' : [project.debug_arcane_world, project.debug_arcane_world_rotn], - 'arcane-world-302852:2972860' : [project.debug_arcane_world], - 'arcane-world-rotn-edition-475553:3523150' : [project.debug_arcane_world_rotn], - 'armor-plus-237366:2952741' : [project.debug_armor_plus], - 'thedragonlib-248055:2580332' : [project.debug_armor_plus], - 'astralsorcery-sorcery-241721:3044416' : [project.debug_astral], - 'baubles-227083:2518667' : [project.debug_blood_arsenal, project.debug_astral, project.debug_bewitchment, project.debug_botania, project.debug_botania_tweaks, project.debug_botanic_additions, project.debug_essentialcraft_4, project.debug_extra_botany, project.debug_thaum], - 'the-aurorian-352137:4981736' : [project.debug_aurorian], - 'avaritia_1_10-261348:3143349' : [project.debug_avaritia], - 'atum-2-59621:3116599' : [project.debug_atum], - 'better-with-addons-268326:2899407' : [project.debug_better_with_addons], - 'bwm-core-294335:2624990' : [project.debug_better_with_addons, project.debug_better_with_mods], - 'bwm-suite-246760:3289033' : [project.debug_better_with_addons, project.debug_better_with_mods], - 'bewitchment-legacy-285439:6379256' : [project.debug_bewitchment], - 'blood-arsenal-228823:2904183' : [project.debug_blood_arsenal], - 'blood-magic-224791:2822288' : [project.debug_blood_arsenal, project.debug_blood_magic], - 'guide-api-228832:2645992' : [project.debug_blood_arsenal, project.debug_blood_magic, project.debug_woot], - 'botania-225643:3330934' : [project.debug_botania, project.debug_botania_tweaks, project.debug_botanic_additions, project.debug_extra_botany], - 'botania-tweaks-295114:3092102' : [project.debug_botania_tweaks], - 'botanic-additions-310637:2939405' : [project.debug_botanic_additions], - 'hammer-lib-247401:5259462' : [project.debug_botanic_additions], - 'calculator-225104:2847174' : [project.debug_calculator], - 'sonar-core-239418:2645156' : [project.debug_calculator], - 'chisel-235279:2915375' : [project.debug_chisel], - 'ctm-267602:2915363' : [project.debug_chisel], - 'compact-machines-224218:2707509' : [project.debug_compact_machines], - 'cyclic-239286:4075832' : [project.debug_cyclic], - 'brandons_core-231382:3408276' : [project.debug_draconic_evolution], - 'draconic_evolution-223565:3431261' : [project.debug_draconic_evolution], - 'redstone_flux-270789:2920436' : [project.debug_draconic_evolution, project.debug_thermal], - 'the-erebus-220698:3211974' : [project.debug_erebus], - 'essentialcraft-4-unofficial-254817:5416404' : [project.debug_essentialcraft_4], - 'dummycore-unofficial-266491:2611426' : [project.debug_essentialcraft_4], - 'cyclops-core-232758:3159497' : [project.debug_evilcraft, project.debug_integrated_dynamics], - 'evilcraft-74610:2811267' : [project.debug_evilcraft], - 'cucumber-272335:2645867' : [project.debug_extended_crafting, project.debug_mystical_agriculture], - 'extended-crafting-nomifactory-edition-398267:3613140': [project.debug_extended_crafting], - 'extrabotany-299086:3112313' : [project.debug_extra_botany], - 'extra-utilities-2-225561:2678374' : [project.debug_extra_utilities_2], - 'factory-tech-278822:3845293' : [project.debug_factory_tech], - 'forestry-59751:2918418' : [project.debug_forestry], - 'future-mc-310059:5626387' : [project.debug_future_mc], - 'horse-power-270466:2705433' : [project.debug_horse_power], - 'llibrary-243298:2504999' : [project.debug_ice_and_fire_old, project.debug_ice_and_fire_rotn], - 'immersive_engineering-231951:2974106' : [project.debug_immersive_engineering, project.debug_immersive_petroleum, project.debug_immersive_technology], - 'immersive-petroleum-268250:3382321' : [project.debug_immersive_petroleum], - 'mct-immersive-technology-359407:5108047' : [project.debug_immersive_technology], - 'tesla-core-lib-254602:3438487' : [project.debug_industrial_foregoing], - 'industrialforegoing-266515:2745321' : [project.debug_industrial_foregoing], - 'inspirations-284007:2843007' : [project.debug_inspirations], - 'mantle-74924:2713386' : [project.debug_inspirations, project.debug_tinkers], - 'common-capabilities-247007:3053017' : [project.debug_integrated_dynamics], - 'integrated-dynamics-236307:3159505' : [project.debug_integrated_dynamics], - 'lazy-ae2-322347:3254160' : [project.debug_lazy_ae2], - 'libnine-322344:3509087' : [project.debug_lazy_ae2], - 'magneticraft-224808:3791484' : [project.debug_magneticraft], - 'modelloader-277663:2744735' : [project.debug_magneticraft], - 'mekanism-268560:2835175' : [project.debug_mekanism], - 'mystical_agriculture-246640:2704562' : [project.debug_mystical_agriculture], - 'natures-aura-306626:2882138' : [project.debug_natures_aura], - 'packmode-278398:2567799' : [project.debug_packmode], - 'primal-tech-290612:2801696' : [project.debug_primal_tech], - 'pneumaticcraft-repressurized-281849:2978408' : [project.debug_pneumaticcraft], - 'projecte-226410:2702991' : [project.debug_projecte], - 'athenaeum-284350:4633750' : [project.debug_pyrotech], - 'pyrotech-306676:4956838' : [project.debug_pyrotech], - 'random-things-59816:2905241' : [project.debug_random_things], - 'mystical_world-282940:3460961' : [project.debug_roots], - 'patchouli-306770:3162874' : [project.debug_bewitchment, project.debug_roots, project.debug_natures_aura, project.debug_prodigytech], - 'prodigytech-297414:2769520' : [project.debug_prodigytech], - 'roots-246183:3905074' : [project.debug_roots], - 'rustic-256141:3107974' : [project.debug_rustic], - 'silents-gems-220311:2804966' : [project.debug_silents_gems], - 'silents-lib-242998:2851111' : [project.debug_silents_gems], - 'reborncore-237903:3330308' : [project.debug_tech_reborn], - 'techreborn-233564:2966851' : [project.debug_tech_reborn], - 'thaumcraft-223628:2629023' : [project.debug_thaum], - 'cofh_core-69162:2920433' : [project.debug_thermal], - 'cofh_world-271384:2920434' : [project.debug_thermal], - 'thermal_expansion-69163:2926431' : [project.debug_thermal], - 'thermal_foundation-222880:2926428' : [project.debug_thermal], - 'constructs-armory-287683:3174535' : [project.debug_tinkers], - 'tinkers-complement-272671:2843439' : [project.debug_tinkers], - 'tinkers_construct-74072:2902483' : [project.debug_tinkers], - 'woot-244049:2712670' : [project.debug_woot], +// Sorted alphabetically. +final Map> mod_dependencies = [ + 'actually-additions-228404:3117927' : [debug_actually_additions], + 'additionalenchantedminer-282837:3851282' : [debug_additional_enchanted_miner], + 'advanced-rocketry-236542:4671856' : [debug_advanced_rocketry], + 'advancedmortars-283777:2780626' : [debug_advanced_mortars], + 'ae2-extended-life-570458:4553942' : [debug_applied_energistics_2, debug_lazy_ae2], + 'aether-255308:3280119' : [debug_aether], + 'alchemistry-293425:3186612' : [debug_alchemistry], + 'alchemylib-293426:2761706' : [debug_alchemistry], + 'arcane-archives-311357:3057332' : [debug_arcane_archives], + 'arcane-world-302852:2972860' : [debug_arcane_world], + 'arcane-world-rotn-edition-475553:3523150' : [debug_arcane_world_rotn], + 'armor-plus-237366:2952741' : [debug_armor_plus], + 'astralsorcery-sorcery-241721:3044416' : [debug_astral], + 'athenaeum-284350:4633750' : [debug_pyrotech], + 'atum-2-59621:3116599' : [debug_atum_2], + 'avaritia_1_10-261348:3143349' : [debug_avaritia], + 'baubles-227083:2518667' : [debug_blood_arsenal, debug_astral, debug_bewitchment, debug_botania, debug_botania_tweaks, debug_botanic_additions, debug_essentialcraft_4, debug_extra_botany, debug_thaumcraft], + 'better-with-addons-268326:2899407' : [debug_better_with_addons], + 'bewitchment-legacy-285439:6379256' : [debug_bewitchment], + 'blood-arsenal-228823:2904183' : [debug_blood_arsenal], + 'blood-magic-224791:2822288' : [debug_blood_arsenal, debug_blood_magic], + 'botania-225643:3330934' : [debug_botania, debug_botania_tweaks, debug_botanic_additions, debug_extra_botany], + 'botania-tweaks-295114:3092102' : [debug_botania_tweaks], + 'botanic-additions-310637:2939405' : [debug_botanic_additions], + 'brandons_core-231382:3408276' : [debug_draconic_evolution], + 'bwm-core-294335:2624990' : [debug_better_with_addons, debug_better_with_mods], + 'bwm-suite-246760:3289033' : [debug_better_with_addons, debug_better_with_mods], + 'calculator-225104:2847174' : [debug_calculator], + 'chisel-235279:2915375' : [debug_chisel], + 'cofh_core-69162:2920433' : [debug_thermal_expansion], + 'cofh_world-271384:2920434' : [debug_thermal_expansion], + 'common-capabilities-247007:3053017' : [debug_integrated_dynamics], + 'compact-machines-224218:2707509' : [debug_compact_machines], + 'constructs-armory-287683:3174535' : [debug_tinkers_construct], + 'ctm-267602:2915363' : [debug_chisel], + 'cucumber-272335:2645867' : [debug_extended_crafting, debug_mystical_agriculture], + 'cyclic-239286:4075832' : [debug_cyclic], + 'cyclops-core-232758:3159497' : [debug_evilcraft, debug_integrated_dynamics], + 'draconic_evolution-223565:3431261' : [debug_draconic_evolution], + 'dummycore-unofficial-266491:2611426' : [debug_essentialcraft_4], + 'essentialcraft-4-unofficial-254817:5416404' : [debug_essentialcraft_4], + 'evilcraft-74610:2811267' : [debug_evilcraft], + 'extended-crafting-nomifactory-edition-398267:3613140': [debug_extended_crafting], + 'extra-utilities-2-225561:2678374' : [debug_extra_utilities_2], + 'extrabotany-299086:3112313' : [debug_extra_botany], + 'factory-tech-278822:3845293' : [debug_factory_tech], + 'forestry-59751:2918418' : [debug_forestry], + 'future-mc-310059:5626387' : [debug_future_mc], + 'guide-api-228832:2645992' : [debug_blood_arsenal, debug_blood_magic, debug_woot], + 'guidebook-253874:2989594' : [debug_arcane_archives], + 'hammer-lib-247401:5259462' : [debug_botanic_additions], + 'horse-power-270466:2705433' : [debug_horse_power], + 'immersive-petroleum-268250:3382321' : [debug_immersive_petroleum], + 'immersive_engineering-231951:2974106' : [debug_immersive_engineering, debug_immersive_petroleum, debug_immersive_technology], + 'industrialforegoing-266515:2745321' : [debug_industrial_foregoing], + 'inspirations-284007:2843007' : [debug_inspirations], + 'integrated-dynamics-236307:3159505' : [debug_integrated_dynamics], + 'lazy-ae2-322347:3254160' : [debug_lazy_ae2], + 'lemonlib-306926:2639879' : [debug_arcane_world, debug_arcane_world_rotn], + 'libnine-322344:3509087' : [debug_lazy_ae2], + 'libvulpes-236541:3801015' : [debug_advanced_rocketry], + 'llibrary-243298:2504999' : [debug_ice_and_fire_old, debug_ice_and_fire_rotn], + 'magneticraft-224808:3791484' : [debug_magneticraft], + 'mantle-74924:2713386' : [debug_inspirations, debug_tinkers_construct], + 'mct-immersive-technology-359407:5108047' : [debug_immersive_technology], + 'mekanism-268560:2835175' : [debug_mekanism], + 'modelloader-277663:2744735' : [debug_magneticraft], + 'mystical_agriculture-246640:2704562' : [debug_mystical_agriculture], + 'mystical_lib-277064:3483816' : [debug_arcane_archives, debug_roots], + 'mystical_world-282940:3460961' : [debug_roots], + 'natures-aura-306626:2882138' : [debug_natures_aura], + 'packmode-278398:2567799' : [debug_packmode], + 'patchouli-306770:3162874' : [debug_bewitchment, debug_roots, debug_natures_aura, debug_prodigytech], + 'pneumaticcraft-repressurized-281849:2978408' : [debug_pneumaticcraft], + 'primal-tech-290612:2801696' : [debug_primal_tech], + 'prodigytech-297414:2769520' : [debug_prodigytech], + 'projecte-226410:2702991' : [debug_projecte], + 'pyrotech-306676:4956838' : [debug_pyrotech], + 'random-things-59816:2905241' : [debug_random_things], + 'reborncore-237903:3330308' : [debug_tech_reborn], + 'redstone_flux-270789:2920436' : [debug_draconic_evolution, debug_thermal_expansion], + 'roots-246183:3905074' : [debug_roots], + 'rustic-256141:3107974' : [debug_rustic], + 'shadowfacts-forgelin-248453:2785465' : [debug_alchemistry, debug_future_mc, debug_industrial_foregoing, debug_magneticraft], + 'silents-gems-220311:2804966' : [debug_silents_gems], + 'silents-lib-242998:2851111' : [debug_silents_gems], + 'sonar-core-239418:2645156' : [debug_calculator], + 'techreborn-233564:2966851' : [debug_tech_reborn], + 'tesla-core-lib-254602:3438487' : [debug_industrial_foregoing], + 'thaumcraft-223628:2629023' : [debug_thaumcraft], + 'the-aurorian-352137:4981736' : [debug_aurorian], + 'the-erebus-220698:3211974' : [debug_erebus], + 'thedragonlib-248055:2580332' : [debug_armor_plus], + 'thermal_expansion-69163:2926431' : [debug_thermal_expansion], + 'thermal_foundation-222880:2926428' : [debug_thermal_expansion], + 'tinkers-complement-272671:2843439' : [debug_tinkers_construct], + 'tinkers_construct-74072:2902483' : [debug_tinkers_construct], + 'woot-244049:2712670' : [debug_woot], ] // Maps mods from CurseMaven to the properties that enable the mod. // These mods will be enabled at runtime, but will not be compiled. // Sorted alphabetically. final Map> runtime_dependencies = [ - 'com.cleanroommc:configanytime:3.0' : [project.debug_universal_tweaks], - 'curse.maven:aainfo-573154:3627065' : [project.debug_actually_advanced_info], - 'curse.maven:dropt-284973:3758733' : [project.debug_pyrotech], - 'curse.maven:jei-bees-248370:2490058' : [project.debug_forestry], - 'curse.maven:just-enough-magiculture-940521:5796192': [project.debug_erebus], - 'curse.maven:just-enough-petroleum-291727:2549332' : [project.debug_immersive_petroleum], - 'curse.maven:just-enough-resources-240630:4440935' : [project.debug_erebus], - 'curse.maven:mouse-tweaks-unofficial-461660:5876158': [project.debug_mouse_tweaks_unofficial], - 'curse.maven:reid-629017:5502915' : [project.debug_roughly_enough_ids], - 'curse.maven:thaumic_jei-285492:2705304' : [project.debug_thaum], - 'curse.maven:universal-tweaks-705000:5860191' : [project.debug_universal_tweaks], - 'curse.maven:vintagefix-871198:5536276' : [project.debug_vintagefix], + 'com.cleanroommc:configanytime:3.0' : [dev_universal_tweaks], + 'curse.maven:aainfo-573154:3627065' : [dev_actually_advanced_info], + 'curse.maven:dropt-284973:3758733' : [debug_pyrotech], + 'curse.maven:jei-bees-248370:2490058' : [debug_forestry], + 'curse.maven:just-enough-magiculture-940521:5796192': [debug_erebus], + 'curse.maven:just-enough-petroleum-291727:2549332' : [debug_immersive_petroleum], + 'curse.maven:just-enough-resources-240630:4440935' : [debug_erebus], + 'curse.maven:mouse-tweaks-unofficial-461660:5876158': [dev_mouse_tweaks_unofficial], + 'curse.maven:reid-629017:5502915' : [dev_roughly_enough_ids], + 'curse.maven:thaumic_jei-285492:2705304' : [debug_thaumcraft], + 'curse.maven:universal-tweaks-705000:5860191' : [dev_universal_tweaks], + 'curse.maven:vintagefix-871198:5536276' : [dev_vintagefix], ] dependencies { @@ -166,10 +166,10 @@ dependencies { // api "gregtech:gregtech:2.8.10-beta", { transitive false } // compiles all mods, and selectively enables mods being debugged - mod_dependencies.entrySet().forEach { - def mod = rfg.deobf('curse.maven:' + it.key) + mod_dependencies.each { k, v -> + def mod = rfg.deobf('curse.maven:' + k) compileOnly mod - if (it.value.any { it.toBoolean() }) { + if (v.any { it.toBoolean() }) { runtimeOnly mod } } @@ -182,7 +182,7 @@ dependencies { } compileOnly rfg.deobf('curse.maven:angry-pixel-the-betweenlands-mod-243363:4479688') - if (project.debug_betweenlands.toBoolean()) { + if (debug_betweenlands.toBoolean()) { // TODO: allow development toggling of the coremod // until this is resolved, download and install the jar from // https://www.curseforge.com/minecraft/mc-mods/angry-pixel-the-betweenlands-mod/files/4479688 @@ -190,13 +190,13 @@ dependencies { } compileOnly rfg.deobf('curse.maven:better-with-everything-896908:5202745') - if (!(project.debug_better_with_addons.toBoolean() || project.debug_better_with_mods.toBoolean()) && project.debug_better_with_everything.toBoolean()) { + if (!(debug_better_with_addons.toBoolean() || debug_better_with_mods.toBoolean()) && debug_better_with_everything.toBoolean()) { runtimeOnly rfg.deobf('curse.maven:better-with-everything-896908:5202745') } compileOnly 'com.enderio:endercore:0.5.78' compileOnly 'crazypants:enderio:5.3.72' - if (project.debug_enderio.toBoolean()) { + if (debug_enderio.toBoolean()) { runtimeOnly 'com.enderio:endercore:0.5.78' runtimeOnly 'crazypants:enderio:5.3.72' } @@ -204,23 +204,23 @@ dependencies { // WARNING: rotn must be placed before normal, otherwise you will not be able to properly detect sources for the LightningForge compileOnly rfg.deobf('curse.maven:ice-and-fire-rotn-edition-457668:5738729') compileOnly rfg.deobf('curse.maven:iceandfire-264231:2939529') - if (project.debug_ice_and_fire_rotn.toBoolean()) { + if (debug_ice_and_fire_rotn.toBoolean()) { runtimeOnly rfg.deobf('curse.maven:ice-and-fire-rotn-edition-457668:5738729') - } else if (project.debug_ice_and_fire_old.toBoolean()) { + } else if (debug_ice_and_fire_old.toBoolean()) { runtimeOnly rfg.deobf('curse.maven:iceandfire-264231:2939529') } // WARNING: experimental must be placed before classic, otherwise you will crash when debugging either. Check FluidGenerator compat to confirm compileOnly rfg.deobf('curse.maven:industrialcraft_experimental-242638:3838713') compileOnly rfg.deobf('curse.maven:industrialcraft_classic-242942:3093607') - if (project.debug_industrial_craft_2_experimental.toBoolean()) { + if (debug_industrial_craft_2_experimental.toBoolean()) { runtimeOnly rfg.deobf('curse.maven:industrialcraft_experimental-242638:3838713') - } else if (project.debug_industrial_craft_2_classic.toBoolean()) { + } else if (debug_industrial_craft_2_classic.toBoolean()) { runtimeOnly rfg.deobf('curse.maven:industrialcraft_classic-242942:3093607') } compileOnly rfg.deobf('TechReborn:TechReborn-ModCompatibility-1.12.2:1.4.0.76:universal') - if (project.debug_tech_reborn.toBoolean()) { + if (debug_tech_reborn.toBoolean()) { runtimeOnly rfg.deobf('TechReborn:TechReborn-ModCompatibility-1.12.2:1.4.0.76:universal') } diff --git a/gradle.properties b/gradle.properties index adcd7da6e..b78dc633e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,27 +1,31 @@ +# +# The "gradle.properties" file contains settings loaded by all gradle files. +# For the "build.gradle" file, all properties are stored in the separate and dedicated file "buildscript.properties". +# Properties can be created via any sequence of ASCII characters followed by an equal sign to set the value. +# -# SECTION: development environment settings +# Development Environment Settings -debug_run_ls = false -debug_use_examples_folder = true -debug_log_missing_lang_keys = true -debug_generate_examples = false -debug_generate_wiki = false -debug_generate_and_crash = false -debug_disable_cache = false +dev_run_ls = false +dev_use_examples_folder = true +dev_log_missing_lang_keys = true +dev_generate_examples = false +dev_generate_wiki = false +dev_generate_and_crash = false +dev_disable_cache = false -debug_actually_advanced_info = false -debug_mouse_tweaks_unofficial = false -debug_roughly_enough_ids = false -debug_universal_tweaks = false -debug_vintagefix = false +dev_actually_advanced_info = false +dev_mouse_tweaks_unofficial = false +dev_roughly_enough_ids = false +dev_universal_tweaks = false +dev_vintagefix = false -# END SECTION: development environment settings -# SECTION: debug mod compat +# Debug Mod Compat debug_actually_additions = false debug_additional_enchanted_miner = false -debug_adv_mortars = false +debug_advanced_mortars = false debug_advanced_rocketry = false debug_aether = false debug_alchemistry = false @@ -31,7 +35,7 @@ debug_arcane_world = false debug_arcane_world_rotn = false debug_armor_plus = false debug_astral = false -debug_atum = false +debug_atum_2 = false debug_aurorian = false debug_avaritia = false @@ -100,284 +104,18 @@ debug_rustic = false debug_silents_gems = false debug_tech_reborn = false -debug_thaum = false -debug_thermal = false -debug_tinkers = false +debug_thaumcraft = false +debug_thermal_expansion = false +debug_tinkers_construct = false debug_woot = false -# END SECTION: debug mod compat - -# SECTION: custom injected tags +# Groovy Version groovy_version = 4.0.26 -# END SECTION: custom injected tags - -# SECTION: GTCEu Buildscript - -modName = GroovyScript - -# This is a case-sensitive string to identify your mod. Convention is to use lower case. -modId = groovyscript - -modGroup = com.cleanroommc.groovyscript - -# Version of your mod. -# This field can be left empty if you want your mod's version to be determined by the latest git tag instead. -modVersion = 1.2.5 - -# Whether to use the old jar naming structure (modid-mcversion-version) instead of the new version (modid-version) -includeMCVersionJar = false - -# The name of your jar when you produce builds, not including any versioning info -modArchivesBaseName = groovyscript - -# Will update your build.gradle automatically whenever an update is available -autoUpdateBuildScript = false - -minecraftVersion = 1.12.2 - -# Select a username for testing your mod with breakpoints. You may leave this empty for a random username each time you -# restart Minecraft in development. Choose this dependent on your mod: -# Do you need consistent player progressing (for example Thaumcraft)? -> Select a name -# Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty -# Alternatively this can be set with the 'DEV_USERNAME' environment variable. -developmentEnvironmentUserName = Developer - -# Additional arguments applied to the JVM when launching minecraft -# Syntax: -arg1=value1;-arg2=value2;... -# Example value: -Dmixin.debug.verify=true;-XX:+UnlockExperimentalVMOptions -additionalJavaArguments = - -# Enables using modern java syntax (up to version 17) via Jabel, while still targeting JVM 8. -# See https://github.com/bsideup/jabel for details on how this works. -# Using this requires that you use a Java 17 JDK for development. -enableModernJavaSyntax = true - -# Enables runClient/runServer tasks for Java 17 and Java 21 using LWJGL3ify. -# This is primarily used to test if your mod is compatible with platforms running -# Minecraft 1.12.2 on modern versions of Java and LWJGL, and assist in fixing any problems with it. -# Using this requires that you use a Java 17/Java 21 JDK for development. -enableJava17RunTasks = false - -# Generate a class with String fields for the mod id, name and version named with the fields below -generateGradleTokenClass = com.cleanroommc.groovyscript.Tags -gradleTokenModId = MODID -gradleTokenModName = MODNAME -gradleTokenVersion = VERSION - -# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can -# leave this property empty. -# Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api -apiPackage = - -# If you want to keep your API code in src/api instead of src/main -useSrcApiPath = false - -# Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/ -# There can be multiple files in a comma-separated list. -# Example value: mymodid_at.cfg,jei_at.cfg -accessTransformersFile = - -# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled! -usesMixins = true -# Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail! -mixinsPackage = core.mixin -# Location of the mixin config refmap. If left, blank, defaults to "mixins.${modId}.refmap.json". Target file must have the "json" extension. -mixinConfigRefmap = -# Automatically generates a mixin config json if enabled, with the name mixins.modid.json -generateMixinConfig = false -# Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! -# Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin -coreModClass = core.GroovyScriptCore -# If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod (meaning that -# there is no class annotated with @Mod) you want this to be true. When in doubt: leave it on false! -containsMixinsAndOrCoreModOnly = false - -# Enables Mixins even if this mod doesn't use them, useful if one of the dependencies uses mixins. -forceEnableMixins = false - -# Outputs pre-transformed and post-transformed loaded classes to run/CLASSLOADER_TEMP. Can be used in combination with -# diff to see exactly what your ASM or Mixins are changing in the target file. -# Optionally can be specified with the 'CORE_MOD_DEBUG' env var. Will output a lot of files! -enableCoreModDebug = false - -# Adds CurseMaven, Modrinth Maven, BlameJared maven, and some more well-known 1.12.2 repositories -includeWellKnownRepositories = true - -# Adds JEI and TheOneProbe to your development environment. Adds them as 'implementation', meaning they will -# be available at compiletime and runtime for your mod (in-game and in-code). -# Overrides the above setting to be always true, as these repositories are needed to fetch the mods -includeCommonDevEnvMods = true - -# Some mods require a specific forge version to launch in. When you need to use one of those mods as a dependency, -# and cannot launch with the forge version required, enable this to strip the forge version requirements from that mod. -# This will add 'strip-latest-forge-requirements' as 'runtimeOnlyNonPublishable'. -# Requires useMixins or forceEnableMixins to be true, as the mod uses mixins to function. -stripForgeRequirements = true - - -# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your -# responsibility check the licence and request permission for distribution, if required. -usesShadowedDependencies = false -# If disabled, won't remove unused classes from shaded dependencies. Some libraries use reflection to access -# their own classes, making the minimization unreliable. -minimizeShadowedDependencies = true -# If disabled, won't rename the shadowed classes. -relocateShadowedDependencies = true - -# Separate run directories into "run/client" for runClient task, and "run/server" for runServer task. -# Useful for debugging a server and client simultaneously. If not enabled, it will be in the standard location "run/" -separateRunDirectories = false - -# The display name format of versions published to Curse and Modrinth. $MOD_NAME and $VERSION are available variables. -# Default: $MOD_NAME \u2212 $VERSION. \u2212 is the minus character which looks much better than the hyphen minus on Curse. -versionDisplayFormat = $MOD_NAME \u2212 $VERSION - -# Publishing to modrinth requires you to set the MODRINTH_API_KEY environment variable to your current modrinth API token. - -# The project's ID on Modrinth. Can be either the slug or the ID. -# Leave this empty if you don't want to publish on Modrinth. -# Alternatively this can be set with the 'MODRINTH_PROJECT_ID' environment variable. -modrinthProjectId = GJaDRTrb - -# The project's relations on Modrinth. You can use this to refer to other projects on Modrinth. -# Syntax: scope1-type1:name1;scope2-type2:name2;... -# Where scope can be one of [required, optional, incompatible, embedded], -# type can be one of [project, version], -# and the name is the Modrinth project or version slug/id of the other mod. -# Example: required-project:jei;optional-project:top;incompatible-project:gregtech -modrinthRelations = req:mixinbooter - - -# Publishing to CurseForge requires you to set the CURSEFORGE_API_KEY environment variable to one of your CurseForge API tokens. - -# The project's numeric ID on CurseForge. You can find this in the About Project box. -# Leave this empty if you don't want to publish on CurseForge. -# Alternatively this can be set with the 'CURSEFORGE_PROJECT_ID' environment variable. -curseForgeProjectId = 687577 - -# The project's relations on CurseForge. You can use this to refer to other projects on CurseForge. -# Syntax: type1:name1;type2:name2;... -# Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible], -# and the name is the CurseForge project slug of the other mod. -# Example: requiredDependency:railcraft;embeddedLibrary:cofhlib;incompatible:buildcraft -curseForgeRelations = req:mixin-booter;\ - opt:actually-additions;\ - opt:additional-enchanted-miner;\ - opt:advanced-mortars;\ - opt:advanced-rocketry;\ - opt:advanced-rocketry-2;\ - opt:aether;\ - opt:alchemistry;\ - opt:angry-pixel-the-betweenlands-mod;\ - opt:applied-energistics-2;\ - opt:arcane-archives;\ - opt:arcane-world;\ - opt:astral-sorcery;\ - opt:atum;\ - opt:avaritia-1-10;\ - opt:better-with-addons;\ - opt:bewitchment;\ - opt:blood-arsenal;\ - opt:blood-magic;\ - opt:botania;\ - opt:botania-tweaks;\ - opt:botanic-additions;\ - opt:bwm-suite;\ - opt:bwm-core;\ - opt:calculator;\ - opt:chisel;\ - opt:compact-machines;\ - opt:constructs-armory;\ - opt:cyclic;\ - opt:draconic-evolution;\ - opt:ender-io;\ - opt:essentialcraft-4-unofficial;\ - opt:evilcraft;\ - opt:extended-crafting;\ - opt:extrabotany;\ - opt:extra-utilities;\ - opt:forestry;\ - opt:future-mc;\ - opt:had-enough-items;\ - opt:horse-power;\ - opt:ic2-classic;\ - opt:ice-and-fire-dragons;\ - opt:immersive-engineering;\ - opt:immersive-petroleum;\ - opt:industrial-craft;\ - opt:industrial-foregoing;\ - opt:inspirations;\ - opt:integrated-dynamics;\ - opt:lazy-ae2;\ - opt:magneticraft;\ - opt:mct-immersive-technology;\ - opt:mekanism;\ - opt:mystical-agriculture;\ - opt:natures-aura;\ - opt:pneumaticcraft-repressurized;\ - opt:primal-tech;\ - opt:prodigy-tech;\ - opt:projecte;\ - opt:pyrotech;\ - opt:random-things;\ - opt:rustic;\ - opt:roots;\ - opt:silents-gems;\ - opt:techreborn;\ - opt:thaumcraft;\ - opt:the-aurorian;\ - opt:thermal-expansion;\ - opt:tinkers-construct;\ - opt:tinkers-complement;\ - opt:woot; - -# This project's release type on CurseForge and/or Modrinth -# Alternatively this can be set with the 'RELEASE_TYPE' environment variable. -# Allowed types: release, beta, alpha -releaseType = - -# Generate a default changelog for releases. Requires git to be installed, as it uses it to generate a changelog of -# commits since the last tagged release. -generateDefaultChangelog = false - -# Prevent the source code from being published -noPublishedSources = false - - -# Publish to a custom maven location. Follows a few rules: -# Group ID can be set with the 'ARTIFACT_GROUP_ID' environment variable, default to 'project.group' -# Artifact ID can be set with the 'ARTIFACT_ID' environment variable, default to 'project.name' -# Version can be set with the 'RELEASE_VERSION' environment variable, default to 'modVersion' -# For maven credentials: -# Username is set with the 'MAVEN_USER' environment variable, default to "NONE" -# Password is set with the 'MAVEN_PASSWORD' environment variable, default to "NONE" -customMavenPublishUrl = https://repo.cleanroommc.com/releases - -# The group for maven artifacts. Defaults to the 'project.modGroup' until the last '.' (if any). -# So 'mymod' becomes 'mymod' and 'com.myname.mymodid' 'becomes com.myname' -mavenArtifactGroup = com.cleanroommc - -# Enable spotless checks -# Enforces code formatting on your source code -# By default this will use the files found here: https://github.com/GregTechCEu/Buildscripts/tree/master/spotless -# to format your code. However, you can create your own version of these files and place them in your project's -# root directory to apply your own formatting options instead. -enableSpotless = true - -# Enable JUnit testing platform used for testing your code. -# Uses JUnit 5. See guide and documentation here: https://junit.org/junit5/docs/current/user-guide/ -enableJUnit = true - -# Deployment debug setting -# Uncomment this to test deployments to CurseForge and Modrinth -# Alternatively, you can set the 'DEPLOYMENT_DEBUG' environment variable. -deploymentDebug = false - - # Gradle Settings + # Effectively applies the '--stacktrace' flag by default org.gradle.logging.stacktrace = all # Sets default memory used for gradle commands. Can be overridden by user or command line properties.