String apiVersion = providers.gradleProperty('apiVersion').get() def mainClass = 'art.arcane.iris.Iris' def bootstrapperClass = 'art.arcane.iris.IrisBootstrap' String volmLibCoordinate = providers.gradleProperty('volmLibCoordinate') .orElse('com.github.VolmitSoftware:VolmLib:d9026a7c8ebc391c8109f401ce79a0ce65df3969') .get() dependencies { compileOnly(project(':core')) compileOnly(libs.lombok) annotationProcessor(libs.lombok) compileOnly(volmLibCoordinate) { transitive = false } compileOnly(libs.paper.api) testImplementation('junit:junit:4.13.2') testImplementation('org.mockito:mockito-core:5.23.0') testImplementation(libs.paper.api) testImplementation(libs.bstats) testImplementation(libs.sentry) testImplementation(project(':core')) testImplementation(volmLibCoordinate) { transitive = false } compileOnly(libs.placeholderApi) testImplementation(libs.placeholderApi) { transitive = false } } tasks.named('processResources').configure { def pluginProperties = [ name : rootProject.name, version : rootProject.version, apiVersion: apiVersion, main : mainClass, bootstrapper: bootstrapperClass, ] inputs.properties(pluginProperties) filesMatching(['**/paper-plugin.yml', '**/plugin.yml']) { expand(pluginProperties) } } tasks.named('compileJava', JavaCompile).configure { // lombok.config decides how equals/hashCode/toString are generated (fields, never getters), so editing it // changes this module's bytecode. Gradle does not know that on its own and would serve a stale up-to-date // build until something else in the module changed. inputs.file(rootProject.file('lombok.config')) .withPropertyName('lombokConfig') .withPathSensitivity(PathSensitivity.NONE) } tasks.named('jar', Jar).configure { archiveBaseName.set('iris-bukkit-plugin') } tasks.named('test').configure { systemProperty('iris.commandFindSource', file('src/main/java/art/arcane/iris/core/commands/CommandFind.java').absolutePath) systemProperty('iris.commandStructureSource', file('src/main/java/art/arcane/iris/core/commands/CommandStructure.java').absolutePath) systemProperty('iris.commandIrisSource', file('src/main/java/art/arcane/iris/core/commands/CommandIris.java').absolutePath) systemProperty('iris.bukkitChunkGeneratorSource', rootProject.file('core/src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java').absolutePath) systemProperty('iris.pregeneratorJobSource', rootProject.file('core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java').absolutePath) systemProperty('iris.bukkitEnginePlatformHooksSource', file('src/main/java/art/arcane/iris/core/runtime/BukkitEnginePlatformHooks.java').absolutePath) systemProperty('iris.engineSvcSource', file('src/main/java/art/arcane/iris/core/service/IrisEngineSVC.java').absolutePath) systemProperty('iris.terrainSvcSource', file('src/main/java/art/arcane/iris/core/service/IrisTerrainSVC.java').absolutePath) systemProperty('iris.apiEventSvcSource', file('src/main/java/art/arcane/iris/core/service/IrisApiEventSVC.java').absolutePath) systemProperty('iris.worldInfoFactorySource', file('src/main/java/art/arcane/iris/core/service/terrain/IrisWorldInfoFactory.java').absolutePath) systemProperty('iris.startupSource', file('src/main/java/art/arcane/iris/Iris.java').absolutePath) systemProperty('iris.readmeSource', rootProject.file('README.md').absolutePath) }