buildscript { repositories { maven { url = 'https://maven.minecraftforge.net/' } mavenCentral() gradlePluginPortal() } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:6.0.42' classpath 'org.spongepowered:mixingradle:0.7.38' } } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' repositories { exclusiveContent { forRepository { maven { url = 'https://libraries.minecraft.net/' } } filter { includeGroup 'org.lwjgl' } } } def mc = (providers.gradleProperty('mcVersion').orNull ?: project.findProperty('mcVersion') ?: '1.21.1').toString().trim() def forgeVersions = ['1.20.1': '47.4.10', '1.21.1': '52.1.0'] if (!forgeVersions.containsKey(mc)) throw new GradleException("Unsupported Minecraft version '${mc}'") java.sourceCompatibility = JavaVersion.toVersion(mc == '1.20.1' ? 17 : 21) java.targetCompatibility = java.sourceCompatibility minecraft { mappings channel: 'official', version: mc } dependencies { minecraft "net.minecraftforge:forge:${mc}-${forgeVersions[mc]}" implementation project(':common') annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' } sourceSets.main.java.srcDirs += ['../minecraft/src/main/java', "../minecraft/src/${mc}/java"] sourceSets.main.resources.srcDirs += ['../minecraft/src/main/resources'] apply from: '../minecraft/build-info.gradle' mixin { add sourceSets.main, 'scopenet.refmap.json'; config 'scopenet.mixins.json' } processResources { inputs.properties(version: project.version, mc: mc) filesMatching('META-INF/mods.toml') { expand(version: project.version, mc: mc, forge: forgeVersions[mc].split('\\.')[0]) } } base.archivesName = "scopenet-forge-${mc}" jar { from project(':common').sourceSets.main.output manifest { attributes('MixinConfigs': 'scopenet.mixins.json') } finalizedBy 'reobfJar' }