aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle.kts48
-rw-r--r--shots.txt61
-rw-r--r--versions/1.8.9/shots.txt78
3 files changed, 123 insertions, 64 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index d5e5445d6..400dd12b1 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -5,11 +5,20 @@ import at.skyhanni.sharedvariables.SHVersionInfo
import at.skyhanni.sharedvariables.versionString
import io.gitlab.arturbosch.detekt.Detekt
import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
+import moe.nea.shot.ShotParser
+import moe.nea.shot.Shots
+import net.fabricmc.loom.api.processor.MinecraftJarProcessor
+import net.fabricmc.loom.api.processor.ProcessorContext
+import net.fabricmc.loom.api.processor.SpecContext
import net.fabricmc.loom.task.RunGameTask
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import skyhannibuildsystem.ChangelogVerification
import skyhannibuildsystem.DownloadBackupRepo
+import java.util.zip.ZipFile
+import java.util.zip.ZipOutputStream
+import kotlin.io.path.moveTo
+import kotlin.io.path.outputStream
plugins {
idea
@@ -117,7 +126,15 @@ tasks.register("checkPrDescription", ChangelogVerification::class) {
this.prBody = project.findProperty("prBody") as String
}
-val shot = shots.shot("minecraft", rootProject.file("shots.txt"))
+file("shots.txt")
+ .takeIf(File::exists)
+ ?.readText()
+ ?.lines()
+ ?.let(ShotParser()::parse)
+ ?.let(::Shots)
+ ?.let {
+ loom.addMinecraftJarProcessor(ShotApplicationJarProcessor::class.java, it)
+ }
dependencies {
minecraft("com.mojang:minecraft:${target.minecraftVersion.versionName}")
@@ -152,10 +169,10 @@ dependencies {
annotationProcessor("org.spongepowered:mixin:0.8.5-SNAPSHOT")
annotationProcessor("com.google.code.gson:gson:2.10.1")
annotationProcessor("com.google.guava:guava:17.0")
- } else if (target == ProjectTarget.BRIDGE116FABRIC) {
+ } else if (target == ProjectTarget.BRIDGE116FABRIC) {
modCompileOnly("net.fabricmc:fabric-loader:0.16.7")
modCompileOnly("net.fabricmc.fabric-api:fabric-api:0.42.0+1.16")
- } else if (target == ProjectTarget.MODERN) {
+ } else if (target == ProjectTarget.MODERN) {
modCompileOnly("net.fabricmc:fabric-loader:0.16.7")
modCompileOnly("net.fabricmc.fabric-api:fabric-api:0.102.0+1.21")
}
@@ -406,3 +423,28 @@ tasks.withType<DetektCreateBaselineTask>().configureEach {
jvmTarget = target.minecraftVersion.formattedJavaLanguageVersion
outputs.cacheIf { false } // Custom rules won't work if cached
}
+
+abstract class ShotApplicationJarProcessor @Inject constructor(val shots: Shots) : MinecraftJarProcessor<MinecraftJarProcessor.Spec> {
+ private class EnsureCompile(shots: Shots) : ShotApplicationJarProcessor(shots)
+ override fun buildSpec(context: SpecContext?): MinecraftJarProcessor.Spec? {
+ return object : MinecraftJarProcessor.Spec {}
+ }
+
+ override fun processJar(
+ source: java.nio.file.Path,
+ spec: MinecraftJarProcessor.Spec,
+ context: ProcessorContext?
+ ) {
+ val dest = source.resolveSibling(source.fileName.toString() + "-temp-shot")
+ ZipFile(source.toFile()).use { input ->
+ ZipOutputStream(dest.outputStream()).use { output ->
+ shots.processZipFile(input, output)
+ }
+ }
+ dest.moveTo(source, overwrite = true)
+ }
+
+ override fun getName(): String {
+ return "Shots"
+ }
+}
diff --git a/shots.txt b/shots.txt
deleted file mode 100644
index 52297a4e5..000000000
--- a/shots.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-net.minecraft.client.entity.EntityPlayerSP:
- sendQueue:
- annotate org.jetbrains.annotations.NotNull
-net.minecraft.client.Minecraft:
- renderEngine:
- annotate org.jetbrains.annotations.NotNull
- renderGlobal:
- annotate org.jetbrains.annotations.NotNull
- thePlayer:
- annotate org.jetbrains.annotations.Nullable
- pointedEntity:
- annotate org.jetbrains.annotations.Nullable
- effectRenderer:
- annotate org.jetbrains.annotations.NotNull
- fontRendererObj:
- annotate org.jetbrains.annotations.NotNull
- standardGalacticFontRenderer:
- annotate org.jetbrains.annotations.NotNull
- currentScreen:
- annotate org.jetbrains.annotations.Nullable
- entityRenderer:
- annotate org.jetbrains.annotations.NotNull
- guiAchievement:
- annotate org.jetbrains.annotations.NotNull
- ingameGUI:
- annotate org.jetbrains.annotations.NotNull
- objectMouseOver:
- annotate org.jetbrains.annotations.Nullable
- gameSettings:
- annotate org.jetbrains.annotations.NotNull
- mouseHelper:
- annotate org.jetbrains.annotations.NotNull
- mcDataDir:
- annotate org.jetbrains.annotations.NotNull
- frameTimer:
- annotate org.jetbrains.annotations.NotNull
- mcProfiler:
- annotate org.jetbrains.annotations.NotNull
- mcDefaultResourcePack:
- annotate org.jetbrains.annotations.NotNull
- theWorld:
- annotate org.jetbrains.annotations.Nullable
- <init>(net.minecraft.client.main.GameConfiguration):
- annotateParameter 0 org.jetbrains.annotations.NotNull
- getFrameBuffer():
- annotate org.jetbrains.annotations.NotNull
- getVersion():
- annotate org.jetbrains.annotations.NotNull
- drawSplashScreen(net.minecraft.client.renderer.texture.TextureManager):
- annotate org.jetbrains.annotations.NotNull
- getSaveLoader():
- annotate org.jetbrains.annotations.NotNull
- displayGuiScreen(net.minecraft.client.gui.GuiScreen):
- annotateParameter 0 org.jetbrains.annotations.Nullable
- getMusicTicker():
- annotate org.jetbrains.annotations.NotNull
-net.minecraft.util.ChatStyle:
- getChatClickEvent():
- annotate org.jetbrains.annotations.Nullable
- getChatHoverEvent():
- annotate org.jetbrains.annotations.Nullable
diff --git a/versions/1.8.9/shots.txt b/versions/1.8.9/shots.txt
new file mode 100644
index 000000000..971186264
--- /dev/null
+++ b/versions/1.8.9/shots.txt
@@ -0,0 +1,78 @@
+#net.minecraft.client.entity.EntityPlayerSP:
+# sendQueue:
+# annotate org.jetbrains.annotations.NotNull
+#net.minecraft.client.Minecraft:
+# renderEngine:
+# annotate org.jetbrains.annotations.NotNull
+# renderGlobal:
+# annotate org.jetbrains.annotations.NotNull
+# thePlayer:
+# annotate org.jetbrains.annotations.Nullable
+# pointedEntity:
+# annotate org.jetbrains.annotations.Nullable
+# effectRenderer:
+# annotate org.jetbrains.annotations.NotNull
+# fontRendererObj:
+# annotate org.jetbrains.annotations.NotNull
+# standardGalacticFontRenderer:
+# annotate org.jetbrains.annotations.NotNull
+# currentScreen:
+# annotate org.jetbrains.annotations.Nullable
+# entityRenderer:
+# annotate org.jetbrains.annotations.NotNull
+# guiAchievement:
+# annotate org.jetbrains.annotations.NotNull
+# ingameGUI:
+# annotate org.jetbrains.annotations.NotNull
+# objectMouseOver:
+# annotate org.jetbrains.annotations.Nullable
+# gameSettings:
+# annotate org.jetbrains.annotations.NotNull
+# mouseHelper:
+# annotate org.jetbrains.annotations.NotNull
+# mcDataDir:
+# annotate org.jetbrains.annotations.NotNull
+# frameTimer:
+# annotate org.jetbrains.annotations.NotNull
+# mcProfiler:
+# annotate org.jetbrains.annotations.NotNull
+# mcDefaultResourcePack:
+# annotate org.jetbrains.annotations.NotNull
+# theWorld:
+# annotate org.jetbrains.annotations.Nullable
+# <init>(net.minecraft.client.main.GameConfiguration):
+# annotateParameter 0 org.jetbrains.annotations.NotNull
+# getFrameBuffer():
+# annotate org.jetbrains.annotations.NotNull
+# getVersion():
+# annotate org.jetbrains.annotations.NotNull
+# drawSplashScreen(net.minecraft.client.renderer.texture.TextureManager):
+# annotate org.jetbrains.annotations.NotNull
+# getSaveLoader():
+# annotate org.jetbrains.annotations.NotNull
+# displayGuiScreen(net.minecraft.client.gui.GuiScreen):
+# annotateParameter 0 org.jetbrains.annotations.Nullable
+# getMusicTicker():
+# annotate org.jetbrains.annotations.NotNull
+#net.minecraft.util.ChatStyle:
+# getChatClickEvent():
+# annotate org.jetbrains.annotations.Nullable
+# getChatHoverEvent():
+# annotate org.jetbrains.annotations.Nullable
+#
+#net.minecraft.item.ItemStack:
+# <init>(net.minecraft.block.Block):
+# annotateParameter 0 org.jetbrains.annotations.NotNull
+# <init>(net.minecraft.block.Block, int):
+# annotateParameter 0 org.jetbrains.annotations.NotNull
+# <init>(net.minecraft.block.Block, int, int):
+# annotateParameter 0 org.jetbrains.annotations.NotNull
+# <init>(net.minecraft.item.Item):
+# annotateParameter 0 org.jetbrains.annotations.NotNull
+# <init>(net.minecraft.item.Item, int):
+# annotateParameter 0 org.jetbrains.annotations.NotNull
+# <init>(net.minecraft.item.Item, int, int):
+# annotateParameter 0 org.jetbrains.annotations.NotNull
+# <init>(net.minecraft.item.Item, int, int, net.minecraft.nbt.NBTTagCompound):
+# annotateParameter 0 org.jetbrains.annotations.NotNull
+# annotateParameter 3 org.jetbrains.annotations.Nullable