project: Update injector
This commit is contained in:
@@ -16,13 +16,16 @@ import org.gradle.api.tasks.OutputFile
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
|
||||
@CacheableTask
|
||||
abstract class Inject: DefaultTask() {
|
||||
abstract class Inject : DefaultTask() {
|
||||
@get:Nested
|
||||
abstract val extension: InjectExtension
|
||||
|
||||
@get:OutputFile
|
||||
abstract val output: RegularFileProperty
|
||||
|
||||
@get:OutputFile
|
||||
abstract val hash: RegularFileProperty
|
||||
|
||||
@TaskAction
|
||||
fun inject() {
|
||||
val vanilla = extension.vanilla.get().asFile
|
||||
@@ -30,10 +33,11 @@ abstract class Inject: DefaultTask() {
|
||||
val mixins = extension.mixins.get().asFile
|
||||
val rsapi = project.zipTree(extension.rsapi)
|
||||
|
||||
val injector: InjectTaskHandler = Injection(vanilla, rsclient, mixins, rsapi)
|
||||
val injector: InjectTaskHandler = Injection(vanilla, rsclient, mixins, rsapi, if (extension.development.isPresent) extension.development.get() else true)
|
||||
|
||||
injector.inject()
|
||||
|
||||
injector.save(output.get().asFile)
|
||||
injector.hash(hash.get().asFile, vanilla)
|
||||
}
|
||||
}
|
||||
@@ -8,17 +8,23 @@
|
||||
package com.openosrs.injector
|
||||
|
||||
import org.gradle.api.file.RegularFileProperty
|
||||
import org.gradle.api.tasks.InputFile
|
||||
import org.gradle.api.tasks.PathSensitive
|
||||
import org.gradle.api.tasks.PathSensitivity
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.tasks.*
|
||||
|
||||
interface InjectExtension {
|
||||
@get:Input
|
||||
@get:Optional
|
||||
val development: Property<Boolean>
|
||||
|
||||
@get:[InputFile PathSensitive(PathSensitivity.NONE)]
|
||||
val vanilla: RegularFileProperty
|
||||
|
||||
@get:[InputFile PathSensitive(PathSensitivity.NONE)]
|
||||
val rsclient: RegularFileProperty
|
||||
|
||||
@get:[InputFile PathSensitive(PathSensitivity.NONE)]
|
||||
val mixins: RegularFileProperty
|
||||
|
||||
@get:[InputFile PathSensitive(PathSensitivity.NONE)]
|
||||
val rsapi: RegularFileProperty
|
||||
}
|
||||
|
||||
@@ -10,19 +10,27 @@ package com.openosrs.injector
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
|
||||
class InjectPlugin: Plugin<Project> {
|
||||
override fun apply(project: Project) { with(project) {
|
||||
val task = tasks.create("inject", Inject::class.java)
|
||||
task.output.convention { file("$buildDir/libs/$name-$version.jar") }
|
||||
class InjectPlugin : Plugin<Project> {
|
||||
override fun apply(project: Project) {
|
||||
with(project) {
|
||||
val task = tasks.create("inject", Inject::class.java)
|
||||
task.output.convention {
|
||||
file("$buildDir/libs/injected-client.oprs")
|
||||
}
|
||||
task.hash.convention {
|
||||
file("$buildDir/resources/main/client.hash")
|
||||
}
|
||||
|
||||
artifacts {
|
||||
it.add("runtimeElements", task.output)
|
||||
artifacts {
|
||||
it.add("runtimeElements", task.output)
|
||||
it.add("runtimeElements", task.hash)
|
||||
}
|
||||
|
||||
tasks.getByName("assemble") {
|
||||
it.finalizedBy("inject")
|
||||
}
|
||||
|
||||
extensions.add(InjectExtension::class.java, "injector", task.extension)
|
||||
}
|
||||
|
||||
tasks.getByName("assemble") {
|
||||
it.finalizedBy("inject")
|
||||
}
|
||||
|
||||
extensions.add(InjectExtension::class.java, "injector", task.extension)
|
||||
}}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user