Just load from jars rather than from classes, new versioning system

This commit is contained in:
Lucwousin
2019-10-31 00:48:05 +01:00
parent 8f2adb8185
commit eb26b2d145
5 changed files with 24 additions and 28 deletions

View File

@@ -3,10 +3,12 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("java-gradle-plugin")
kotlin("jvm") version "1.3.50"
`maven-publish`
}
group = "com.openosrs"
version = "1.5.37-SNAPSHOT"
version = "1.0.0"
extra["mainver"] = "1.5.37-SNAPSHOT"
repositories {
mavenCentral()
@@ -21,7 +23,7 @@ dependencies {
annotationProcessor("org.projectlombok:lombok:1.18.10")
implementation(kotlin("stdlib-jdk8"))
implementation("com.openosrs:deobfuscator:${project.version}") {
implementation("com.openosrs:deobfuscator:${extra["mainver"]}") {
exclude("org.slf4j", "slf4j-simple")
}
implementation("com.google.guava:guava:28.1-jre")
@@ -29,10 +31,8 @@ dependencies {
implementation("org.projectlombok:lombok:1.18.10")
testImplementation("junit:junit:4.12")
testImplementation("com.openosrs:mixins:${project.version}")
// testRuntimeOnly("com.openosrs.rs:rs-client:${project.version}")
testCompileOnly("com.openosrs.rs:runescape-api:${project.version}")
// testRuntimeOnly("net.runelite.rs:vanilla")
testImplementation("com.openosrs:mixins:${extra["mainver"]}")
testCompileOnly("com.openosrs.rs:runescape-api:${extra["mainver"]}")
}
gradlePlugin {

View File

@@ -25,12 +25,12 @@ public class Injection extends InjectData implements InjectTaskHandler
{
private static final Logger log = Logging.getLogger(Injection.class);
public Injection(File vanilla, FileTree rsclient, FileTree rsapi, FileTree mixins) throws Injexception, IOException
public Injection(File vanilla, File rsclient, File mixins, FileTree rsapi) throws Injexception, IOException
{
super(
JarUtil.loadJar(vanilla),
JarUtil.loadClasses(rsclient.getFiles()),
JarUtil.loadClasses(mixins.getFiles()),
JarUtil.loadJar(rsclient),
JarUtil.loadJar(mixins),
new RSApi(rsapi)
);
}

View File

@@ -1,9 +1,7 @@
package com.openosrs.injector
import com.openosrs.injector.injection.InjectTaskHandler
import com.openosrs.injector.rsapi.RSApi
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
@@ -12,29 +10,29 @@ open class Inject: DefaultTask() {
@InputFile
val vanilla = project.objects.fileProperty()
@InputDirectory
val rsclient = project.objects.directoryProperty()
@InputFile
val rsclient = project.objects.fileProperty()
@InputDirectory
val mixins = project.objects.directoryProperty()
@InputFile
val mixins = project.objects.fileProperty()
@InputDirectory
val rsapi = project.objects.directoryProperty()
@InputFile
val rsapi = project.objects.fileProperty()
@OutputFile
val output = project.objects.fileProperty().convention {
project.file("${project.buildDir}/libs/${project.name}-${project.version}")
project.file("${project.buildDir}/libs/${project.name}-${project.version}.jar")
}
@TaskAction
fun inject() {
val vanilla = this.vanilla.get().asFile
val rsclient = this.rsclient.asFileTree
val mixins = this.mixins.asFileTree
val rsapi = this.rsapi.asFileTree
val rsclient = this.rsclient.get().asFile
val mixins = this.mixins.get().asFile
val rsapi = project.zipTree(this.rsapi)
val output = this.output.asFile
val injector: InjectTaskHandler = Injection(vanilla, rsclient, rsapi, mixins)
val injector: InjectTaskHandler = Injection(vanilla, rsclient, mixins, rsapi)
injector.inject()

View File

@@ -7,7 +7,7 @@ class InjectPlugin: Plugin<Project> {
override fun apply(project: Project) {
val extension = project.extensions.create("injector", Injextention::class.java, project)
project.tasks.register("inject", Inject::class.java) {
project.tasks.create("inject", Inject::class.java) {
it.vanilla.set(extension.vanilla)
it.rsclient.set(extension.rsclient)
it.mixins.set(extension.mixins)

View File

@@ -1,14 +1,12 @@
package com.openosrs.injector
import org.gradle.api.Project
import org.gradle.api.model.ObjectFactory
import javax.inject.Inject
open class Injextention(project: Project) {
val vanilla = project.objects.fileProperty()
val rsclient = project.objects.directoryProperty()
val mixins = project.objects.directoryProperty()
val rsapi = project.objects.directoryProperty()
val rsclient = project.objects.fileProperty()
val mixins = project.objects.fileProperty()
val rsapi = project.objects.fileProperty()
val output = project.objects.fileProperty()
}