plugins { id 'application' } group = 'art.arcane' version = rootProject.version application { mainClass = 'art.arcane.iris.probe.ClassloadProbe' } String volmLibCoordinate = providers.gradleProperty('volmLibCoordinate') .orElse('com.github.VolmitSoftware:VolmLib:cdf7e8bb880199734dacd386a6616bda799fcde1') .get() dependencies { implementation(project(':core')) compileOnly(libs.spigot) testImplementation('junit:junit:4.13.2') compileOnly(volmLibCoordinate) { transitive = false } runtimeOnly(libs.paralithic) runtimeOnly(libs.gson) runtimeOnly(libs.lru) runtimeOnly(libs.kotlin.coroutines) runtimeOnly(libs.commons.io) runtimeOnly(libs.commons.lang) runtimeOnly(libs.commons.lang3) runtimeOnly(libs.commons.math3) runtimeOnly(libs.fastutil) runtimeOnly(libs.caffeine) runtimeOnly(libs.lz4) runtimeOnly(libs.zip) runtimeOnly('com.google.guava:guava:33.4.0-jre') runtimeOnly(libs.sentry) runtimeOnly(libs.oshi) runtimeOnly(libs.byteBuddy.core) runtimeOnly(libs.byteBuddy.agent) } tasks.named('run', JavaExec).configure { args(project(':core').layout.buildDirectory.dir('classes/java/main').get().asFile.absolutePath) jvmArgs('--add-modules', 'jdk.incubator.vector') dependsOn(':core:compileJava') } tasks.named('test').configure { dependsOn(':core:compileJava') } String probePack = providers.gradleProperty('probePack') .orElse('/Users/brianfopiano/Developer/RemoteGit/[Minecraft Server]/consumers/plugin-consumers/instances/purpur-26.2/plugins/Iris/packs/overworld') .get() String probeRadius = providers.gradleProperty('probeRadius').orElse('2').get() tasks.register('genProbe', JavaExec) { group = 'verification' description = 'Constructs a real Iris engine over a real pack and generates chunks into buffers on a Bukkit-free JVM.' mainClass = 'art.arcane.iris.probe.GenerationProbe' classpath = sourceSets.main.runtimeClasspath jvmArgs('--add-modules', 'jdk.incubator.vector') args(probePack, probeRadius) dependsOn(':core:compileJava') } String deserializationPack = providers.gradleProperty('deserializationPack') .orElse(project.file('src/main/resources/deserialization-pack').absolutePath) .get() tasks.register('deserializationProbe', JavaExec) { group = 'verification' description = 'Deserializes entity, spawner and loot pack content through the real Iris Gson loaders on a Bukkit-free JVM to keep Bukkit-typed pack-model fields dead.' mainClass = 'art.arcane.iris.probe.DeserializationProbe' classpath = sourceSets.main.runtimeClasspath jvmArgs('--add-modules', 'jdk.incubator.vector') args(deserializationPack) dependsOn(':core:compileJava') }