Files
MCP-Reborn/build.gradle
2023-06-13 09:47:33 +01:00

145 lines
3.6 KiB
Groovy

buildscript {
repositories {
mavenLocal()
maven { url = 'https://maven.minecraftforge.net' }
mavenCentral()
gradlePluginPortal()
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:6+'
classpath "gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext:1.1.3"
}
}
import net.minecraftforge.gradle.common.util.Utils
import net.minecraftforge.gradle.common.util.VersionJson
import org.jetbrains.gradle.ext.*
apply plugin: 'eclipse'
apply plugin: 'net.minecraftforge.gradle.patcher'
apply plugin: "org.jetbrains.gradle.plugin.idea-ext"
println(' Java: ' + System.getProperty('java.version') +
' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ')' +
' Arch: ' + System.getProperty('os.arch'))
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
configurations {
shade
compile.extendsFrom shade
}
group = 'me.yourname'
version = '1.0.0'
ext {
minecraft_version = '1.20.1'
mcp_version = '20230612.114412'
mappings_channel = 'official'
mappings_version = '1.20.1'
spi_version = '7.0.0'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'net.minecraftforge:forgespi:' + spi_version
// Use the shade to add the lib to the jar
// or use compile if you want to load the lib from the version.json
// from a maven repo
// shade 'package-here'
// compile 'package-here'
}
project(':mcp') {
apply plugin: 'net.minecraftforge.gradle.mcp'
mcp {
config = minecraft_version + '-' + mcp_version
pipeline = 'joined'
}
}
evaluationDependsOn(':mcp')
patcher {
parent = project(':mcp')
patchedSrc = file('src/main/java')
mappings channel: mappings_channel, version: mappings_version
mcVersion = minecraft_version
}
jar {
configurations.shade.each { dep ->
from(project.zipTree(dep)) {
exclude 'META-INF', 'META-INF/**'
}
}
}
var assetsFolder = file('run/assets')
tasks.register('runclient', JavaExec) {
group = "MCP"
description = "Runs the client"
classpath sourceSets.main.runtimeClasspath
if (System.getProperty("os.name").toLowerCase().contains("mac")) {
jvmArgs '-XstartOnFirstThread'
}
var runFolder = file('run')
var versionJson = Utils.loadJson(downloadAssets.getMeta().get().getAsFile(), VersionJson.class)
workingDir runFolder
args '--gameDir', '.'
args '--version', minecraft_version
args '--assetsDir', runFolder.relativePath(assetsFolder)
args '--assetIndex', versionJson.assetIndex.id
args '--accessToken', '0'
main 'net.minecraft.client.main.Main'
}
tasks.register('setup') {
group = "MCP"
description = "Setups the dev workspace"
dependsOn ':extractMapped'
mkdir assetsFolder
copy {
from downloadAssets.output.path
into assetsFolder
}
}
tasks.register('copyAssets') {
group = "MCP"
description = "Download and place the assets into the run folder"
dependsOn ':downloadAssets'
mkdir 'run/assets'
copy {
from downloadAssets.output.path
into assetsFolder
}
}
tasks.register('runserver', JavaExec) {
mkdir 'runserver'
group = "MCP"
description = "Runs the server"
standardInput = System.in
classpath sourceSets.main.runtimeClasspath
main 'net.minecraft.server.Main'
workingDir 'runserver'
}
idea.project.settings {
runConfigurations {
"Minecraft"(Application) {
mainClass = 'mcp.client.Start'
workingDirectory = "$projectDir/run"
moduleName = idea.module.name + '.main'
}
}
}