Volver al índice

build.gradle

plugins { id 'net.minecraftforge.gradle' version '6.0.54' }
version = '0.3.2-dev'
group = 'ar.com.companeros'
base { archivesName = 'Raps' }
java.toolchain.languageVersion = JavaLanguageVersion.of(17)

// Entorno de Minecraft y pruebas dentro de un servidor real.
minecraft {
    mappings channel: 'official', version: '1.20.1'
    runs {
        configureEach {
            workingDirectory project.file('run')
            property 'forge.logging.console.level', 'info'
            jvmArgs '-Xmx512m', '-Xms128m'
            mods { companeros { source sourceSets.main } }
        }
        gameTestServer { property 'forge.enabledGameTestNamespaces', 'companeros' }
        server { args '--nogui' }
        client { }
    }
}
dependencies { minecraft 'net.minecraftforge:forge:1.20.1-47.4.10' }
tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' }
jar.finalizedBy('reobfJar')
jar { archiveFileName = 'Raps.jar'; exclude '**/*Tests*.class' }

// Utilidad offline separada: su código nunca forma parte del mod distribuido.
sourceSets { maintenance { compileClasspath += sourceSets.main.output + sourceSets.main.compileClasspath
    runtimeClasspath += sourceSets.main.output + sourceSets.main.runtimeClasspath } }
tasks.register('migrateProfiles', JavaExec) {
    dependsOn maintenanceClasses
    classpath = sourceSets.maintenance.runtimeClasspath
    mainClass = 'ar.com.companeros.maintenance.ProfileMigrationCli'
    if (project.hasProperty('migrationInput') && project.hasProperty('migrationOutput'))
        args project.property('migrationInput'), project.property('migrationOutput')
}

// Comprobación de lectura: recuerdos del mapa presentes en el archivo exterior.
tasks.register('verifyMemoryArchive', JavaExec) {
    dependsOn maintenanceClasses
    classpath = sourceSets.maintenance.runtimeClasspath
    mainClass = 'ar.com.companeros.maintenance.ProfileMigrationCli'
    if (project.hasProperty('memorySnapshot')) args '--verify-memory', project.property('memorySnapshot')
}