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') }