From 8bc0b0a4df41cfbe6e5d3d7bbfbd7fc858b4e9d0 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sun, 12 Jan 2020 23:34:10 +0100 Subject: [PATCH] Update preprocessor and replace 1.13.2 subproject with 1.14.4-forge The new preprocessor version brings first-party support for fabric, in particular for automatically fetching mappings loom and for automatically remapping between MC versions via intermediary mappings. This will come in handy when updating to 1.15. It also supports automatic remapping between fabric and forge on the same MC version (by going mcp<->srg<->mojang<->intermediary<->yarn). Therefore this commit replaces the previous 1.13.2 (forge) subproject with a 1.14.4-forge one. Instead of manually providing full mappings for 1.14.4-fabric to 1.13.2-forge and partial (classes) for 1.13.2-forge to 1.12.2-forge, we now only need partial (classes) for 1.12.2-forge to 1.14.4-forge and preprocessor will take care of the forge to fabric step (in fact, our mapping file for that is currently completely empty). In an attempt to write an IDE (IntelliJ) plugin for quicker and easier working with the preprocessor (e.g. immediately mapping single files from within the IDE, jumping between different versions for the same file), the preprocessor gradle plugin declaration now requires you to explicitly specify variables in the common.gradle and the overall relationship between projects in the build.gradle (latter is required anyway, so the plugin can know where it should map between forge and fabric and which subprojects are which versions). Since that necessitated some changes to the build.gradle file, I took the opportunity to convert it to Kotlin. As such we now also use Gradle's newer plugin-block with the pluginManagement-block instead of manually declaring buildScript (not for the common.gradle though), which imo is nicer anyway and comes with various advantages (see gradle docs). There were also some remapping bugs fixed and some new ones introduced (e.g. manually declared inner class mappings seem to no longer function properly under certain conditions). There's also support for remapping Kotlin now. Just saying. --- build.gradle | 174 ------- build.gradle.kts | 200 ++++++++ gradle.properties | 2 +- jGui | 2 +- settings.gradle | 47 -- settings.gradle.kts | 65 +++ .../HideInvisibleEntities.java | 6 +- .../compat/shaders/ShaderBeginRender.java | 6 +- .../replaymod/core/KeyBindingRegistry.java | 6 +- .../java/com/replaymod/core/ReplayMod.java | 22 +- .../core/gui/GuiBackgroundProcesses.java | 6 +- .../replaymod/core/gui/ModMenuApiImpl.java | 2 +- .../core/handler/MainMenuHandler.java | 18 +- .../core/mixin/GuiScreenAccessor.java | 3 +- .../core/mixin/MixinModResourcePackUtil.java | 2 +- .../com/replaymod/core/utils/ModCompat.java | 4 +- .../com/replaymod/core/versions/MCVer.java | 112 ++++- .../replaymod/editor/handler/GuiHandler.java | 6 +- .../com/replaymod/extras/FullBrightness.java | 8 +- .../extras/youtube/YoutubeUpload.java | 6 +- .../replaymod/online/handler/GuiHandler.java | 15 +- .../recording/ReplayModRecording.java | 4 +- .../recording/gui/GuiRecordingControls.java | 8 +- .../recording/gui/GuiRecordingOverlay.java | 4 +- .../recording/handler/FMLHandshakeFilter.java | 6 +- .../recording/handler/GuiHandler.java | 6 +- .../handler/RecordingEventHandler.java | 37 +- .../mixin/MixinNetHandlerPlayClient.java | 12 +- .../recording/mixin/MixinWorldClient.java | 5 + .../recording/packet/PacketListener.java | 10 +- .../packet/ResourcePackRecorder.java | 2 +- .../render/blend/BlendMeshBuilder.java | 12 + ...ntainerLocalRenderInformationAccessor.java | 2 +- .../blend/mixin/MixinRenderLivingBase.java | 4 + .../replaymod/render/mixin/MixinCamera.java | 4 +- .../replaymod/replay/FullReplaySender.java | 72 ++- .../replaymod/replay/QuickReplaySender.java | 12 +- .../replaymod/replay/camera/CameraEntity.java | 42 +- .../replay/events/ReplayChatMessageEvent.java | 2 +- .../replaymod/replay/handler/GuiHandler.java | 33 +- .../replay/mixin/MixinGameRenderer.java | 9 +- .../replay/mixin/MixinRenderLivingBase.java | 4 + .../replay/mixin/MixinRenderManager.java | 2 +- .../MixinTileEntityEndPortalRenderer.java | 6 +- .../preview/PathPreviewRenderer.java | 4 +- versions/1.13.2/mapping.txt | 27 -- versions/{1.14.4 => 1.14.4-forge}/mapping.txt | 434 ++++++++++-------- versions/1.8.9/mapping.txt | 17 + versions/1.8/mapping.txt | 5 +- versions/1.9.4/mapping.txt | 6 + versions/common.gradle | 58 ++- versions/core/mcVersion | 1 - versions/mainProject | 1 + versions/mapping-1.14.4-fabric-forge.txt | 0 54 files changed, 932 insertions(+), 631 deletions(-) delete mode 100755 build.gradle create mode 100755 build.gradle.kts delete mode 100644 settings.gradle create mode 100644 settings.gradle.kts delete mode 100644 versions/1.13.2/mapping.txt rename versions/{1.14.4 => 1.14.4-forge}/mapping.txt (56%) delete mode 100644 versions/core/mcVersion create mode 100644 versions/mainProject create mode 100644 versions/mapping-1.14.4-fabric-forge.txt diff --git a/build.gradle b/build.gradle deleted file mode 100755 index c133df83..00000000 --- a/build.gradle +++ /dev/null @@ -1,174 +0,0 @@ -buildscript { - repositories { - mavenCentral() - } - - dependencies { - classpath 'com.google.guava:guava:27.1-jre' - classpath 'org.apache.maven:maven-artifact:3.6.1' - } -} - -apply plugin: 'eclipse' -apply plugin: 'idea' - -import groovy.json.JsonOutput - -def latestVersion = file('version.txt').readLines().first() -def releaseCommit = command('git', 'blame', '-p', '-l', 'version.txt').first().tokenize(' ').first() -if (latestVersion == '2.1.0') { // First version since change from tag-based - releaseCommit = '35ac26e91689ac9bdf12dbb9902c452464a75108' // git rev-parse 1.12.2-2.1.0 -} -def currentCommit = command('git', 'rev-parse', 'HEAD').first() -if (releaseCommit == currentCommit) { - version = latestVersion -} else { - def diff = command('git', 'log', '--format=oneline', "$releaseCommit..$currentCommit").size() - version = "$latestVersion-$diff-g${currentCommit.substring(0, 7)}" -} -if (gitDescribe().endsWith('*')) { - version = "$version-dirty" -} - -group= "com.replaymod" - -// Fabric's remapJar task assumes the compile configuration to exist -configurations { compile } - -task shadowJar(type: Copy) { - into "$buildDir/libs" -} - -subprojects { - buildscript { - repositories { - maven { url 'https://jitpack.io' } - } - } - - // Thanks for wasting my time gradle... - // Workaround for https://discuss.gradle.org/t/idea-plugin-bug/21525 - apply plugin: 'eclipse' - apply plugin: 'idea' - - afterEvaluate { - def shadowJar = project.tasks.findByName('shadowJar') - if (shadowJar != null && shadowJar.hasProperty('archivePath') && project.name != 'core') { - def rootTask = rootProject.tasks.shadowJar - rootTask.dependsOn shadowJar - rootTask.from shadowJar.archivePath - } - } -} - -def gitDescribe() { - try { - def stdout = new ByteArrayOutputStream() - exec { - commandLine 'git', 'describe', '--always', '--dirty=*' - standardOutput = stdout - } - return stdout.toString().trim() - } catch (e) { - return "unknown" - } -} - -def command(Object...cmd) { - def stdout = new ByteArrayOutputStream() - exec { - commandLine cmd - standardOutput = stdout - } - return stdout.toString().tokenize('\n') -} - -def generateVersionsJson() { - // Find all tag-style releases by listing all tags - def tagVersions = command 'git', 'for-each-ref', '--sort=taggerdate', '--format=%(refname:short)', 'refs/tags' - - // Find all commit-style releases - // List all commits - def releaseCommits = - command 'git', 'log', '--format=%H', '--date-order', '-E', - '--grep', /Pre-release [0-9]+ of [0-9]+\.[0-9]+\.[0-9]+/, - '--grep', /Release [0-9]+\.[0-9]+\.[0-9]+/ - // Find version string and MC versions for each commit hash - def commitVersions = releaseCommits.collect { commit -> - def version = command('git', 'show', "$commit:version.txt").first() - def mcVersions = command 'git', 'ls-tree', '-d', '--name-only', "$commit:versions" - mcVersions.remove('core') - return mcVersions.collect { "$it-$version" } - }.flatten() - - def versions = commitVersions + tagVersions.reverse() - def mcVersions = versions.collect {it.substring(0, it.indexOf('-'))}.unique() - mcVersions.sort(new OrderBy([0, 1, 2].collect { i -> { it -> (it.tokenize('.')[i] ?: '0') as int } })) - - def root = [ - homepage: 'https://www.replaymod.com/download/', - promos: [:] - ] - mcVersions.forEach { mcVersion -> - def mcVersionRoot = [:] - def latest - def recommended - versions.forEach { - def (thisMcVersion, modVersion, preVersion) = it.tokenize('-') - if (thisMcVersion == mcVersion) { - mcVersionRoot[it] = tagVersions.contains(it) ? - "See https://github.com/ReplayMod/ReplayMod/releases/$it" : - 'See https://www.replaymod.com/forum/thread/100' - if (latest == null) latest = it - if (preVersion == null) { - if (recommended == null) recommended = it - } - } - } - root[mcVersion] = mcVersionRoot - root.promos[mcVersion + '-latest'] = latest - if (recommended != null) { - root.promos[mcVersion + '-recommended'] = recommended - } - } - root -} - -task doRelease() { - doLast { - // Parse version - def version = project.releaseVersion as String - if (gitDescribe().endsWith('*')) { - throw new InvalidUserDataException('Git working tree is dirty. Make sure to commit all changes.') - } - def (modVersion, preVersion) = version.tokenize('-') - preVersion = preVersion != null && preVersion.startsWith('b') ? preVersion.substring(1) : null - - // Create new commit - def commitMessage = preVersion != null ? - "Pre-release $preVersion of $modVersion" : - "Release $modVersion" - file('version.txt').write("$version\n") - command 'git', 'add', 'version.txt' - command 'git', 'commit', '-m', commitMessage - - // Generate versions.json content - def versionsRoot = generateVersionsJson() - def versionsJson = JsonOutput.prettyPrint(JsonOutput.toJson(versionsRoot)) - - // Switch to master branch to update versions.json - command 'git', 'checkout', 'master' - - // Write versions.json - new File('versions.json').write(versionsJson) - - // Commit changes - project.exec { commandLine 'git', 'add', 'versions.json' } - project.exec { commandLine 'git', 'commit', '-m', "Update versions.json for $version" } - - // Return to previous branch - project.exec { commandLine 'git', 'checkout', '-' } - } -} - -defaultTasks 'shadowJar' diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100755 index 00000000..0f216d34 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,200 @@ +import groovy.json.JsonOutput +import java.io.ByteArrayOutputStream + +plugins { + id("fabric-loom") version "0.2.5-SNAPSHOT" apply false + id("com.replaymod.preprocess") version "b744ea7" + id("com.github.hierynomus.license") version "0.15.0" +} + +val latestVersion = file("version.txt").readLines().first() +var releaseCommit = command("git", "blame", "-p", "-l", "version.txt").first().split(" ").first() +if (latestVersion == "2.1.0") { // First version since change from tag-based + releaseCommit = "35ac26e91689ac9bdf12dbb9902c452464a75108" // git rev-parse 1.12.2-2.1.0 +} +val currentCommit = command("git", "rev-parse", "HEAD").first() +if (releaseCommit == currentCommit) { + version = latestVersion +} else { + val diff = command("git", "log", "--format=oneline", "$releaseCommit..$currentCommit").size + version = "$latestVersion-$diff-g${currentCommit.substring(0, 7)}" +} +if (gitDescribe().endsWith("*")) { + version = "$version-dirty" +} + +group = "com.replaymod" + +// Loom tries to find the active mixin version by recursing up to the root project and checking each project's +// compileClasspath and build script classpath (in that order). Since we've loom in our root project's classpath, +// loom will only find it after checking the root project's compileClasspath (which doesn't exist by default). +configurations.register("compileClasspath") + +val shadowJar by tasks.creating(Copy::class) { + into("$buildDir/libs") +} + +subprojects { + buildscript { + repositories { + maven("https://jitpack.io") + } + } + + afterEvaluate { + val projectShadowJar = project.tasks.findByName("shadowJar") + if (projectShadowJar != null && projectShadowJar.hasProperty("archivePath") && project.name != "core") { + shadowJar.dependsOn(projectShadowJar) + shadowJar.from(projectShadowJar.withGroovyBuilder { getProperty("archivePath") }) + } + } +} + +fun gitDescribe(): String { + try { + val stdout = ByteArrayOutputStream() + exec { + commandLine("git", "describe", "--always", "--dirty=*") + standardOutput = stdout + } + return stdout.toString().trim() + } catch (e: Throwable) { + return "unknown" + } +} + +fun command(vararg cmd: Any): List { + val stdout = ByteArrayOutputStream() + exec { + commandLine(*cmd) + standardOutput = stdout + } + return stdout.toString().split("\n") +} + +fun generateVersionsJson(): Map { + // Find all tag-style releases by listing all tags + val tagVersions = command("git", "for-each-ref", "--sort=taggerdate", "--format=%(refname:short)", "refs/tags") + + // Find all commit-style releases + // List all commits + val releaseCommits = + command("git", "log", "--format=%H", "--date-order", "-E", + "--grep", "Pre-release [0-9]+ of [0-9]+\\.[0-9]+\\.[0-9]+", + "--grep", "Release [0-9]+\\.[0-9]+\\.[0-9]+") + // Find version string and MC versions for each commit hash + val commitVersions = releaseCommits.map { commit -> + val version = command("git", "show", "$commit:version.txt").first() + val mcVersions = command("git", "ls-tree", "-d", "--name-only", "$commit:versions") + mcVersions.map { "$it-$version" } + }.flatten() + + val versions = commitVersions + tagVersions.reversed() + val mcVersions = versions + .map {it.substring(0, it.indexOf("-"))} + .distinct() + .sortedWith(compareBy( + { (it.split(".")[0] ?: "0").toInt() }, + { (it.split(".")[1] ?: "0").toInt() }, + { (it.split(".")[2] ?: "0").toInt() } + )) + + val promos = mutableMapOf() + val root = mutableMapOf( + "homepage" to "https://www.replaymod.com/download/", + "promos" to promos + ) + mcVersions.forEach { mcVersion -> + var mcVersionRoot = mutableMapOf() + var latest: String? = null + var recommended: String? = null + versions.forEach { + val (thisMcVersion, modVersion, preVersion) = it.split("-") + if (thisMcVersion == mcVersion) { + mcVersionRoot[it] = if (tagVersions.contains(it)) + "See https://github.com/ReplayMod/ReplayMod/releases/$it" + else + "See https://www.replaymod.com/forum/thread/100" + if (latest == null) latest = it + if (preVersion == null) { + if (recommended == null) recommended = it + } + } + } + root[mcVersion] = mcVersionRoot + promos[mcVersion + "-latest"] = latest!! + if (recommended != null) { + promos[mcVersion + "-recommended"] = recommended!! + } + } + return root +} + +val doRelease by tasks.registering { + doLast { + // Parse version + val version = project.extra("releaseVersion") as String + if (gitDescribe().endsWith("*")) { + throw InvalidUserDataException("Git working tree is dirty. Make sure to commit all changes.") + } + val (modVersion, preVersion) = if ("-b" in version) { + version.split("-b") + } else { + listOf(version, null) + } + + // Create new commit + val commitMessage = if (preVersion != null) + "Pre-release $preVersion of $modVersion" + else + "Release $modVersion" + file("version.txt").writeText("$version\n") + command("git", "add", "version.txt") + command("git", "commit", "-m", commitMessage) + + // Generate versions.json content + val versionsRoot = generateVersionsJson() + val versionsJson = JsonOutput.prettyPrint(JsonOutput.toJson(versionsRoot)) + + // Switch to master branch to update versions.json + command("git", "checkout", "master") + + // Write versions.json + File("versions.json").writeText(versionsJson) + + // Commit changes + project.exec { commandLine("git", "add", "versions.json") } + project.exec { commandLine("git", "commit", "-m", "Update versions.json for $version") } + + // Return to previous branch + project.exec { commandLine("git", "checkout", "-") } + } +} + +defaultTasks("shadowJar") + +preprocess { + "1.14.4"(11404, "yarn") { + "1.14.4-forge"(11404, "srg", file("versions/mapping-1.14.4-fabric-forge.txt")) { + "1.12.2"(11202, "srg", file("versions/1.14.4-forge/mapping.txt")) { + "1.12.1"(11201, "srg") { + "1.12"(11200, "srg") { + "1.11.2"(11102, "srg", file("versions/1.12/mapping.txt")) { + "1.11"(11100, "srg", file("versions/1.11.2/mapping.txt")) { + "1.10.2"(11002, "srg", file("versions/1.11/mapping.txt")) { + "1.9.4"(10904, "srg") { + "1.8.9"(10809, "srg", file("versions/1.9.4/mapping.txt")) { + "1.8"(10800, "srg", file("versions/1.8.9/mapping.txt")) { + "1.7.10"(10710, "srg", file("versions/1.8/mapping.txt")) + } + } + } + } + } + } + } + } + } + } + } +} diff --git a/gradle.properties b/gradle.properties index b209ec29..60f91e12 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,4 +2,4 @@ # This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -org.gradle.parallel= +org.gradle.parallel=false diff --git a/jGui b/jGui index 48c89f8a..36fd2eb4 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit 48c89f8a72eaf12bbd1c6a158a76886c24c1e14c +Subproject commit 36fd2eb40214e457803cb5ab9e27dfcc003b413a diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index 700f88ad..00000000 --- a/settings.gradle +++ /dev/null @@ -1,47 +0,0 @@ -def f = file('versions/core/mcVersion') -def coreMcVersion = f.readLines().first() as int - -def jGuiVersions = [] -def replayModVersions = [] -jGuiVersions += [ - 'core', - '1.7.10', - '1.8', - '1.8.9', - '1.9.4', - '1.12', - '1.13.2', - '1.14.4', -] -replayModVersions += [ - 'core', - '1.7.10', - '1.8', - '1.8.9', - '1.9.4', - '1.10.2', - '1.11', - '1.11.2', - '1.12', - '1.12.1', - '1.12.2', - '1.13.2', - '1.14.4', -] - -include ':jGui' -jGuiVersions.each { version -> - include ":jGui:$version" - project(":jGui:$version").with { - projectDir = file("jGui/versions/$version") - buildFileName = '../common.gradle' - } -} - -replayModVersions.each { version -> - include ":$version" - project(":$version").with { - projectDir = file("versions/$version") - buildFileName = '../common.gradle' - } -} diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 00000000..68234031 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,65 @@ +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + jcenter() + mavenCentral() + google() + maven("https://jitpack.io") + maven("https://maven.fabricmc.net") + } + resolutionStrategy { + eachPlugin { + when (requested.id.id) { + "com.replaymod.preprocess" -> { + useModule("com.github.replaymod:preprocessor:${requested.version}") + } + } + } + } +} + +val jGuiVersions = listOf( + "1.7.10", + "1.8", + "1.8.9", + "1.9.4", + "1.12", + "1.14.4-forge", + "1.14.4" +) +val replayModVersions = listOf( + "1.7.10", + "1.8", + "1.8.9", + "1.9.4", + "1.10.2", + "1.11", + "1.11.2", + "1.12", + "1.12.1", + "1.12.2", + "1.14.4-forge", + "1.14.4" +) + +include(":jGui") +project(":jGui").apply { + projectDir = file("jGui") + buildFileName = "preprocess.gradle.kts" +} +jGuiVersions.forEach { version -> + include(":jGui:$version") + project(":jGui:$version").apply { + projectDir = file("jGui/versions/$version") + buildFileName = "../common.gradle" + } +} + +replayModVersions.forEach { version -> + include(":$version") + project(":$version").apply { + projectDir = file("versions/$version") + buildFileName = "../common.gradle" + } +} diff --git a/src/main/java/com/replaymod/compat/oranges17animations/HideInvisibleEntities.java b/src/main/java/com/replaymod/compat/oranges17animations/HideInvisibleEntities.java index 0258f1e6..75ac3000 100644 --- a/src/main/java/com/replaymod/compat/oranges17animations/HideInvisibleEntities.java +++ b/src/main/java/com/replaymod/compat/oranges17animations/HideInvisibleEntities.java @@ -5,8 +5,8 @@ //$$ import de.johni0702.minecraft.gui.utils.EventRegistrations; //$$ import net.minecraft.client.Minecraft; //$$ import net.minecraftforge.client.event.RenderLivingEvent; -//$$ import net.minecraftforge.eventbus.api.EventPriority; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; +//$$ import net.minecraftforge.fml.common.eventhandler.EventPriority; +//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; //$$ //$$ import static com.replaymod.core.versions.MCVer.*; //$$ @@ -17,7 +17,7 @@ //$$ * To fix this issue, we simply cancel the RenderLivingEvent.Pre before it gets to ArmorAnimation if the entity is invisible. //$$ */ //$$ public class HideInvisibleEntities extends EventRegistrations { -//$$ private final Minecraft mc = Minecraft.getInstance(); +//$$ private final Minecraft mc = Minecraft.getMinecraft(); //$$ private final boolean modLoaded = isModLoaded("animations"); //$$ //$$ @SubscribeEvent(priority = EventPriority.HIGH) diff --git a/src/main/java/com/replaymod/compat/shaders/ShaderBeginRender.java b/src/main/java/com/replaymod/compat/shaders/ShaderBeginRender.java index 14f3b4cc..f9fd2cf5 100644 --- a/src/main/java/com/replaymod/compat/shaders/ShaderBeginRender.java +++ b/src/main/java/com/replaymod/compat/shaders/ShaderBeginRender.java @@ -9,11 +9,11 @@ import java.lang.reflect.InvocationTargetException; import static com.replaymod.core.versions.MCVer.getRenderPartialTicks; -//#if MC>=11400 +//#if FABRIC>=1 import com.replaymod.core.events.PreRenderCallback; //#else //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; +//$$ import net.minecraftforge.event.TickEvent; //#endif public class ShaderBeginRender extends EventRegistrations { @@ -25,7 +25,7 @@ public class ShaderBeginRender extends EventRegistrations { * as this would usually get called by EntityRenderer#renderWorld, * which we're not calling during rendering. */ - //#if MC>=11400 + //#if FABRIC>=1 { on(PreRenderCallback.EVENT, this::onRenderTickStart); } private void onRenderTickStart() { //#else diff --git a/src/main/java/com/replaymod/core/KeyBindingRegistry.java b/src/main/java/com/replaymod/core/KeyBindingRegistry.java index eb80a8ee..fbc7c9c9 100644 --- a/src/main/java/com/replaymod/core/KeyBindingRegistry.java +++ b/src/main/java/com/replaymod/core/KeyBindingRegistry.java @@ -9,7 +9,7 @@ import net.minecraft.util.crash.CrashReport; import net.minecraft.util.crash.CrashReportSection; import net.minecraft.util.crash.CrashException; -//#if MC>=11400 +//#if FABRIC>=1 import com.replaymod.core.versions.LangResourcePack; import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding; import net.minecraft.client.util.InputUtil; @@ -38,7 +38,7 @@ import java.util.Map; public class KeyBindingRegistry extends EventRegistrations { private static final String CATEGORY = "replaymod.title"; - //#if MC>=11400 + //#if FABRIC>=1 static { net.fabricmc.fabric.api.client.keybinding.KeyBindingRegistry.INSTANCE.addCategory(CATEGORY); } //#endif @@ -58,7 +58,7 @@ public class KeyBindingRegistry extends EventRegistrations { private KeyBinding registerKeyBinding(String name, int keyCode) { KeyBinding keyBinding = keyBindings.get(name); if (keyBinding == null) { - //#if MC>=11400 + //#if FABRIC>=1 if (keyCode == 0) { keyCode = -1; } diff --git a/src/main/java/com/replaymod/core/ReplayMod.java b/src/main/java/com/replaymod/core/ReplayMod.java index 369dabb4..3a18c894 100755 --- a/src/main/java/com/replaymod/core/ReplayMod.java +++ b/src/main/java/com/replaymod/core/ReplayMod.java @@ -21,6 +21,7 @@ import de.johni0702.minecraft.gui.container.GuiScreen; import lombok.Getter; import net.minecraft.client.MinecraftClient; import net.minecraft.util.Identifier; +import net.minecraft.resource.DirectoryResourcePack; import net.minecraft.text.Text; import net.minecraft.text.Style; import net.minecraft.text.LiteralText; @@ -30,17 +31,18 @@ import org.apache.commons.io.FileUtils; //#if MC>=11400 import com.github.steveice10.mc.protocol.MinecraftConstants; -import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.loader.api.FabricLoader; import net.minecraft.SharedConstants; import net.minecraft.client.options.Option; -import net.minecraft.resource.DirectoryResourcePack; import net.minecraft.resource.ResourcePackCreator; import net.minecraft.resource.ResourcePackContainer; import net.minecraft.util.NonBlockingThreadExecutor; +//#endif + +//#if FABRIC>=1 +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.loader.api.FabricLoader; //#else //$$ import com.google.common.util.concurrent.ListenableFutureTask; -//$$ import net.minecraft.resources.FolderPack; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import java.util.Queue; //$$ import java.util.concurrent.FutureTask; @@ -80,8 +82,10 @@ import net.minecraft.util.NonBlockingThreadExecutor; //#endif //#endif //$$ import net.minecraftforge.fml.common.Mod; +//#if MC<11400 //$$ import net.minecraftforge.fml.common.gameevent.TickEvent; //#endif +//#endif import java.io.ByteArrayInputStream; import java.io.File; @@ -97,7 +101,7 @@ import java.util.concurrent.TimeoutException; import static com.replaymod.core.versions.MCVer.*; -//#if MC<11400 +//#if FABRIC<=0 //#if MC>=11300 //$$ @Mod(ReplayMod.MOD_ID) //#else @@ -114,7 +118,7 @@ import static com.replaymod.core.versions.MCVer.*; //#endif //#endif public class ReplayMod implements - //#if MC>=11400 + //#if FABRIC>=1 ClientModInitializer, //#endif Module @@ -299,7 +303,7 @@ public class ReplayMod implements //#endif }} - //#if MC>=11400 + //#if FABRIC>=1 @Override public void onInitializeClient() { modules.forEach(Module::initCommon); @@ -470,10 +474,12 @@ public class ReplayMod implements return mcThread; } + //#if FABRIC>=1 @Override public void send(Runnable runnable) { method_18858(runnable); } + //#endif @Override public void executeTaskQueue() { @@ -573,7 +579,7 @@ public class ReplayMod implements //#endif public String getVersion() { - //#if MC>=11400 + //#if FABRIC>=1 return FabricLoader.getInstance().getModContainer(MOD_ID) .orElseThrow(IllegalStateException::new) .getMetadata().getVersion().toString(); diff --git a/src/main/java/com/replaymod/core/gui/GuiBackgroundProcesses.java b/src/main/java/com/replaymod/core/gui/GuiBackgroundProcesses.java index ea4528f8..3aabaa04 100644 --- a/src/main/java/com/replaymod/core/gui/GuiBackgroundProcesses.java +++ b/src/main/java/com/replaymod/core/gui/GuiBackgroundProcesses.java @@ -13,7 +13,7 @@ import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.lwjgl.Dimension; import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import net.minecraft.client.gui.screen.Screen; //#else @@ -28,13 +28,13 @@ import static com.replaymod.core.versions.MCVer.getMinecraft; public class GuiBackgroundProcesses extends EventRegistrations { private GuiPanel panel = new GuiPanel().setLayout(new VerticalLayout().setSpacing(10)); - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); } private void onGuiInit(Screen guiScreen) { //#else //$$ @SubscribeEvent //$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.GuiScreen guiScreen = getGui(event); + //$$ net.minecraft.client.gui.screen.Screen guiScreen = getGui(event); //#endif if (guiScreen != getMinecraft().currentScreen) return; // people tend to construct GuiScreens without opening them diff --git a/src/main/java/com/replaymod/core/gui/ModMenuApiImpl.java b/src/main/java/com/replaymod/core/gui/ModMenuApiImpl.java index 28e4752b..666a3174 100644 --- a/src/main/java/com/replaymod/core/gui/ModMenuApiImpl.java +++ b/src/main/java/com/replaymod/core/gui/ModMenuApiImpl.java @@ -1,4 +1,4 @@ -//#if MC>=11400 +//#if FABRIC>=1 package com.replaymod.core.gui; import com.replaymod.core.ReplayMod; diff --git a/src/main/java/com/replaymod/core/handler/MainMenuHandler.java b/src/main/java/com/replaymod/core/handler/MainMenuHandler.java index 2f73dc93..6fe24a09 100644 --- a/src/main/java/com/replaymod/core/handler/MainMenuHandler.java +++ b/src/main/java/com/replaymod/core/handler/MainMenuHandler.java @@ -12,29 +12,33 @@ import java.util.List; import static com.replaymod.core.versions.MCVer.*; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; +//#else +//$$ import net.minecraftforge.client.event.GuiScreenEvent; +//$$ import net.minecraftforge.common.MinecraftForge; +//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; +//#endif + +//#if MC>=11400 import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.resource.language.I18n; //#else //$$ import net.minecraft.client.gui.GuiButton; -//$$ import net.minecraftforge.client.event.GuiScreenEvent; -//$$ import net.minecraftforge.common.MinecraftForge; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //#endif /** * Moves certain buttons on the main menu upwards so we can inject our own. */ public class MainMenuHandler extends EventRegistrations { - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::onInit); } public void onInit(Screen guiScreen, List buttonList) { //#else //$$ @SubscribeEvent //$$ public void onInit(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ GuiScreen guiScreen = getGui(event); - //$$ List buttonList = getButtonList(event); + //$$ Screen guiScreen = getGui(event); + //$$ List buttonList = getButtonList(event); //#endif if (guiScreen instanceof TitleScreen) { TitleScreen gui = (TitleScreen) guiScreen; diff --git a/src/main/java/com/replaymod/core/mixin/GuiScreenAccessor.java b/src/main/java/com/replaymod/core/mixin/GuiScreenAccessor.java index 9d16fcc2..293aa882 100644 --- a/src/main/java/com/replaymod/core/mixin/GuiScreenAccessor.java +++ b/src/main/java/com/replaymod/core/mixin/GuiScreenAccessor.java @@ -18,10 +18,11 @@ import net.minecraft.client.gui.Element; @Mixin(Screen.class) public interface GuiScreenAccessor { - @Accessor //#if MC>=11400 + @Accessor List getButtons(); //#else + //$$ @Accessor("buttonList") //$$ List getButtons(); //#endif diff --git a/src/main/java/com/replaymod/core/mixin/MixinModResourcePackUtil.java b/src/main/java/com/replaymod/core/mixin/MixinModResourcePackUtil.java index 241f5eac..f44e1071 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinModResourcePackUtil.java +++ b/src/main/java/com/replaymod/core/mixin/MixinModResourcePackUtil.java @@ -1,4 +1,4 @@ -//#if MC>=11400 +//#if FABRIC>=1 package com.replaymod.core.mixin; import com.replaymod.core.ReplayMod; diff --git a/src/main/java/com/replaymod/core/utils/ModCompat.java b/src/main/java/com/replaymod/core/utils/ModCompat.java index 6ac091f5..b4391946 100644 --- a/src/main/java/com/replaymod/core/utils/ModCompat.java +++ b/src/main/java/com/replaymod/core/utils/ModCompat.java @@ -3,7 +3,7 @@ package com.replaymod.core.utils; import com.replaymod.replaystudio.data.ModInfo; import net.minecraft.util.Identifier; -//#if MC>=11400 +//#if FABRIC>=1 import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.minecraft.util.registry.Registry; @@ -32,7 +32,7 @@ public class ModCompat { @SuppressWarnings("unchecked") public static Collection getInstalledNetworkMods() { //#if MC>=11300 - //#if MC>=11400 + //#if FABRIC>=1 Map modInfoMap = FabricLoader.getInstance().getAllMods().stream() .map(ModContainer::getMetadata) .map(m -> new ModInfo(m.getId(), m.getName(), m.getVersion().toString())) diff --git a/src/main/java/com/replaymod/core/versions/MCVer.java b/src/main/java/com/replaymod/core/versions/MCVer.java index 6b0df8f8..322fbd85 100644 --- a/src/main/java/com/replaymod/core/versions/MCVer.java +++ b/src/main/java/com/replaymod/core/versions/MCVer.java @@ -3,7 +3,6 @@ package com.replaymod.core.versions; import com.replaymod.core.mixin.GuiScreenAccessor; import com.replaymod.core.mixin.MinecraftAccessor; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.world.ClientWorld; import net.minecraft.client.render.Tessellator; @@ -24,14 +23,21 @@ import org.apache.logging.log4j.Logger; //#if MC>=11400 import com.replaymod.core.mixin.AbstractButtonWidgetAccessor; +import net.minecraft.SharedConstants; import net.minecraft.client.gui.screen.TitleScreen; +import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.AbstractButtonWidget; import java.util.concurrent.CompletableFuture; //#else //$$ import com.google.common.util.concurrent.FutureCallback; //$$ import com.google.common.util.concurrent.Futures; //$$ import com.google.common.util.concurrent.ListenableFuture; -//$$ import net.minecraft.entity.EntityLivingBase; +//$$ import net.minecraft.client.gui.GuiButton; +//#endif + +//#if FABRIC>=1 +//#else +//$$ import net.minecraft.entity.LivingEntity; //$$ import net.minecraftforge.client.event.GuiScreenEvent; //$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; //$$ import net.minecraftforge.client.event.RenderLivingEvent; @@ -80,9 +86,8 @@ import net.minecraft.client.render.chunk.ChunkRenderTask; //$$ import static org.lwjgl.opengl.GL11.*; //#endif -//#if MC>=11400 +//#if FABRIC>=1 import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.SharedConstants; //#else //#if MC>=11300 //$$ import net.minecraftforge.fml.ModList; @@ -104,7 +109,7 @@ import java.util.function.Consumer; public class MCVer { private static Logger LOGGER = LogManager.getLogger(); - //#if MC<11400 + //#if FABRIC<=0 //$$ public static IEventBus FORGE_BUS = MinecraftForge.EVENT_BUS; //#if MC>=10809 //$$ public static IEventBus FML_BUS = FORGE_BUS; @@ -114,7 +119,7 @@ public class MCVer { //#endif public static boolean isModLoaded(String id) { - //#if MC>=11400 + //#if FABRIC>=1 return FabricLoader.getInstance().isModLoaded(id.toLowerCase()); //#else //#if MC>=11300 @@ -171,7 +176,24 @@ public class MCVer { //$$ } //#endif - //#if MC<11400 + //#if FABRIC<=0 + //#if MC>=11400 + //$$ public static void addButton(GuiScreenEvent.InitGuiEvent event, Widget button) { + //$$ event.addWidget(button); + //$$ } + //$$ + //$$ public static void removeButton(GuiScreenEvent.InitGuiEvent event, Widget button) { + //$$ event.removeWidget(button); + //$$ } + //$$ + //$$ public static List getButtonList(GuiScreenEvent.InitGuiEvent event) { + //$$ return event.getWidgetList(); + //$$ } + //$$ + //$$ public static Widget getButton(GuiScreenEvent.ActionPerformedEvent event) { + //$$ return event.getButton(); + //$$ } + //#else //$$ public static void addButton(GuiScreenEvent.InitGuiEvent event, GuiButton button) { //#if MC>=11300 //$$ event.addButton(button); @@ -204,8 +226,9 @@ public class MCVer { //$$ return event.button; //#endif //$$ } + //#endif //$$ - //$$ public static GuiScreen getGui(GuiScreenEvent event) { + //$$ public static Screen getGui(GuiScreenEvent event) { //#if MC>=10904 //$$ return event.getGui(); //#else @@ -213,7 +236,7 @@ public class MCVer { //#endif //$$ } //$$ - //$$ public static EntityLivingBase getEntity(RenderLivingEvent event) { + //$$ public static LivingEntity getEntity(RenderLivingEvent event) { //#if MC>=10904 //$$ return event.getEntity(); //#else @@ -234,7 +257,7 @@ public class MCVer { //#endif } - //#if MC<11400 + //#if FABRIC<=0 //$$ public static RenderGameOverlayEvent.ElementType getType(RenderGameOverlayEvent event) { //#if MC>=10904 //$$ return event.getType(); @@ -475,7 +498,14 @@ public class MCVer { return ((MinecraftAccessor) getMinecraft()).getTimer().tickDelta; } - public static void addButton(Screen screen, ButtonWidget button) { + public static void addButton( + Screen screen, + //#if MC>=11400 + ButtonWidget button + //#else + //$$ GuiButton button + //#endif + ) { GuiScreenAccessor acc = (GuiScreenAccessor) screen; //#if MC>=11400 if (screen instanceof TitleScreen && isModLoaded("modmenu")) { @@ -635,9 +665,8 @@ public class MCVer { //$$ } //#endif - //#if MC>=11300 - @SuppressWarnings("unused") public static abstract class Keyboard { + //#if MC>=11300 public static final int KEY_LCONTROL = GLFW.GLFW_KEY_LEFT_CONTROL; public static final int KEY_LSHIFT = GLFW.GLFW_KEY_LEFT_SHIFT; public static final int KEY_ESCAPE = GLFW.GLFW_KEY_ESCAPE; @@ -678,14 +707,69 @@ public class MCVer { public static final int KEY_X = GLFW.GLFW_KEY_X; public static final int KEY_Y = GLFW.GLFW_KEY_Y; public static final int KEY_Z = GLFW.GLFW_KEY_Z; + //#else + //$$ public static final int KEY_LCONTROL = org.lwjgl.input.Keyboard.KEY_LCONTROL; + //$$ public static final int KEY_LSHIFT = org.lwjgl.input.Keyboard.KEY_LSHIFT; + //$$ public static final int KEY_ESCAPE = org.lwjgl.input.Keyboard.KEY_ESCAPE; + //$$ public static final int KEY_HOME = org.lwjgl.input.Keyboard.KEY_HOME; + //$$ public static final int KEY_END = org.lwjgl.input.Keyboard.KEY_END; + //$$ public static final int KEY_UP = org.lwjgl.input.Keyboard.KEY_UP; + //$$ public static final int KEY_DOWN = org.lwjgl.input.Keyboard.KEY_DOWN; + //$$ public static final int KEY_LEFT = org.lwjgl.input.Keyboard.KEY_LEFT; + //$$ public static final int KEY_RIGHT = org.lwjgl.input.Keyboard.KEY_RIGHT; + //$$ public static final int KEY_BACK = org.lwjgl.input.Keyboard.KEY_BACK; + //$$ public static final int KEY_DELETE = org.lwjgl.input.Keyboard.KEY_DELETE; + //$$ public static final int KEY_RETURN = org.lwjgl.input.Keyboard.KEY_RETURN; + //$$ public static final int KEY_TAB = org.lwjgl.input.Keyboard.KEY_TAB; + //$$ public static final int KEY_F1 = org.lwjgl.input.Keyboard.KEY_F1; + //$$ public static final int KEY_A = org.lwjgl.input.Keyboard.KEY_A; + //$$ public static final int KEY_B = org.lwjgl.input.Keyboard.KEY_B; + //$$ public static final int KEY_C = org.lwjgl.input.Keyboard.KEY_C; + //$$ public static final int KEY_D = org.lwjgl.input.Keyboard.KEY_D; + //$$ public static final int KEY_E = org.lwjgl.input.Keyboard.KEY_E; + //$$ public static final int KEY_F = org.lwjgl.input.Keyboard.KEY_F; + //$$ public static final int KEY_G = org.lwjgl.input.Keyboard.KEY_G; + //$$ public static final int KEY_H = org.lwjgl.input.Keyboard.KEY_H; + //$$ public static final int KEY_I = org.lwjgl.input.Keyboard.KEY_I; + //$$ public static final int KEY_J = org.lwjgl.input.Keyboard.KEY_J; + //$$ public static final int KEY_K = org.lwjgl.input.Keyboard.KEY_K; + //$$ public static final int KEY_L = org.lwjgl.input.Keyboard.KEY_L; + //$$ public static final int KEY_M = org.lwjgl.input.Keyboard.KEY_M; + //$$ public static final int KEY_N = org.lwjgl.input.Keyboard.KEY_N; + //$$ public static final int KEY_O = org.lwjgl.input.Keyboard.KEY_O; + //$$ public static final int KEY_P = org.lwjgl.input.Keyboard.KEY_P; + //$$ public static final int KEY_Q = org.lwjgl.input.Keyboard.KEY_Q; + //$$ public static final int KEY_R = org.lwjgl.input.Keyboard.KEY_R; + //$$ public static final int KEY_S = org.lwjgl.input.Keyboard.KEY_S; + //$$ public static final int KEY_T = org.lwjgl.input.Keyboard.KEY_T; + //$$ public static final int KEY_U = org.lwjgl.input.Keyboard.KEY_U; + //$$ public static final int KEY_V = org.lwjgl.input.Keyboard.KEY_V; + //$$ public static final int KEY_W = org.lwjgl.input.Keyboard.KEY_W; + //$$ public static final int KEY_X = org.lwjgl.input.Keyboard.KEY_X; + //$$ public static final int KEY_Y = org.lwjgl.input.Keyboard.KEY_Y; + //$$ public static final int KEY_Z = org.lwjgl.input.Keyboard.KEY_Z; + //#endif public static boolean isKeyDown(int keyCode) { //#if MC>=11400 return InputUtil.isKeyPressed(getMinecraft().window.getHandle(), keyCode); //#else + //#if MC>=11300 //$$ return InputMappings.isKeyDown(keyCode); + //#else + //$$ return org.lwjgl.input.Keyboard.isKeyDown(keyCode); + //#endif //#endif } + + //#if MC<11300 + //$$ public static int getEventKey() { + //$$ return org.lwjgl.input.Keyboard.getEventKey(); + //$$ } + //$$ + //$$ public static boolean getEventKeyState() { + //$$ return org.lwjgl.input.Keyboard.getEventKeyState(); + //$$ } + //#endif } - //#endif } diff --git a/src/main/java/com/replaymod/editor/handler/GuiHandler.java b/src/main/java/com/replaymod/editor/handler/GuiHandler.java index 0d8589a2..599da527 100644 --- a/src/main/java/com/replaymod/editor/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/editor/handler/GuiHandler.java @@ -10,7 +10,7 @@ import de.johni0702.minecraft.gui.container.GuiScreen; import de.johni0702.minecraft.gui.element.GuiButton; import net.minecraft.util.crash.CrashReport; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.AbstractButtonWidget; @@ -25,13 +25,13 @@ import java.io.IOException; import static com.replaymod.core.versions.MCVer.*; public class GuiHandler extends EventRegistrations { - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); } public void injectIntoReplayViewer(Screen vanillaGuiScreen, List buttonList) { //#else //$$ @SubscribeEvent //$$ public void injectIntoReplayViewer(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.GuiScreen vanillaGuiScreen = getGui(event); + //$$ net.minecraft.client.gui.screen.Screen vanillaGuiScreen = getGui(event); //#endif AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen); if (!(guiScreen instanceof GuiReplayViewer)) { diff --git a/src/main/java/com/replaymod/extras/FullBrightness.java b/src/main/java/com/replaymod/extras/FullBrightness.java index 088e4bfb..c4471f29 100644 --- a/src/main/java/com/replaymod/extras/FullBrightness.java +++ b/src/main/java/com/replaymod/extras/FullBrightness.java @@ -12,12 +12,12 @@ import de.johni0702.minecraft.gui.layout.HorizontalLayout; import de.johni0702.minecraft.gui.utils.EventRegistrations; import net.minecraft.client.MinecraftClient; -//#if MC>=11400 +//#if FABRIC>=1 import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.events.PostRenderCallback; //#else //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; +//$$ import net.minecraftforge.event.TickEvent; //#endif public class FullBrightness extends EventRegistrations implements Extra { @@ -58,7 +58,7 @@ public class FullBrightness extends EventRegistrations implements Extra { register(); } - //#if MC>=11400 + //#if FABRIC>=1 { on(PreRenderCallback.EVENT, this::preRender); } private void preRender() { //#else @@ -72,7 +72,7 @@ public class FullBrightness extends EventRegistrations implements Extra { } } - //#if MC>=11400 + //#if FABRIC>=1 { on(PostRenderCallback.EVENT, this::postRender); } private void postRender() { //#else diff --git a/src/main/java/com/replaymod/extras/youtube/YoutubeUpload.java b/src/main/java/com/replaymod/extras/youtube/YoutubeUpload.java index f5d5c0f5..5fde32a5 100644 --- a/src/main/java/com/replaymod/extras/youtube/YoutubeUpload.java +++ b/src/main/java/com/replaymod/extras/youtube/YoutubeUpload.java @@ -7,7 +7,7 @@ import de.johni0702.minecraft.gui.container.GuiScreen; import de.johni0702.minecraft.gui.element.GuiButton; import de.johni0702.minecraft.gui.utils.EventRegistrations; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.OpenGuiScreenCallback; import net.minecraft.client.gui.screen.Screen; //#else @@ -23,13 +23,13 @@ public class YoutubeUpload extends EventRegistrations implements Extra { register(); } - //#if MC>=11400 + //#if FABRIC>=1 { on(OpenGuiScreenCallback.EVENT, this::onGuiOpen); } private void onGuiOpen(Screen vanillaGui) { //#else //$$ @SubscribeEvent //$$ public void onGuiOpen(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.GuiScreen vanillaGui = getGui(event); + //$$ net.minecraft.client.gui.screen.Screen vanillaGui = getGui(event); //#endif if (GuiScreen.from(vanillaGui) instanceof GuiRenderingDone) { GuiRenderingDone gui = (GuiRenderingDone) GuiScreen.from(vanillaGui); diff --git a/src/main/java/com/replaymod/online/handler/GuiHandler.java b/src/main/java/com/replaymod/online/handler/GuiHandler.java index 2bf7f931..c8e620c4 100644 --- a/src/main/java/com/replaymod/online/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/online/handler/GuiHandler.java @@ -9,14 +9,13 @@ import com.replaymod.replay.gui.screen.GuiReplayViewer; import com.replaymod.replay.handler.GuiHandler.InjectedButton; import de.johni0702.minecraft.gui.container.AbstractGuiScreen; import de.johni0702.minecraft.gui.container.GuiScreen; -import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.screen.TitleScreen; +import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.resource.language.I18n; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.widget.AbstractButtonWidget; import java.util.List; //#else //$$ import net.minecraftforge.client.event.GuiScreenEvent; @@ -36,19 +35,19 @@ public class GuiHandler extends EventRegistrations { this.mod = mod; } - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::injectIntoMainMenu); } public void injectIntoMainMenu(Screen guiScreen, List buttonList) { //#else //$$ @SubscribeEvent //$$ public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) { - //$$ final net.minecraft.client.gui.GuiScreen guiScreen = getGui(event); + //$$ final net.minecraft.client.gui.screen.Screen guiScreen = getGui(event); //#endif if (!(guiScreen instanceof TitleScreen)) { return; } - ButtonWidget button = new InjectedButton( + InjectedButton button = new InjectedButton( guiScreen, BUTTON_REPLAY_CENTER, guiScreen.width / 2 + 2, @@ -61,13 +60,13 @@ public class GuiHandler extends EventRegistrations { addButton(guiScreen, button); } - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); } public void injectIntoReplayViewer(Screen vanillaGuiScreen, List buttonList) { //#else //$$ @SubscribeEvent //$$ public void injectIntoReplayViewer(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.GuiScreen vanillaGuiScreen = getGui(event); + //$$ net.minecraft.client.gui.screen.Screen vanillaGuiScreen = getGui(event); //#endif AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen); if (!(guiScreen instanceof GuiReplayViewer)) { diff --git a/src/main/java/com/replaymod/recording/ReplayModRecording.java b/src/main/java/com/replaymod/recording/ReplayModRecording.java index 2af00462..2bb65b7d 100644 --- a/src/main/java/com/replaymod/recording/ReplayModRecording.java +++ b/src/main/java/com/replaymod/recording/ReplayModRecording.java @@ -15,7 +15,7 @@ import net.minecraft.network.ClientConnection; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -//#if MC>=11400 +//#if FABRIC>=1 import net.fabricmc.fabric.api.network.ClientSidePacketRegistry; //#else //$$ import net.minecraftforge.fml.network.NetworkRegistry; @@ -67,7 +67,7 @@ public class ReplayModRecording implements Module { new GuiHandler(core).register(); - //#if MC>=11400 + //#if FABRIC>=1 ClientSidePacketRegistry.INSTANCE.register(Restrictions.PLUGIN_CHANNEL, (packetContext, packetByteBuf) -> {}); //#else //#if MC>=11300 diff --git a/src/main/java/com/replaymod/recording/gui/GuiRecordingControls.java b/src/main/java/com/replaymod/recording/gui/GuiRecordingControls.java index 73ac248b..d4b2d5de 100644 --- a/src/main/java/com/replaymod/recording/gui/GuiRecordingControls.java +++ b/src/main/java/com/replaymod/recording/gui/GuiRecordingControls.java @@ -15,7 +15,7 @@ import de.johni0702.minecraft.gui.layout.HorizontalLayout; import de.johni0702.minecraft.gui.utils.EventRegistrations; import net.minecraft.client.gui.screen.GameMenuScreen; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; //#else //$$ import net.minecraftforge.client.event.GuiScreenEvent; @@ -70,7 +70,7 @@ public class GuiRecordingControls extends EventRegistrations { updateState(); } - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, (screen, buttons) -> { if (screen instanceof GameMenuScreen) { show((GameMenuScreen) screen); @@ -79,8 +79,8 @@ public class GuiRecordingControls extends EventRegistrations { //#else //$$ @SubscribeEvent //$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ if (getGui(event) instanceof GuiIngameMenu) { - //$$ show((GuiIngameMenu) getGui(event)); + //$$ if (getGui(event) instanceof IngameMenuScreen) { + //$$ show((IngameMenuScreen) getGui(event)); //$$ } //$$ } //#endif diff --git a/src/main/java/com/replaymod/recording/gui/GuiRecordingOverlay.java b/src/main/java/com/replaymod/recording/gui/GuiRecordingOverlay.java index ea09fac6..c87bb471 100644 --- a/src/main/java/com/replaymod/recording/gui/GuiRecordingOverlay.java +++ b/src/main/java/com/replaymod/recording/gui/GuiRecordingOverlay.java @@ -10,7 +10,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.resource.language.I18n; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.PostRenderHudCallback; //#else //$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; @@ -40,7 +40,7 @@ public class GuiRecordingOverlay extends EventRegistrations { /** * Render the recording icon and text in the top left corner of the screen. */ - //#if MC>=11400 + //#if FABRIC>=1 { on(PostRenderHudCallback.EVENT, partialTicks -> renderRecordingIndicator()); } private void renderRecordingIndicator() { //#else diff --git a/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java b/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java index be3c34fd..de8e4595 100644 --- a/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java +++ b/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java @@ -18,7 +18,11 @@ //$$ public class FMLHandshakeFilter extends SimpleChannelInboundHandler { //$$ @Override //$$ protected void channelRead0(ChannelHandlerContext ctx, FMLHandshakeMessage msg) throws Exception { -//$$ if (!(msg instanceof FMLHandshakeMessage.RegistryData)) { + //#if MC>=10800 + //$$ if (!(msg instanceof FMLHandshakeMessage.RegistryData)) { + //#else + //$$ if (!(msg instanceof FMLHandshakeMessage.ModIdData)) { + //#endif //$$ // Pass on everything but RegistryData messages //$$ ctx.fireChannelRead(msg); //$$ } diff --git a/src/main/java/com/replaymod/recording/handler/GuiHandler.java b/src/main/java/com/replaymod/recording/handler/GuiHandler.java index 36a346d0..074786c3 100644 --- a/src/main/java/com/replaymod/recording/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/recording/handler/GuiHandler.java @@ -11,7 +11,7 @@ import de.johni0702.minecraft.gui.utils.EventRegistrations; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.world.SelectWorldScreen; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import net.minecraft.client.gui.screen.Screen; //#else @@ -30,13 +30,13 @@ public class GuiHandler extends EventRegistrations { this.mod = mod; } - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); } private void onGuiInit(Screen gui) { //#else //$$ @SubscribeEvent //$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.GuiScreen gui = getGui(event); + //$$ net.minecraft.client.gui.screen.Screen gui = getGui(event); //#endif if (gui instanceof SelectWorldScreen || gui instanceof MultiplayerScreen) { boolean sp = gui instanceof SelectWorldScreen; diff --git a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java index 9ec4e436..efbabc29 100755 --- a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java +++ b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java @@ -5,25 +5,42 @@ import com.replaymod.recording.packet.PacketListener; import de.johni0702.minecraft.gui.utils.EventRegistrations; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.network.packet.BlockBreakingProgressS2CPacket; +import net.minecraft.client.network.packet.EntityAnimationS2CPacket; +import net.minecraft.client.network.packet.EntityAttachS2CPacket; +import net.minecraft.client.network.packet.EntityEquipmentUpdateS2CPacket; +import net.minecraft.client.network.packet.EntityPositionS2CPacket; +import net.minecraft.client.network.packet.EntityS2CPacket; +import net.minecraft.client.network.packet.EntitySetHeadYawS2CPacket; +import net.minecraft.client.network.packet.EntityVelocityUpdateS2CPacket; +import net.minecraft.client.network.packet.PlayerSpawnS2CPacket; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.Packet; -import net.minecraft.client.network.packet.*; import net.minecraft.server.integrated.IntegratedServer; // FIXME not (yet?) 1.13 import net.minecraftforge.event.entity.minecart.MinecartInteractEvent; -//#if MC>=11400 +//#if FABRIC>=1 import com.replaymod.core.events.PreRenderCallback; import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; //#else +//$$ import net.minecraft.network.play.server.SCollectItemPacket; //$$ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemPickupEvent; -//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; +//$$ import net.minecraftforge.event.entity.player.PlayerEvent.ItemPickupEvent; +//$$ import net.minecraftforge.event.TickEvent; +//#endif + +//#if MC>=11400 +//#else +//$$ import net.minecraft.network.play.server.SPacketUseBed; //#endif //#if MC>=10904 import com.replaymod.recording.mixin.EntityLivingBaseAccessor; +import net.minecraft.client.network.packet.EntityTrackerUpdateS2CPacket; +import net.minecraft.client.network.packet.PlaySoundS2CPacket; +import net.minecraft.client.network.packet.WorldEventS2CPacket; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.data.DataTracker; import net.minecraft.util.Hand; @@ -120,7 +137,7 @@ public class RecordingEventHandler extends EventRegistrations { } //#endif - //#if MC>=11400 + //#if FABRIC>=1 { on(PreTickCallback.EVENT, this::onPlayerTick); } private void onPlayerTick() { if (mc.player == null) return; @@ -178,7 +195,11 @@ public class RecordingEventHandler extends EventRegistrations { byte newYaw = (byte) ((int) (player.yaw * 256.0F / 360.0F)); byte newPitch = (byte) ((int) (player.pitch * 256.0F / 360.0F)); + //#if MC>=11400 packet = new EntityS2CPacket.RotateAndMoveRelative( + //#else + //$$ packet = new SPacketEntity.S17PacketEntityLookMove( + //#endif player.getEntityId(), //#if MC>=10904 (short) Math.round(dx * 4096), (short) Math.round(dy * 4096), (short) Math.round(dz * 4096), @@ -346,7 +367,7 @@ public class RecordingEventHandler extends EventRegistrations { } } - //#if MC>=11400 + //#if FABRIC>=1 // FIXME fabric //#else //$$ @SubscribeEvent @@ -356,7 +377,7 @@ public class RecordingEventHandler extends EventRegistrations { //#if MC>=11200 //#if MC>=11300 //$$ ItemStack stack = event.getStack(); - //$$ packetListener.save(new SPacketCollectItem( + //$$ packetListener.save(new SCollectItemPacket( //$$ event.getOriginalEntity().getEntityId(), //$$ event.getPlayer().getEntityId(), //$$ event.getStack().getCount() @@ -456,7 +477,7 @@ public class RecordingEventHandler extends EventRegistrations { } } - //#if MC>=11400 + //#if FABRIC>=1 { on(PreRenderCallback.EVENT, this::checkForGamePaused); } private void checkForGamePaused() { //#else diff --git a/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java b/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java index 9775457f..35b23afb 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java @@ -4,7 +4,7 @@ import com.replaymod.core.versions.MCVer; import com.replaymod.recording.handler.RecordingEventHandler; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.network.packet.*; +import net.minecraft.client.network.packet.PlayerRespawnS2CPacket; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -24,6 +24,8 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.util.Map; import java.util.UUID; +//#else +//$$ import net.minecraft.network.play.server.S01PacketJoinGame; //#endif @Mixin(ClientPlayNetworkHandler.class) @@ -49,7 +51,11 @@ public abstract class MixinNetHandlerPlayClient { * @param ci Callback info */ //#if MC>=10800 + //#if FABRIC>=1 @Inject(method = "onPlayerList", at=@At("HEAD")) + //#else + //$$ @Inject(method = "handlePlayerListItem", at=@At("HEAD")) + //#endif public void recordOwnJoin(PlayerListS2CPacket packet, CallbackInfo ci) { if (mcStatic.player == null) return; @@ -101,7 +107,11 @@ public abstract class MixinNetHandlerPlayClient { * @param packet The packet * @param ci Callback info */ + //#if FABRIC>=1 @Inject(method = "onPlayerRespawn", at=@At("RETURN")) + //#else + //$$ @Inject(method = "handleRespawn", at=@At("RETURN")) + //#endif public void recordOwnRespawn(PlayerRespawnS2CPacket packet, CallbackInfo ci) { RecordingEventHandler handler = getRecordingEventHandler(); if (handler != null) { diff --git a/src/main/java/com/replaymod/recording/mixin/MixinWorldClient.java b/src/main/java/com/replaymod/recording/mixin/MixinWorldClient.java index 1b1af283..72ec652b 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinWorldClient.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinWorldClient.java @@ -71,9 +71,14 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa // other clients so we have to record them manually. // E.g. Block place sounds //#if MC>=11400 + //#if FABRIC>=1 @Inject(method = "playSound(Lnet/minecraft/entity/player/PlayerEntity;DDDLnet/minecraft/sound/SoundEvent;Lnet/minecraft/sound/SoundCategory;FF)V", at = @At("HEAD")) //#else + //$$ @Inject(method = "playSound(Lnet/minecraft/entity/player/PlayerEntity;DDDLnet/minecraft/util/SoundEvent;Lnet/minecraft/util/SoundCategory;FF)V", + //$$ at = @At("HEAD")) + //#endif + //#else //$$ @Inject(method = "playSound(Lnet/minecraft/entity/player/EntityPlayer;DDDLnet/minecraft/util/SoundEvent;Lnet/minecraft/util/SoundCategory;FF)V", //$$ at = @At("HEAD")) //#endif diff --git a/src/main/java/com/replaymod/recording/packet/PacketListener.java b/src/main/java/com/replaymod/recording/packet/PacketListener.java index 19f5992a..69e589e7 100755 --- a/src/main/java/com/replaymod/recording/packet/PacketListener.java +++ b/src/main/java/com/replaymod/recording/packet/PacketListener.java @@ -23,12 +23,16 @@ import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.packet.CustomPayloadS2CPacket; +import net.minecraft.client.network.packet.DisconnectS2CPacket; +import net.minecraft.client.network.packet.ItemPickupAnimationS2CPacket; +import net.minecraft.client.network.packet.MobSpawnS2CPacket; +import net.minecraft.client.network.packet.PlayerSpawnS2CPacket; import net.minecraft.entity.Entity; import net.minecraft.entity.data.DataTracker; import net.minecraft.network.NetworkState; import net.minecraft.network.Packet; import net.minecraft.util.PacketByteBuf; -import net.minecraft.client.network.packet.*; import net.minecraft.text.LiteralText; import net.minecraft.util.crash.CrashReport; import org.apache.logging.log4j.LogManager; @@ -46,7 +50,11 @@ import net.minecraft.client.network.packet.LoginSuccessS2CPacket; //#endif //#if MC>=10800 +//#if MC<10904 +//$$ import net.minecraft.network.play.server.S46PacketSetCompressionLevel; +//#endif import net.minecraft.client.network.packet.LoginCompressionS2CPacket; +import net.minecraft.client.network.packet.ResourcePackSendS2CPacket; import net.minecraft.network.NetworkSide; //#endif diff --git a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java index 0a28c67a..9d42001e 100644 --- a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java +++ b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java @@ -149,7 +149,7 @@ public class ResourcePackRecorder { //$$ //noinspection Convert2Lambda //$$ mc.addScheduledTask(() -> mc.displayGuiScreen(new GuiYesNo(new GuiYesNoCallback() { //$$ @Override - //$$ public void confirmResult(boolean result, int id) { + //$$ public void confirmClicked(boolean result, int id) { //#endif if (serverData != null) { serverData.setResourcePackState(result ? ServerEntry.ResourcePackState.ENABLED : ServerEntry.ResourcePackState.DISABLED); diff --git a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java index a4c54b13..2c3c4d1b 100644 --- a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java +++ b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java @@ -166,20 +166,32 @@ public class BlendMeshBuilder //#endif switch (element.getType()) { case POSITION: + //#if MC>=11400 if (element.getFormat() != VertexFormatElement.Format.FLOAT) { + //#else + //$$ if (element.getType() != VertexFormatElement.EnumType.FLOAT) { + //#endif throw new UnsupportedOperationException("Only float is supported for position elements!"); } posOffset = offset; break; case COLOR: + //#if MC>=11400 if (element.getFormat() != VertexFormatElement.Format.UBYTE) { + //#else + //$$ if (element.getType() != VertexFormatElement.EnumType.UBYTE) { + //#endif throw new UnsupportedOperationException("Only unsigned byte is supported for color elements!"); } colorOffset = offset; break; case UV: if (element.getIndex() != 0) break; + //#if MC>=11400 if (element.getFormat() != VertexFormatElement.Format.FLOAT) { + //#else + //$$ if (element.getType() != VertexFormatElement.EnumType.UBYTE) { + //#endif throw new UnsupportedOperationException("Only float is supported for UV elements!"); } uvOffset = offset; diff --git a/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java b/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java index 14827b18..f8d75b8a 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java +++ b/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java @@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; //#if MC>=11400 -@Mixin(targets = "net/minecraft/client/render/WorldRenderer/ChunkInfo") +@Mixin(targets = "net.minecraft.client.render.WorldRenderer$ChunkInfo") //#else //#if MC>=11300 //$$ @Mixin(targets = "net/minecraft/client/renderer/WorldRenderer$ContainerLocalRenderInformation") diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java index a356c2be..7cd0097e 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java @@ -21,7 +21,11 @@ import net.minecraft.client.render.entity.LivingEntityRenderer; //$$ @Mixin(RendererLivingEntity.class) //#endif public abstract class MixinRenderLivingBase { + //#if FABRIC>=1 @Inject(method = "method_4054", at = @At( + //#else + //$$ @Inject(method = "doRender(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At( + //#endif value = "INVOKE", //#if MC>=10904 target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scaleAndTranslate(Lnet/minecraft/entity/LivingEntity;F)F", diff --git a/src/main/java/com/replaymod/render/mixin/MixinCamera.java b/src/main/java/com/replaymod/render/mixin/MixinCamera.java index edd82c77..b66b7283 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinCamera.java +++ b/src/main/java/com/replaymod/render/mixin/MixinCamera.java @@ -18,13 +18,13 @@ import static com.replaymod.core.versions.MCVer.*; import net.minecraft.client.render.Camera; import net.minecraft.world.BlockView; //#else -//$$ import net.minecraft.client.renderer.GameRenderer; +//$$ import net.minecraft.client.renderer.EntityRenderer; //#endif //#if MC>=11400 @Mixin(value = Camera.class) //#else -//$$ @Mixin(value = GameRenderer.class) +//$$ @Mixin(value = EntityRenderer.class) //#endif public abstract class MixinCamera { private EntityRendererHandler getHandler() { diff --git a/src/main/java/com/replaymod/replay/FullReplaySender.java b/src/main/java/com/replaymod/replay/FullReplaySender.java index e93a20d0..1b0cc471 100755 --- a/src/main/java/com/replaymod/replay/FullReplaySender.java +++ b/src/main/java/com/replaymod/replay/FullReplaySender.java @@ -29,17 +29,48 @@ import net.minecraft.network.NetworkState; import net.minecraft.network.ClientConnection; import net.minecraft.network.Packet; import net.minecraft.util.PacketByteBuf; +import net.minecraft.client.network.packet.ChatMessageS2CPacket; +import net.minecraft.client.network.packet.CustomPayloadS2CPacket; +import net.minecraft.client.network.packet.DisconnectS2CPacket; +import net.minecraft.client.network.packet.EntitiesDestroyS2CPacket; +import net.minecraft.client.network.packet.EntitySpawnGlobalS2CPacket; +import net.minecraft.client.network.packet.EntitySpawnS2CPacket; +import net.minecraft.client.network.packet.ExperienceBarUpdateS2CPacket; +import net.minecraft.client.network.packet.ExperienceOrbSpawnS2CPacket; +import net.minecraft.client.network.packet.GameJoinS2CPacket; +import net.minecraft.client.network.packet.GameStateChangeS2CPacket; +import net.minecraft.client.network.packet.GuiCloseS2CPacket; +import net.minecraft.client.network.packet.GuiOpenS2CPacket; +import net.minecraft.client.network.packet.GuiSlotUpdateS2CPacket; +import net.minecraft.client.network.packet.GuiUpdateS2CPacket; +import net.minecraft.client.network.packet.HealthUpdateS2CPacket; import net.minecraft.client.network.packet.LoginSuccessS2CPacket; -import net.minecraft.client.network.packet.*; +import net.minecraft.client.network.packet.MobSpawnS2CPacket; +import net.minecraft.client.network.packet.PaintingSpawnS2CPacket; +import net.minecraft.client.network.packet.ParticleS2CPacket; +import net.minecraft.client.network.packet.PlayerAbilitiesS2CPacket; +import net.minecraft.client.network.packet.PlayerPositionLookS2CPacket; +import net.minecraft.client.network.packet.PlayerRespawnS2CPacket; +import net.minecraft.client.network.packet.PlayerSpawnS2CPacket; +import net.minecraft.client.network.packet.SignEditorOpenS2CPacket; +import net.minecraft.client.network.packet.StatisticsS2CPacket; import net.minecraft.text.Text; import net.minecraft.world.World; import net.minecraft.world.chunk.ChunkProvider; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; +//#else +//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; +//$$ import net.minecraftforge.event.TickEvent; +//#endif + +//#if MC>=11400 import net.minecraft.class_4463; +import net.minecraft.client.network.packet.OpenContainerPacket; +import net.minecraft.client.network.packet.OpenWrittenBookS2CPacket; import net.minecraft.entity.EntityType; import net.minecraft.text.TranslatableText; //#else @@ -49,8 +80,6 @@ import net.minecraft.text.TranslatableText; //$$ import net.minecraft.world.EnumDifficulty; //$$ import net.minecraft.world.WorldType; //$$ import net.minecraft.world.chunk.Chunk; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; //$$ import java.util.ArrayList; //$$ import java.util.Collection; //$$ import java.util.Iterator; @@ -65,6 +94,9 @@ import net.minecraft.util.Identifier; //#if MC>=11200 import com.replaymod.core.utils.WrappedTimer; +import net.minecraft.client.network.packet.AdvancementUpdateS2CPacket; +import net.minecraft.client.network.packet.SelectAdvancementTabS2CPacket; +import net.minecraft.client.network.packet.SynchronizeRecipesS2CPacket; //#endif //#if MC>=11002 import net.minecraft.world.GameMode; @@ -72,7 +104,16 @@ import net.minecraft.world.GameMode; //$$ import net.minecraft.world.WorldSettings.GameType; //#endif +//#if MC>=10904 +import net.minecraft.client.network.packet.UnloadChunkS2CPacket; +//#else +//$$ import net.minecraft.network.play.server.S21PacketChunkData; +//#endif + //#if MC>=10800 +import net.minecraft.client.network.packet.ResourcePackSendS2CPacket; +import net.minecraft.client.network.packet.SetCameraEntityS2CPacket; +import net.minecraft.client.network.packet.TitleS2CPacket; import net.minecraft.network.NetworkSide; //#else //$$ import org.apache.commons.io.Charsets; @@ -320,7 +361,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend //$$ public // All event handlers need to be public in 1.7.10 //#endif class EventHandler extends EventRegistrations { - //#if MC>=11400 + //#if FABRIC>=1 { on(PreTickCallback.EVENT, this::onWorldTick); } private void onWorldTick() { //#else @@ -387,7 +428,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend //$$ Iterator iter = loadedEntityList(world).iterator(); //$$ while (iter.hasNext()) { //$$ Entity entity = iter.next(); - //$$ if (entity.removed) { + //$$ if (entity.isDead) { //$$ int chunkX = entity.chunkCoordX; //$$ int chunkY = entity.chunkCoordZ; //$$ @@ -400,7 +441,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend //$$ if (entity.addedToChunk && world.getChunkProvider().chunkExists(chunkX, chunkY)) { //#endif //#endif - //$$ world.getChunk(chunkX, chunkY).removeEntity(entity); + //$$ world.getChunkFromChunkCoords(chunkX, chunkY).removeEntity(entity); //$$ } //$$ //$$ iter.remove(); @@ -592,7 +633,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend p = new PlayerRespawnS2CPacket(respawn.getDimension(), respawn.getGeneratorType(), GameMode.SPECTATOR); //#else //#if MC>=10809 - //$$ p = new SPacketRespawn(respawn.func_212643_b(), + //$$ p = new SPacketRespawn(respawn.getDimensionID(), //$$ respawn.getDifficulty(), respawn.getWorldType(), GameType.SPECTATOR); //#else //$$ p = new S07PacketRespawn(respawn.func_149082_c(), @@ -622,14 +663,21 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend CameraEntity cent = replayHandler.getCameraEntity(); //#if MC>=10800 - //#if MC>=10904 + //#if MC>=11400 for (PlayerPositionLookS2CPacket.Flag relative : ppl.getFlags()) { - //#else - //$$ for (Object relative : ppl.func_179834_f()) { - //#endif if (relative == PlayerPositionLookS2CPacket.Flag.X || relative == PlayerPositionLookS2CPacket.Flag.Y || relative == PlayerPositionLookS2CPacket.Flag.Z) { + //#else + //#if MC>=10904 + //$$ for (SPacketPlayerPosLook.EnumFlags relative : ppl.getFlags()) { + //#else + //$$ for (Object relative : ppl.func_179834_f()) { + //#endif + //$$ if (relative == SPacketPlayerPosLook.EnumFlags.X + //$$ || relative == SPacketPlayerPosLook.EnumFlags.Y + //$$ || relative == SPacketPlayerPosLook.EnumFlags.Z) { + //#endif return null; // At least one of the coordinates is relative, so we don't care } } diff --git a/src/main/java/com/replaymod/replay/QuickReplaySender.java b/src/main/java/com/replaymod/replay/QuickReplaySender.java index 357a1aa6..1ea76a2b 100644 --- a/src/main/java/com/replaymod/replay/QuickReplaySender.java +++ b/src/main/java/com/replaymod/replay/QuickReplaySender.java @@ -64,16 +64,20 @@ import net.minecraft.network.NetworkSide; import net.minecraft.network.Packet; import net.minecraft.util.PacketByteBuf; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; //#else -//$$ import com.github.steveice10.mc.protocol.data.game.setting.Difficulty; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; +//$$ import net.minecraftforge.event.TickEvent; //$$ //$$ import static com.replaymod.core.versions.MCVer.FML_BUS; //#endif +//#if FABRIC>=1 +//#else +//$$ import com.github.steveice10.mc.protocol.data.game.setting.Difficulty; +//#endif + import javax.annotation.Nullable; import java.io.EOFException; import java.io.IOException; @@ -279,7 +283,7 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe } private class EventHandler extends EventRegistrations { - //#if MC>=11400 + //#if FABRIC>=1 { on(PreTickCallback.EVENT, this::onTick); } private void onTick() { //#else diff --git a/src/main/java/com/replaymod/replay/camera/CameraEntity.java b/src/main/java/com/replaymod/replay/camera/CameraEntity.java index 493501ff..c4a56a35 100755 --- a/src/main/java/com/replaymod/replay/camera/CameraEntity.java +++ b/src/main/java/com/replaymod/replay/camera/CameraEntity.java @@ -25,30 +25,34 @@ import net.minecraft.stat.StatHandler; import net.minecraft.util.Identifier; import net.minecraft.util.math.Box; -//#if MC>=11400 +//#if FABRIC>=1 import com.replaymod.core.events.KeyBindingEventCallback; import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.events.PreRenderHandCallback; import com.replaymod.replay.events.RenderSpectatorCrosshairCallback; import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.fluid.Fluid; -import net.minecraft.tag.Tag; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; //#else //$$ import com.replaymod.core.versions.MCVer; -//$$ import com.replaymod.replay.events.ReplayChatMessageEvent; -//$$ import net.minecraft.util.math.RayTraceResult; -//$$ import net.minecraft.util.text.ITextComponent; -//$$ import net.minecraft.world.World; //$$ import net.minecraftforge.client.event.EntityViewRenderEvent; //$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; //$$ import net.minecraftforge.client.event.RenderHandEvent; //$$ import net.minecraftforge.common.MinecraftForge; //$$ import net.minecraftforge.eventbus.api.EventPriority; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; +//$$ import net.minecraftforge.event.TickEvent; +//#endif + +//#if MC>=11400 +import net.minecraft.client.world.ClientWorld; +import net.minecraft.fluid.Fluid; +import net.minecraft.tag.Tag; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +//#else +//$$ import com.replaymod.replay.events.ReplayChatMessageEvent; +//$$ import net.minecraft.util.math.RayTraceResult; +//$$ import net.minecraft.util.text.ITextComponent; +//$$ import net.minecraft.world.World; //$$ //#if MC>=11300 //$$ import net.minecraft.util.math.RayTraceFluidMode; @@ -622,7 +626,7 @@ public class CameraEntity private EventHandler() {} - //#if MC>=11400 + //#if FABRIC>=1 { on(PreTickCallback.EVENT, this::onPreClientTick); } private void onPreClientTick() { //#else @@ -633,7 +637,7 @@ public class CameraEntity updateArmYawAndPitch(); } - //#if MC>=11400 + //#if FABRIC>=1 { on(PreRenderCallback.EVENT, this::onRenderUpdate); } private void onRenderUpdate() { //#else @@ -644,11 +648,11 @@ public class CameraEntity update(); } - //#if MC>=11400 + //#if FABRIC>=1 { on(KeyBindingEventCallback.EVENT, CameraEntity.this::handleInputEvents); } //#endif - //#if MC>=11400 + //#if FABRIC>=1 { on(RenderSpectatorCrosshairCallback.EVENT, this::shouldRenderSpectatorCrosshair); } private Boolean shouldRenderSpectatorCrosshair() { return canSpectate(mc.targetedEntity); @@ -678,7 +682,7 @@ public class CameraEntity } } - //#if MC>=11400 + //#if FABRIC>=1 { on(PreRenderHandCallback.EVENT, this::onRenderHand); } private boolean onRenderHand() { // Unless we are spectating another player, don't render our hand @@ -693,13 +697,13 @@ public class CameraEntity //$$ @SubscribeEvent //$$ public void onRenderHand(RenderHandEvent event) { //$$ // Unless we are spectating another player, don't render our hand - //$$ if (getRenderViewEntity(mc) == CameraEntity.this || !(getRenderViewEntity(mc) instanceof EntityPlayer)) { + //$$ if (getRenderViewEntity(mc) == CameraEntity.this || !(getRenderViewEntity(mc) instanceof PlayerEntity)) { //$$ event.setCanceled(true); //$$ } //$$ } //#endif - //#if MC>=11400 + //#if FABRIC>=1 private void onRenderHandMonitor() { //#else //$$ @SubscribeEvent(priority = EventPriority.LOWEST) @@ -753,7 +757,7 @@ public class CameraEntity private boolean heldItemTooltipsWasTrue; - //#if MC>=11400 + //#if FABRIC>=1 // FIXME fabric //#else //$$ @SubscribeEvent diff --git a/src/main/java/com/replaymod/replay/events/ReplayChatMessageEvent.java b/src/main/java/com/replaymod/replay/events/ReplayChatMessageEvent.java index 82650125..b207eac6 100644 --- a/src/main/java/com/replaymod/replay/events/ReplayChatMessageEvent.java +++ b/src/main/java/com/replaymod/replay/events/ReplayChatMessageEvent.java @@ -1,4 +1,4 @@ -//#if MC<11400 +//#if FABRIC<=0 //$$ package com.replaymod.replay.events; //$$ //$$ import com.replaymod.replay.camera.CameraEntity; diff --git a/src/main/java/com/replaymod/replay/handler/GuiHandler.java b/src/main/java/com/replaymod/replay/handler/GuiHandler.java index c9a8107f..a09ce197 100644 --- a/src/main/java/com/replaymod/replay/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/replay/handler/GuiHandler.java @@ -3,21 +3,24 @@ package com.replaymod.replay.handler; import de.johni0702.minecraft.gui.utils.EventRegistrations; import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.gui.screen.GuiReplayViewer; -import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.screen.GameMenuScreen; import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.resource.language.I18n; -//#if MC>=11400 +//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; -import net.minecraft.client.gui.widget.AbstractButtonWidget; //#else //$$ import net.minecraftforge.client.event.GuiScreenEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //#endif +//#if MC>=11400 +import net.minecraft.client.gui.widget.ButtonWidget; +//#endif + import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -36,14 +39,14 @@ public class GuiHandler extends EventRegistrations { this.mod = mod; } - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); } private void injectIntoIngameMenu(Screen guiScreen, List buttonList) { //#else //$$ @SubscribeEvent //$$ public void injectIntoIngameMenu(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ GuiScreen guiScreen = getGui(event); - //$$ List buttonList = getButtonList(event); + //$$ Screen guiScreen = getGui(event); + //$$ List buttonList = getButtonList(event); //#endif if (!(guiScreen instanceof GameMenuScreen)) { return; @@ -163,13 +166,13 @@ public class GuiHandler extends EventRegistrations { .forEach(button -> button.y -= 24); } - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::ensureReplayStopped); } private void ensureReplayStopped(Screen guiScreen, List buttonList) { //#else //$$ @SubscribeEvent //$$ public void ensureReplayStopped(GuiScreenEvent.InitGuiEvent event) { - //$$ GuiScreen guiScreen = getGui(event); + //$$ Screen guiScreen = getGui(event); //#endif if (!(guiScreen instanceof TitleScreen || guiScreen instanceof MultiplayerScreen)) { return; @@ -190,18 +193,18 @@ public class GuiHandler extends EventRegistrations { } } - //#if MC>=11400 + //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::injectIntoMainMenu); } private void injectIntoMainMenu(Screen guiScreen, List buttonList) { //#else //$$ @SubscribeEvent //$$ public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) { - //$$ GuiScreen guiScreen = getGui(event); + //$$ Screen guiScreen = getGui(event); //#endif if (!(guiScreen instanceof TitleScreen)) { return; } - ButtonWidget button = new InjectedButton( + InjectedButton button = new InjectedButton( guiScreen, BUTTON_REPLAY_VIEWER, guiScreen.width / 2 - 100, @@ -243,7 +246,13 @@ public class GuiHandler extends EventRegistrations { } } - public static class InjectedButton extends ButtonWidget { + public static class InjectedButton extends + //#if MC>=11400 + ButtonWidget + //#else + //$$ GuiButton + //#endif + { public final Screen guiScreen; public final int id; private Consumer onClick; diff --git a/src/main/java/com/replaymod/replay/mixin/MixinGameRenderer.java b/src/main/java/com/replaymod/replay/mixin/MixinGameRenderer.java index a89c0aeb..8d87a85a 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinGameRenderer.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinGameRenderer.java @@ -2,21 +2,18 @@ package com.replaymod.replay.mixin; import com.replaymod.replay.camera.CameraEntity; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerInteractionManager; import net.minecraft.client.render.GameRenderer; import net.minecraft.world.GameMode; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; +import static com.replaymod.core.versions.MCVer.getMinecraft; + @Mixin(GameRenderer.class) public abstract class MixinGameRenderer { - @Accessor - abstract MinecraftClient getClient(); - @Redirect( method = "renderHand", at = @At( @@ -25,7 +22,7 @@ public abstract class MixinGameRenderer { ) ) private GameMode getGameMode(ClientPlayerInteractionManager interactionManager) { - ClientPlayerEntity camera = getClient().player; + ClientPlayerEntity camera = getMinecraft().player; if (camera instanceof CameraEntity) { // alternative doesn't really matter, the caller only checks for equality to SPECTATOR return camera.isSpectator() ? GameMode.SPECTATOR : GameMode.SURVIVAL; diff --git a/src/main/java/com/replaymod/replay/mixin/MixinRenderLivingBase.java b/src/main/java/com/replaymod/replay/mixin/MixinRenderLivingBase.java index a24d2be2..02c83659 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinRenderLivingBase.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinRenderLivingBase.java @@ -23,7 +23,11 @@ import static com.replaymod.core.versions.MCVer.*; //$$ @Mixin(RendererLivingEntity.class) //#endif public abstract class MixinRenderLivingBase { + //#if FABRIC>=1 @Inject(method = "method_4055", at = @At("HEAD"), cancellable = true) + //#else + //$$ @Inject(method = "canRenderName(Lnet/minecraft/entity/LivingEntity;)Z", at = @At("HEAD"), cancellable = true) + //#endif private void replayModReplay_canRenderInvisibleName(LivingEntity entity, CallbackInfoReturnable ci) { PlayerEntity thePlayer = getMinecraft().player; if (thePlayer instanceof CameraEntity && entity.isInvisible()) { diff --git a/src/main/java/com/replaymod/replay/mixin/MixinRenderManager.java b/src/main/java/com/replaymod/replay/mixin/MixinRenderManager.java index 3df86b43..5050349c 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinRenderManager.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinRenderManager.java @@ -2,7 +2,7 @@ //#if MC>=10800 && MC<11400 //$$ package com.replaymod.replay.mixin; //$$ -//$$ import net.minecraft.client.GameSettings; +//$$ import net.minecraft.client.settings.GameSettings; //$$ import net.minecraft.client.gui.FontRenderer; //$$ import net.minecraft.client.renderer.entity.RenderManager; //$$ import net.minecraft.entity.Entity; diff --git a/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java b/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java index 9c66d4ef..8e320604 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java @@ -18,8 +18,11 @@ public class MixinTileEntityEndPortalRenderer { //#if MC>=11300 @Redirect(method = "method_3591", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/SystemUtil;getMeasuringTimeMs()J")) //#else + //#if MC>=11200 + //$$ @Redirect(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntityEndPortal;DDDFIF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J")) + //#else //#if MC>=10809 - //$$ @Redirect(method = "renderTileEntityAt", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J")) + //$$ @Redirect(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntityEndPortal;DDDFI)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J")) //#else //#if MC>=10800 //$$ @Redirect(method = "func_180544_a", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J")) @@ -28,6 +31,7 @@ public class MixinTileEntityEndPortalRenderer { //#endif //#endif //#endif + //#endif private long replayModReplay_getEnchantmentTime() { ReplayHandler replayHandler = ReplayModReplay.instance.getReplayHandler(); if (replayHandler != null) { diff --git a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java index e776bbe2..c881ac52 100644 --- a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java +++ b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java @@ -24,7 +24,7 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Triple; import org.lwjgl.opengl.GL11; -//#if MC>=11400 +//#if FABRIC>=1 import com.replaymod.core.events.PostRenderWorldCallback; //#else //$$ import net.minecraftforge.client.event.RenderWorldLastEvent; @@ -53,7 +53,7 @@ public class PathPreviewRenderer extends EventRegistrations { this.replayHandler = replayHandler; } - //#if MC>=11400 + //#if FABRIC>=1 { on(PostRenderWorldCallback.EVENT, this::renderCameraPath); } private void renderCameraPath() { //#else diff --git a/versions/1.13.2/mapping.txt b/versions/1.13.2/mapping.txt deleted file mode 100644 index f6e6d44c..00000000 --- a/versions/1.13.2/mapping.txt +++ /dev/null @@ -1,27 +0,0 @@ -net.minecraft.resources.AbstractResourcePack net.minecraft.client.resources.AbstractResourcePack -net.minecraft.resources.FolderPack net.minecraft.client.resources.FolderResourcePack -net.minecraft.client.resources.DownloadingPackFinder net.minecraft.client.resources.ResourcePackRepository -net.minecraft.client.renderer.FirstPersonRenderer net.minecraft.client.renderer.ItemRenderer -net.minecraft.client.renderer.chunk.ChunkRenderTask net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator -net.minecraft.client.GameSettings net.minecraft.client.settings.GameSettings -net.minecraftforge.eventbus.api.SubscribeEvent net.minecraftforge.fml.common.eventhandler.SubscribeEvent -net.minecraftforge.eventbus.api.EventPriority net.minecraftforge.fml.common.eventhandler.EventPriority -net.minecraftforge.eventbus.api.Cancelable net.minecraftforge.fml.common.eventhandler.Cancelable -net.minecraftforge.eventbus.api.Event net.minecraftforge.fml.common.eventhandler.Event -net.minecraft.client.renderer.entity.model.ModelBox net.minecraft.client.model.ModelBox -net.minecraft.client.renderer.entity.model.ModelRenderer net.minecraft.client.model.ModelRenderer -net.minecraft.crash.ReportedException net.minecraft.util.ReportedException -net.minecraftforge.eventbus.api.IEventBus net.minecraftforge.fml.common.eventhandler.EventBus -com.replaymod.core.versions.MCVer.Keyboard org.lwjgl.input.Keyboard -net.minecraft.client.renderer.WorldRenderer net.minecraft.client.renderer.RenderGlobal -net.minecraft.network.play.server.SPacketEntity.Move net.minecraft.network.play.server.SPacketEntity.S17PacketEntityLookMove -net.minecraftforge.fml.network.NetworkRegistry net.minecraftforge.fml.common.network.NetworkRegistry -net.minecraft.client.renderer.ItemRenderer net.minecraft.client.renderer.RenderItem -net.minecraft.client.renderer.GameRenderer net.minecraft.client.renderer.EntityRenderer -net.minecraft.client.renderer.WorldRenderer net.minecraft.client.renderer.RenderGlobal - -net.minecraft.resources.AbstractResourcePack getInputStream() getInputStreamByName() -net.minecraft.client.gui.GuiYesNoCallback confirmResult() confirmClicked() -net.minecraft.util.text.ITextComponent getString() getUnformattedText() -net.minecraft.network.play.server.SPacketRespawn func_212643_b() getDimensionID() -net.minecraft.client.Minecraft getPackFinder() getResourcePackRepository() diff --git a/versions/1.14.4/mapping.txt b/versions/1.14.4-forge/mapping.txt similarity index 56% rename from versions/1.14.4/mapping.txt rename to versions/1.14.4-forge/mapping.txt index 2197bb9c..fb0825c9 100644 --- a/versions/1.14.4/mapping.txt +++ b/versions/1.14.4-forge/mapping.txt @@ -1,3 +1,38 @@ +net.minecraft.resources.AbstractResourcePack net.minecraft.client.resources.AbstractResourcePack +net.minecraft.resources.FolderPack net.minecraft.client.resources.FolderResourcePack +net.minecraft.client.resources.DownloadingPackFinder net.minecraft.client.resources.ResourcePackRepository +net.minecraft.client.renderer.FirstPersonRenderer net.minecraft.client.renderer.ItemRenderer +net.minecraft.client.renderer.chunk.ChunkRenderTask net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator +net.minecraftforge.eventbus.api.SubscribeEvent net.minecraftforge.fml.common.eventhandler.SubscribeEvent +net.minecraftforge.eventbus.api.EventPriority net.minecraftforge.fml.common.eventhandler.EventPriority +net.minecraftforge.eventbus.api.Cancelable net.minecraftforge.fml.common.eventhandler.Cancelable +net.minecraftforge.eventbus.api.Event net.minecraftforge.fml.common.eventhandler.Event +net.minecraft.crash.ReportedException net.minecraft.util.ReportedException +net.minecraftforge.eventbus.api.IEventBus net.minecraftforge.fml.common.eventhandler.EventBus +net.minecraft.network.play.server.SPacketEntity.Move net.minecraft.network.play.server.SPacketEntity.S17PacketEntityLookMove +net.minecraftforge.fml.network.NetworkRegistry net.minecraftforge.fml.common.network.NetworkRegistry +net.minecraft.client.renderer.ItemRenderer net.minecraft.client.renderer.RenderItem + +net.minecraft.resources.ResourcePack getInputStream() getInputStreamByName() +net.minecraft.client.gui.GuiYesNoCallback confirmResult() confirmClicked() +net.minecraft.util.text.ITextComponent getString() getUnformattedText() +net.minecraft.network.play.server.SPacketRespawn func_212643_b() getDimensionID() +net.minecraft.client.Minecraft getPackFinder() getResourcePackRepository() + +net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent addWidget() addButton() +net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent removeWidget() removeButton() +net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent getWidgetList() getButtonList() +net.minecraftforge.event.TickEvent net.minecraftforge.fml.common.gameevent.TickEvent +net.minecraft.potion.Effects net.minecraft.init.MobEffects +net.minecraftforge.event.entity.player.PlayerEvent net.minecraftforge.fml.common.gameevent.PlayerEvent +net.minecraftforge.event.entity.player.PlayerEvent.ItemPickupEvent net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemPickupEvent + +# +# Note: These were in large part written before the preprocessor got smart, a good deal of them can probably be removed +# by now. Just gotta find someone to do it. Or automate it. Probably the latter, later. +# They're also in some parts outdated since they used to be 1.14.4-fabric to 1.13.2-forge but are now used for +# 1.14.4-forge to 1.12.2-forge (since the preprocessor handles the fabric-forge jump on 1.14.4). +# net.minecraft.client.particle.Particle x posX net.minecraft.client.particle.Particle y posY net.minecraft.client.particle.Particle z posZ @@ -5,9 +40,9 @@ net.minecraft.client.particle.Particle cameraX interpPosX net.minecraft.client.particle.Particle cameraY interpPosY net.minecraft.client.particle.Particle cameraZ interpPosZ net.minecraft.client.particle.Particle buildGeometry() renderParticle() -net.minecraft.client.render.entity.PlayerModelPart net.minecraft.entity.player.EnumPlayerModelParts +net.minecraft.entity.player.PlayerModelPart net.minecraft.entity.player.EnumPlayerModelParts net.minecraft.entity.effect.StatusEffects net.minecraft.init.MobEffects -net.minecraft.util.math.Direction net.minecraft.util.EnumFacing +net.minecraft.util.Direction net.minecraft.util.EnumFacing net.minecraft.client.render.model.BakedQuad net.minecraft.client.renderer.model.BakedQuad net.minecraft.client.render.model.BakedQuad hasColor() hasTintIndex() net.minecraft.client.render.model.BakedQuad getColorIndex() getTintIndex() @@ -15,7 +50,7 @@ net.minecraft.client.gl.GlBuffer net.minecraft.client.renderer.vertex.VertexBuff net.minecraft.client.gl.GlBuffer bind() bindBuffer() net.minecraft.client.gl.GlBuffer unbind() unbindBuffer() net.minecraft.block.BlockRenderLayer net.minecraft.util.BlockRenderLayer -net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher +net.minecraft.client.renderer.tileentity.EndPortalTileEntityRenderer net.minecraft.client.renderer.tileentity.TileEntityEndPortalRenderer net.minecraft.client.render.model.BakedModel net.minecraft.client.renderer.model.IBakedModel net.minecraft.client.render.chunk.ChunkRenderData net.minecraft.client.renderer.chunk.CompiledChunk net.minecraft.client.render.chunk.ChunkRenderData isBufferInitialized() isLayerStarted() @@ -55,8 +90,8 @@ net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer net.minecr net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer method_3591() render() net.minecraft.client.render.block.entity.BlockEntityRenderer net.minecraft.client.renderer.tileentity.TileEntityRenderer net.minecraft.client.render.block.entity.BlockEntityRenderer method_3591() render() -net.minecraft.client.gui.hud.SpectatorHud net.minecraft.client.gui.GuiSpectator -net.minecraft.client.gui.hud.SpectatorHud method_1976() onHotbarSelected() +net.minecraft.client.gui.SpectatorGui net.minecraft.client.gui.GuiSpectator +net.minecraft.client.gui.SpectatorGui method_1976() onHotbarSelected() net.minecraft.entity.passive.AnimalEntity net.minecraft.entity.passive.EntityAnimal net.minecraft.client.render.item.ItemRenderer net.minecraft.client.renderer.ItemRenderer net.minecraft.client.render.item.ItemRenderer colorMap itemColors @@ -69,39 +104,39 @@ net.minecraft.text.Text net.minecraft.util.text.ITextComponent net.minecraft.text.Text append() appendSibling() net.minecraft.text.Text asFormattedString() getFormattedText() net.minecraft.text.Style net.minecraft.util.text.Style -net.minecraft.text.LiteralText net.minecraft.util.text.TextComponentString -net.minecraft.text.TranslatableText net.minecraft.util.text.TextComponentTranslation +net.minecraft.util.text.StringTextComponent net.minecraft.util.text.TextComponentString +net.minecraft.util.text.TranslationTextComponent net.minecraft.util.text.TextComponentTranslation net.minecraft.util.Formatting net.minecraft.util.text.TextFormatting net.minecraft.client.render.VisibleRegion net.minecraft.client.renderer.culling.ICamera -net.minecraft.client.render.entity.LivingEntityRenderer net.minecraft.client.renderer.entity.RenderLivingBase -net.minecraft.client.render.entity.LivingEntityRenderer method_4055() canRenderName() -net.minecraft.client.render.entity.LivingEntityRenderer render() renderModel() -net.minecraft.client.render.entity.LivingEntityRenderer scaleAndTranslate() prepareScale() -net.minecraft.client.render.entity.LivingEntityRenderer method_4054() doRender() -net.minecraft.client.render.entity.ArrowEntityRenderer net.minecraft.client.renderer.entity.RenderArrow -net.minecraft.client.render.entity.EntityRenderer net.minecraft.client.renderer.entity.Render -net.minecraft.client.render.entity.EntityRenderer isVisible() shouldRender() -net.minecraft.client.render.entity.EntityRenderer render() doRender() -net.minecraft.client.render.entity.EntityRenderer renderLabel() renderLivingLabel() -net.minecraft.client.network.ClientPlayerInteractionManager net.minecraft.client.multiplayer.PlayerControllerMP -net.minecraft.client.network.ClientPlayerInteractionManager client mc -net.minecraft.client.network.ClientPlayerInteractionManager networkHandler connection -net.minecraft.client.network.ClientPlayerInteractionManager isFlyingLocked() isSpectatorMode() -net.minecraft.client.network.ClientPlayerInteractionManager getCurrentGameMode() getCurrentGameType() +net.minecraft.client.renderer.entity.LivingRenderer net.minecraft.client.renderer.entity.RenderLivingBase +net.minecraft.client.renderer.entity.LivingRenderer method_4055() canRenderName() +net.minecraft.client.renderer.entity.LivingRenderer render() renderModel() +net.minecraft.client.renderer.entity.LivingRenderer scaleAndTranslate() prepareScale() +net.minecraft.client.renderer.entity.LivingRenderer method_4054() doRender() +net.minecraft.client.renderer.entity.TippedArrowRenderer net.minecraft.client.renderer.entity.RenderArrow +net.minecraft.client.renderer.entity.EntityRenderer net.minecraft.client.renderer.entity.Render +net.minecraft.client.renderer.entity.EntityRenderer isVisible() shouldRender() +net.minecraft.client.renderer.entity.EntityRenderer render() doRender() +net.minecraft.client.renderer.entity.EntityRenderer renderLabel() renderLivingLabel() +net.minecraft.client.multiplayer.PlayerController net.minecraft.client.multiplayer.PlayerControllerMP +net.minecraft.client.multiplayer.PlayerController client mc +net.minecraft.client.multiplayer.PlayerController networkHandler connection +net.minecraft.client.multiplayer.PlayerController isFlyingLocked() isSpectatorMode() +net.minecraft.client.multiplayer.PlayerController getCurrentGameMode() getCurrentGameType() com.mojang.blaze3d.platform.GLX net.minecraft.client.renderer.OpenGlHelper com.mojang.blaze3d.platform.GLX isUsingFBOs() isFramebufferEnabled() net.minecraft.entity.data.TrackedData net.minecraft.network.datasync.DataParameter -net.minecraft.client.render.chunk.ChunkRenderer net.minecraft.client.renderer.chunk.RenderChunk -net.minecraft.client.render.chunk.ChunkRenderer setOrigin() setPosition() -net.minecraft.client.render.chunk.ChunkRenderer getOrigin() getPosition() -net.minecraft.client.render.chunk.ChunkRenderer getData() getCompiledChunk() -net.minecraft.client.render.chunk.ChunkRenderer getGlBuffer() getVertexBufferByLayer() -net.minecraft.client.render.chunk.ChunkRenderer scheduleRebuild() setNeedsUpdate() -net.minecraft.client.render.chunk.ChunkRenderer unscheduleRebuild() clearNeedsUpdate() +net.minecraft.client.renderer.chunk.ChunkRender net.minecraft.client.renderer.chunk.RenderChunk +net.minecraft.client.renderer.chunk.ChunkRender setOrigin() setPosition() +net.minecraft.client.renderer.chunk.ChunkRender getOrigin() getPosition() +net.minecraft.client.renderer.chunk.ChunkRender getData() getCompiledChunk() +net.minecraft.client.renderer.chunk.ChunkRender getGlBuffer() getVertexBufferByLayer() +net.minecraft.client.renderer.chunk.ChunkRender scheduleRebuild() setNeedsUpdate() +net.minecraft.client.renderer.chunk.ChunkRender unscheduleRebuild() clearNeedsUpdate() net.minecraft.client.util.GlAllocationUtils net.minecraft.client.renderer.GLAllocation net.minecraft.client.util.GlAllocationUtils allocateFloatBuffer() createDirectFloatBuffer() net.minecraft.client.util.GlAllocationUtils allocateByteBuffer() createDirectByteBuffer() -net.minecraft.nbt.CompoundTag net.minecraft.nbt.NBTTagCompound +net.minecraft.nbt.CompoundNBT net.minecraft.nbt.NBTTagCompound net.minecraft.block.entity.BlockEntity net.minecraft.tileentity.TileEntity net.minecraft.block.entity.BlockEntity toTag() write() net.minecraft.client.render.BackgroundRenderer net.minecraft.client.renderer.FogRenderer @@ -122,64 +157,68 @@ net.minecraft.client.gl.GlFramebuffer endWrite() unbindFramebuffer() net.minecraft.client.gl.GlFramebuffer draw() framebufferRender() net.minecraft.client.gl.GlFramebuffer resize() createBindFramebuffer() net.minecraft.client.gl.GlFramebuffer initFbo() createFramebuffer() -net.minecraft.client.gui.screen.GameMenuScreen net.minecraft.client.gui.GuiIngameMenu -net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen net.minecraft.client.gui.GuiMultiplayer -net.minecraft.client.gui.screen.world.SelectWorldScreen net.minecraft.client.gui.GuiWorldSelection +net.minecraft.client.gui.screen.IngameMenuScreen net.minecraft.client.gui.GuiIngameMenu +net.minecraft.client.gui.screen.MultiplayerScreen net.minecraft.client.gui.GuiMultiplayer +net.minecraft.client.gui.screen.WorldSelectionScreen net.minecraft.client.gui.GuiWorldSelection net.minecraft.entity.data.DataTracker net.minecraft.network.datasync.EntityDataManager net.minecraft.entity.data.DataTracker startTracking() register() net.minecraft.entity.data.DataTracker.Entry net.minecraft.network.datasync.EntityDataManager.DataEntry net.minecraft.entity.data.DataTracker.Entry getData() getKey() net.minecraft.entity.data.DataTracker.Entry get() getValue() -# Note: GuiButton has been split into ButtonWidget and AbstractButtonWidget (now shared with e.g. checkboxes), -# most members are actually on the latter -net.minecraft.client.gui.widget.ButtonWidget net.minecraft.client.gui.GuiButton -net.minecraft.client.gui.widget.AbstractButtonWidget active net.minecraft.client.gui.GuiButton enabled -net.minecraft.client.gui.screen.TitleScreen net.minecraft.client.gui.GuiMainMenu -net.minecraft.client.gui.screen.TitleScreen realmsNotificationGui realmsNotification +# Note: GuiButton has been split into Button and Widget (now shared with e.g. checkboxes), +# most members are actually on the latter (there's also AbstractButton in the middle, but it isn't interesting) +net.minecraft.client.gui.widget.Widget net.minecraft.client.gui.GuiButton +net.minecraft.client.gui.widget.button.AbstractButton active net.minecraft.client.gui.GuiButton enabled +net.minecraft.client.gui.screen.MainMenuScreen net.minecraft.client.gui.GuiMainMenu +net.minecraft.client.gui.screen.MainMenuScreen realmsNotificationGui realmsNotification net.minecraft.realms.RealmsScreenProxy net.minecraft.client.gui.GuiScreenRealmsProxy net.minecraft.resource.ResourceNotFoundException net.minecraft.resources.ResourcePackFileNotFoundException net.minecraft.resource.ResourcePack net.minecraft.resources.IResourcePack net.minecraft.resource.ResourcePack findResources() getAllResourceLocations() net.minecraft.resource.ResourcePack getNamespaces() getResourceNamespaces() net.minecraft.resource.ResourceType net.minecraft.resources.ResourcePackType -net.minecraft.network.NetworkSide net.minecraft.network.EnumPacketDirection -net.minecraft.network.NetworkState net.minecraft.network.EnumConnectionState -net.minecraft.network.NetworkState field_11688 LOGIN -net.minecraft.network.NetworkState field_11690 PLAY -net.minecraft.network.NetworkState getPacketHandler() getPacket() -net.minecraft.network.Packet read() readPacketData() -net.minecraft.network.Packet write() writePacketData() +net.minecraft.network.PacketDirection net.minecraft.network.EnumPacketDirection +net.minecraft.network.ProtocolType net.minecraft.network.EnumConnectionState +net.minecraft.network.ProtocolType field_11688 LOGIN +net.minecraft.network.ProtocolType field_11690 PLAY +net.minecraft.network.ProtocolType getPacketHandler() getPacket() +net.minecraft.network.IPacket net.minecraft.network.Packet +net.minecraft.network.IPacket read() readPacketData() +net.minecraft.network.IPacket write() writePacketData() net.minecraft.world.GameMode net.minecraft.world.GameType -net.minecraft.client.gui.screen.DownloadingTerrainScreen net.minecraft.client.gui.GuiDownloadTerrain -net.minecraft.client.gui.screen.NoticeScreen net.minecraft.client.gui.GuiErrorScreen -net.minecraft.client.network.OtherClientPlayerEntity net.minecraft.client.entity.EntityOtherPlayerMP +net.minecraft.client.gui.screen.DownloadTerrainScreen net.minecraft.client.gui.GuiDownloadTerrain +net.minecraft.client.gui.screen.AlertScreen net.minecraft.client.gui.GuiErrorScreen +net.minecraft.client.entity.player.RemoteClientPlayerEntity net.minecraft.client.entity.EntityOtherPlayerMP net.minecraft.world.Difficulty net.minecraft.world.EnumDifficulty -net.minecraft.world.chunk.ChunkProvider net.minecraft.world.chunk.IChunkProvider +net.minecraft.world.chunk.IChunkLightProvider net.minecraft.world.chunk.IChunkProvider net.minecraft.sound.SoundCategory net.minecraft.util.SoundCategory -net.minecraft.util.profiler.Profiler net.minecraft.profiler.Profiler -net.minecraft.client.render.GameRenderer net.minecraft.client.renderer.GameRenderer -net.minecraft.client.render.GameRenderer firstPersonRenderer itemRenderer -net.minecraft.client.render.GameRenderer client mc -net.minecraft.client.render.GameRenderer render() updateCameraAndRender() -net.minecraft.client.render.GameRenderer applyCameraTransformations() setupCameraTransform() -net.minecraft.client.render.GameRenderer renderAboveClouds() renderCloudsCheck() -net.minecraft.client.render.WorldRenderer net.minecraft.client.renderer.WorldRenderer -net.minecraft.client.render.WorldRenderer setBlockBreakingProgress() sendBlockBreakProgress() -net.minecraft.client.render.WorldRenderer drawHighlightedBlockOutline() drawSelectionBox() -net.minecraft.client.render.WorldRenderer chunkBatcher renderDispatcher -net.minecraft.client.render.WorldRenderer chunkInfos renderInfos -net.minecraft.client.render.WorldRenderer chunkRenderers chunksToUpdate -net.minecraft.client.render.WorldRenderer terrainUpdateNecessary displayListEntitiesDirty -net.minecraft.client.render.WorldRenderer field_4076 renderEntitiesStartupCounter -net.minecraft.client.render.WorldRenderer setUpTerrain() setupTerrain() -net.minecraft.client.render.WorldRenderer setWorld() setWorldAndLoadRenderers() -net.minecraft.client.render.WorldRenderer reload() loadRenderers() +net.minecraft.profiler.IProfiler net.minecraft.profiler.Profiler +net.minecraft.client.renderer.GameRenderer net.minecraft.client.renderer.EntityRenderer +net.minecraft.client.renderer.GameRenderer firstPersonRenderer itemRenderer +net.minecraft.client.renderer.GameRenderer client mc +net.minecraft.client.renderer.GameRenderer render() updateCameraAndRender() +net.minecraft.client.renderer.GameRenderer applyCameraTransformations() setupCameraTransform() +net.minecraft.client.renderer.GameRenderer renderAboveClouds() renderCloudsCheck() +net.minecraft.client.renderer.GameRenderer func_215308_a() renderHand() +net.minecraft.client.renderer.WorldRenderer net.minecraft.client.renderer.RenderGlobal +net.minecraft.client.renderer.WorldRenderer setBlockBreakingProgress() sendBlockBreakProgress() +net.minecraft.client.renderer.WorldRenderer drawHighlightedBlockOutline() drawSelectionBox() +net.minecraft.client.renderer.WorldRenderer chunkBatcher renderDispatcher +net.minecraft.client.renderer.WorldRenderer chunkInfos renderInfos +net.minecraft.client.renderer.WorldRenderer chunkRenderers chunksToUpdate +net.minecraft.client.renderer.WorldRenderer terrainUpdateNecessary displayListEntitiesDirty +net.minecraft.client.renderer.WorldRenderer field_4076 renderEntitiesStartupCounter +net.minecraft.client.renderer.WorldRenderer setUpTerrain() setupTerrain() +net.minecraft.client.renderer.WorldRenderer setWorld() setWorldAndLoadRenderers() +net.minecraft.client.renderer.WorldRenderer reload() loadRenderers() net.minecraft.world.level.LevelProperties net.minecraft.world.storage.WorldInfo com.mojang.blaze3d.platform.GlStateManager popAttributes() popAttrib() com.mojang.blaze3d.platform.GlStateManager disableColorLogicOp() disableColorLogic() com.mojang.blaze3d.platform.GlStateManager disableTexture() disableTexture2D() com.mojang.blaze3d.platform.GlStateManager enableColorLogicOp() enableColorLogic() com.mojang.blaze3d.platform.GlStateManager enableTexture() enableTexture2D() +com.mojang.blaze3d.platform.GlStateManager enableAlphaTest() enableAlpha() +com.mojang.blaze3d.platform.GlStateManager activeTexture activeTextureUnit com.mojang.blaze3d.platform.GlStateManager net.minecraft.client.renderer.GlStateManager com.mojang.blaze3d.platform.GlStateManager.CapabilityTracker net.minecraft.client.renderer.GlStateManager.BooleanState com.mojang.blaze3d.platform.GlStateManager.FogState net.minecraft.client.renderer.GlStateManager.FogState @@ -189,11 +228,10 @@ com.mojang.blaze3d.platform.GlStateManager.Texture2DState capState texture2DStat net.minecraft.SharedConstants isValidChar() isAllowedCharacter() net.minecraft.SharedConstants net.minecraft.util.SharedConstants net.minecraft.server.MinecraftServer getLevelName() getWorldName() -net.minecraft.client.Keyboard onKey() onKeyEvent() -net.minecraft.client.Keyboard pollDebugCrash() tick() -net.minecraft.client.Keyboard getClipboard() getClipboardString() -net.minecraft.client.Keyboard net.minecraft.client.KeyboardListener -net.minecraft.client.Keyboard setClipboard() setClipboardString() +com.replaymod.core.versions.MCVer.Keyboard onKey() onKeyEvent() +com.replaymod.core.versions.MCVer.Keyboard pollDebugCrash() tick() +com.replaymod.core.versions.MCVer.Keyboard getClipboard() getClipboardString() +com.replaymod.core.versions.MCVer.Keyboard setClipboard() setClipboardString() net.minecraft.client.MinecraftClient crashed hasCrashed net.minecraft.client.MinecraftClient setCrashReport() crashed() net.minecraft.client.MinecraftClient crashReport crashReporter @@ -265,24 +303,24 @@ net.minecraft.client.gui.hud.ChatHud clear() clearChatMessages() net.minecraft.client.gui.hud.ChatHud net.minecraft.client.gui.GuiNewChat net.minecraft.client.gui.hud.InGameHud getChatHud() getChatGUI() net.minecraft.client.gui.hud.InGameHud net.minecraft.client.gui.GuiIngame -net.minecraft.client.options.GameOptions net.minecraft.client.GameSettings -net.minecraft.client.options.GameOptions debugEnabled showDebugInfo -net.minecraft.client.options.GameOptions viewDistance renderDistanceChunks -net.minecraft.client.options.GameOptions hudHidden hideGUI -net.minecraft.client.options.GameOptions gamma gammaSetting -net.minecraft.client.options.GameOptions keysAll keyBindings -net.minecraft.client.options.GameOptions keyChat keyBindChat -net.minecraft.client.options.GameOptions keyCommand keyBindCommand -net.minecraft.client.options.GameOptions keyAttack keyBindAttack -net.minecraft.client.options.GameOptions keyUse keyBindUseItem -net.minecraft.client.options.GameOptions keySneak keyBindSneak -net.minecraft.client.options.GameOptions keyForward keyBindForward -net.minecraft.client.options.GameOptions keyBack keyBindBack -net.minecraft.client.options.GameOptions keyLeft keyBindLeft -net.minecraft.client.options.GameOptions keyRight keyBindRight -net.minecraft.client.options.GameOptions keyJump keyBindJump -net.minecraft.client.options.GameOptions getSoundVolume() getSoundLevel() -net.minecraft.client.options.GameOptions setSoundVolume() setSoundLevel() +net.minecraft.client.GameSettings net.minecraft.client.settings.GameSettings +net.minecraft.client.GameSettings debugEnabled showDebugInfo +net.minecraft.client.GameSettings viewDistance renderDistanceChunks +net.minecraft.client.GameSettings hudHidden hideGUI +net.minecraft.client.GameSettings gamma gammaSetting +net.minecraft.client.GameSettings keysAll keyBindings +net.minecraft.client.GameSettings keyChat keyBindChat +net.minecraft.client.GameSettings keyCommand keyBindCommand +net.minecraft.client.GameSettings keyAttack keyBindAttack +net.minecraft.client.GameSettings keyUse keyBindUseItem +net.minecraft.client.GameSettings keySneak keyBindSneak +net.minecraft.client.GameSettings keyForward keyBindForward +net.minecraft.client.GameSettings keyBack keyBindBack +net.minecraft.client.GameSettings keyLeft keyBindLeft +net.minecraft.client.GameSettings keyRight keyBindRight +net.minecraft.client.GameSettings keyJump keyBindJump +net.minecraft.client.GameSettings getSoundVolume() getSoundLevel() +net.minecraft.client.GameSettings setSoundVolume() setSoundLevel() net.minecraft.client.options.KeyBinding net.minecraft.client.settings.KeyBinding net.minecraft.client.options.KeyBinding timesPressed pressTime net.minecraft.client.options.KeyBinding wasPressed() isPressed() @@ -301,10 +339,8 @@ net.minecraft.client.render.Tessellator net.minecraft.client.renderer.Tessellato net.minecraft.client.render.VertexFormat net.minecraft.client.renderer.vertex.VertexFormat net.minecraft.client.render.VertexFormat getVertexSize() getSize() net.minecraft.client.render.VertexFormat getElementOffset() getOffset() -net.minecraft.client.render.VertexFormatElement net.minecraft.client.renderer.vertex.VertexFormatElement -net.minecraft.client.render.VertexFormatElement getType() getUsage() -net.minecraft.client.render.VertexFormatElement getFormat() getType() -net.minecraft.client.render.VertexFormatElement.Format net.minecraft.client.renderer.vertex.VertexFormatElement.EnumType +net.minecraft.client.renderer.vertex.VertexFormatElement net.minecraft.client.renderer.vertex.VertexFormatElement +net.minecraft.client.renderer.vertex.VertexFormatElement.Type net.minecraft.client.renderer.vertex.VertexFormatElement.EnumType net.minecraft.client.render.VertexFormats net.minecraft.client.renderer.vertex.DefaultVertexFormats net.minecraft.client.render.VertexFormats POSITION_COLOR_UV_LMAP BLOCK net.minecraft.client.render.VertexFormats POSITION_COLOR_UV_NORMAL ITEM @@ -325,11 +361,10 @@ net.minecraft.client.util.Window getScaleFactor() getGuiScaleFactor() net.minecraft.client.util.Window setFullscreen() update() net.minecraft.client.util.Window method_4493() setupOverlayRendering() net.minecraft.client.util.Window net.minecraft.client.MainWindow -net.minecraft.resource.DirectoryResourcePack net.minecraft.resources.FolderPack -net.minecraft.resource.AbstractFileResourcePack net.minecraft.resources.AbstractResourcePack -net.minecraft.resource.AbstractFileResourcePack openFile() getInputStream() -net.minecraft.resource.AbstractFileResourcePack containsFile() resourceExists() -net.minecraft.resource.AbstractFileResourcePack base file +net.minecraft.resources.AbstractResourcePack net.minecraft.resources.AbstractResourcePack +net.minecraft.resources.AbstractResourcePack openFile() getInputStream() +net.minecraft.resources.AbstractResourcePack containsFile() resourceExists() +net.minecraft.resources.AbstractResourcePack base file net.minecraft.resource.ResourcePackContainer net.minecraft.resources.ResourcePackInfo net.minecraft.resource.ResourcePackContainer.Factory net.minecraft.resources.ResourcePackInfo.IFactory net.minecraft.resource.ResourcePackContainer.InsertionPosition net.minecraft.resources.ResourcePackInfo.Priority @@ -358,13 +393,13 @@ net.minecraft.network.ClientConnection isLocal() isLocalChannel() net.minecraft.world.World getGeneratorType() getWorldType() net.minecraft.world.World getChunkManager() getChunkProvider() net.minecraft.world.World getEntityById() getEntityByID() -net.minecraft.world.EntityView getPlayerByUuid() net.minecraft.world.World getPlayerEntityByUUID() +net.minecraft.world.IEntityReader getPlayerByUuid() net.minecraft.world.World getPlayerEntityByUUID() net.minecraft.world.level.LevelGeneratorType net.minecraft.world.WorldType -net.minecraft.client.render.entity.EntityRenderDispatcher net.minecraft.client.renderer.entity.RenderManager -net.minecraft.client.render.entity.EntityRenderDispatcher cameraYaw playerViewY -net.minecraft.client.render.entity.EntityRenderDispatcher cameraPitch playerViewX -net.minecraft.client.render.entity.EntityRenderDispatcher configure() cacheActiveRenderInfo() -net.minecraft.client.render.entity.EntityRenderDispatcher render() renderEntityStatic() +net.minecraft.client.renderer.entity.EntityRendererManager net.minecraft.client.renderer.entity.RenderManager +net.minecraft.client.renderer.entity.EntityRendererManager cameraYaw playerViewY +net.minecraft.client.renderer.entity.EntityRendererManager cameraPitch playerViewX +net.minecraft.client.renderer.entity.EntityRendererManager configure() cacheActiveRenderInfo() +net.minecraft.client.renderer.entity.EntityRendererManager render() renderEntityStatic() net.minecraft.util.SystemUtil net.minecraft.util.Util net.minecraft.util.SystemUtil getMeasuringTimeMs() milliTime() net.minecraft.util.SystemUtil getOperatingSystem() getOSType() @@ -375,34 +410,33 @@ net.minecraft.util.SystemUtil.OperatingSystem open() openFile() net.minecraft.client.util.InputUtil net.minecraft.client.util.InputMappings net.minecraft.client.util.InputUtil isKeyPressed() isKeyDown() net.minecraft.client.util.InputUtil$KeyCode net.minecraft.client.util.InputMappings$Input -net.minecraft.client.resource.ClientResourcePackCreator net.minecraft.client.resources.DownloadingPackFinder -net.minecraft.client.resource.ClientResourcePackCreator loadServerPack() func_195741_a() -net.minecraft.client.resource.ClientResourcePackCreator download() downloadResourcePack() -net.minecraft.client.network.ClientPlayerEntity net.minecraft.client.entity.EntityPlayerSP -net.minecraft.client.network.ClientPlayerEntity client mc -net.minecraft.client.network.ClientPlayerEntity renderYaw renderArmYaw -net.minecraft.client.network.ClientPlayerEntity renderPitch renderArmPitch -net.minecraft.client.network.ClientPlayerEntity lastRenderYaw prevRenderArmYaw -net.minecraft.client.network.ClientPlayerEntity lastRenderPitch prevRenderArmPitch -net.minecraft.client.network.AbstractClientPlayerEntity net.minecraft.client.entity.AbstractClientPlayer -net.minecraft.client.network.AbstractClientPlayerEntity getSkinTexture() getLocationSkin() -net.minecraft.client.network.AbstractClientPlayerEntity getModel() getSkinType() -net.minecraft.client.network.ClientLoginNetworkHandler net.minecraft.client.network.NetHandlerLoginClient -net.minecraft.client.network.ClientLoginNetworkHandler connection networkManager -net.minecraft.client.network.ClientLoginNetworkHandler onQueryRequest() func_209521_a() -net.minecraft.client.network.ClientLoginNetworkHandler onLoginSuccess() handleLoginSuccess() -net.minecraft.client.network.ClientPlayNetworkHandler net.minecraft.client.network.NetHandlerPlayClient -net.minecraft.client.network.ClientPlayNetworkHandler getConnection() getNetworkManager() -net.minecraft.client.network.ClientPlayNetworkHandler playerListEntries playerInfoMap -net.minecraft.client.network.ClientPlayNetworkHandler onPlayerList() handlePlayerListItem() -net.minecraft.client.network.ClientPlayNetworkHandler onPlayerRespawn() handleRespawn() -net.minecraft.client.network.ClientPlayNetworkHandler getPlayerListEntry() getPlayerInfo() -net.minecraft.client.network.PlayerListEntry net.minecraft.client.network.NetworkPlayerInfo -net.minecraft.client.network.PlayerListEntry hasSkinTexture() hasLocationSkin() -net.minecraft.client.network.PlayerListEntry getSkinTexture() getLocationSkin() +net.minecraft.client.resources.DownloadingPackFinder func_217818_a() downloadResourcePack() +net.minecraft.client.resources.DownloadingPackFinder func_217816_a() setServerResourcePack() +net.minecraft.client.entity.player.ClientPlayerEntity net.minecraft.client.entity.EntityPlayerSP +net.minecraft.client.entity.player.ClientPlayerEntity client mc +net.minecraft.client.entity.player.ClientPlayerEntity renderYaw renderArmYaw +net.minecraft.client.entity.player.ClientPlayerEntity renderPitch renderArmPitch +net.minecraft.client.entity.player.ClientPlayerEntity lastRenderYaw prevRenderArmYaw +net.minecraft.client.entity.player.ClientPlayerEntity lastRenderPitch prevRenderArmPitch +net.minecraft.client.entity.player.AbstractClientPlayerEntity net.minecraft.client.entity.AbstractClientPlayer +net.minecraft.client.entity.player.AbstractClientPlayerEntity getSkinTexture() getLocationSkin() +net.minecraft.client.entity.player.AbstractClientPlayerEntity getModel() getSkinType() +net.minecraft.client.network.login.ClientLoginNetHandler net.minecraft.client.network.NetHandlerLoginClient +net.minecraft.client.network.login.ClientLoginNetHandler connection networkManager +net.minecraft.client.network.login.ClientLoginNetHandler onQueryRequest() func_209521_a() +net.minecraft.client.network.login.ClientLoginNetHandler onLoginSuccess() handleLoginSuccess() +net.minecraft.client.network.play.ClientPlayNetHandler net.minecraft.client.network.NetHandlerPlayClient +net.minecraft.client.network.play.ClientPlayNetHandler getConnection() getNetworkManager() +net.minecraft.client.network.play.ClientPlayNetHandler playerListEntries playerInfoMap +net.minecraft.client.network.play.ClientPlayNetHandler onPlayerList() handlePlayerListItem() +net.minecraft.client.network.play.ClientPlayNetHandler onPlayerRespawn() handleRespawn() +net.minecraft.client.network.play.ClientPlayNetHandler getPlayerListEntry() getPlayerInfo() +net.minecraft.client.network.play.NetworkPlayerInfo net.minecraft.client.network.NetworkPlayerInfo +net.minecraft.client.network.play.NetworkPlayerInfo hasSkinTexture() hasLocationSkin() +net.minecraft.client.network.play.NetworkPlayerInfo getSkinTexture() getLocationSkin() net.minecraft.client.util.DefaultSkinHelper net.minecraft.client.resources.DefaultPlayerSkin net.minecraft.client.util.DefaultSkinHelper getTexture() getDefaultSkin() -net.minecraft.entity.decoration.ItemFrameEntity net.minecraft.entity.item.EntityItemFrame +net.minecraft.entity.item.ItemFrameEntity net.minecraft.entity.item.EntityItemFrame net.minecraft.entity.player.PlayerEntity net.minecraft.entity.player.EntityPlayer net.minecraft.entity.player.PlayerEntity selectedItem itemStackMainHand net.minecraft.entity.player.PlayerEntity isSleeping() isPlayerSleeping() @@ -410,7 +444,7 @@ net.minecraft.entity.player.PlayerEntity getEquippedStack() getItemStackFromSlot net.minecraft.entity.player.PlayerEntity getAttackCooldownProgressPerTick() getCooldownPeriod() net.minecraft.entity.player.PlayerEntity getAttackCooldownProgress() getCooledAttackStrength() net.minecraft.entity.player.PlayerEntity isSkinOverlayVisible() isWearing() -net.minecraft.entity.mob.MobEntity net.minecraft.entity.EntityLiving +net.minecraft.entity.MobEntity net.minecraft.entity.EntityLiving net.minecraft.entity.LivingEntity net.minecraft.entity.EntityLivingBase net.minecraft.entity.LivingEntity headYaw rotationYawHead net.minecraft.entity.LivingEntity prevHeadYaw prevRotationYawHead @@ -431,7 +465,7 @@ net.minecraft.entity.LivingEntity getStatusEffect() getActivePotionEffect() net.minecraft.entity.LivingEntity tickMovement() livingTick() net.minecraft.entity.Entity afterSpawn() preparePlayerToSpawn() net.minecraft.entity.Entity getVehicle() getRidingEntity() -net.minecraft.entity.Entity isRiding() isPassenger() +net.minecraft.entity.Entity isRowingBoat() isRiding() net.minecraft.entity.Entity getUuid() getUniqueID() net.minecraft.entity.Entity isInsideWall() isEntityInsideOpaqueBlock() net.minecraft.entity.Entity isOnFire() isBurning() @@ -460,18 +494,18 @@ net.minecraft.entity.Entity prevRenderZ lastTickPosZ net.minecraft.world.chunk.WorldChunk net.minecraft.world.chunk.Chunk net.minecraft.world.chunk.WorldChunk getEntitySectionArray() getEntityLists() net.minecraft.util.math.Box net.minecraft.util.math.AxisAlignedBB -net.minecraft.world.RayTraceContext net.minecraft.util.math.RayTraceResult -net.minecraft.entity.EquipmentSlot net.minecraft.inventory.EntityEquipmentSlot +net.minecraft.util.math.RayTraceContext net.minecraft.util.math.RayTraceResult +net.minecraft.inventory.EquipmentSlotType net.minecraft.inventory.EntityEquipmentSlot net.minecraft.stat.StatHandler net.minecraft.stats.StatisticsManager net.minecraft.client.recipe.book.ClientRecipeBook net.minecraft.client.util.RecipeBookClient net.minecraft.util.Hand net.minecraft.util.EnumHand -net.minecraft.client.model.Box net.minecraft.client.renderer.entity.model.ModelBox -net.minecraft.client.model.Cuboid net.minecraft.client.renderer.entity.model.ModelRenderer -net.minecraft.client.model.Cuboid boxes cubeList -net.minecraft.client.model.Cuboid name boxName -net.minecraft.client.model.Cuboid method_2852() renderWithRotation() -net.minecraft.client.texture.SpriteAtlasTexture net.minecraft.client.renderer.texture.TextureMap -net.minecraft.client.texture.SpriteAtlasTexture BLOCK_ATLAS_TEX LOCATION_BLOCKS_TEXTURE +net.minecraft.client.renderer.model.ModelBox net.minecraft.client.model.ModelBox +net.minecraft.client.renderer.entity.model.RendererModel net.minecraft.client.model.ModelRenderer +net.minecraft.client.renderer.entity.model.RendererModel boxes cubeList +net.minecraft.client.renderer.entity.model.RendererModel name boxName +net.minecraft.client.renderer.entity.model.RendererModel method_2852() renderWithRotation() +net.minecraft.client.renderer.texture.AtlasTexture net.minecraft.client.renderer.texture.TextureMap +net.minecraft.client.renderer.texture.AtlasTexture BLOCK_ATLAS_TEX LOCATION_BLOCKS_TEXTURE net.minecraft.client.render.RenderTickCounter net.minecraft.util.Timer net.minecraft.client.render.RenderTickCounter ticksThisFrame elapsedTicks net.minecraft.client.render.RenderTickCounter tickDelta renderPartialTicks @@ -483,73 +517,73 @@ net.minecraft.client.world.ClientWorld net.minecraft.client.multiplayer.WorldCli net.minecraft.client.world.ClientWorld client mc net.minecraft.client.world.ClientWorld disconnect() sendQuittingDisconnectingPacket() -net.minecraft.client.network.packet.LoginQueryRequestS2CPacket net.minecraft.network.login.server.SPacketCustomPayloadLogin -net.minecraft.client.network.packet.LoginCompressionS2CPacket net.minecraft.network.login.server.SPacketEnableCompression -net.minecraft.client.network.packet.LoginSuccessS2CPacket net.minecraft.network.login.server.SPacketLoginSuccess -net.minecraft.client.network.packet net.minecraft.network.play.server -net.minecraft.client.network.packet.GameJoinS2CPacket net.minecraft.network.play.server.SPacketJoinGame +#net.minecraft.client.network.packet net.minecraft.network.play.server +net.minecraft.network.login.server.SCustomPayloadLoginPacket net.minecraft.network.login.server.SPacketCustomPayloadLogin +net.minecraft.network.login.server.SEnableCompressionPacket net.minecraft.network.login.server.SPacketEnableCompression +net.minecraft.network.login.server.SLoginSuccessPacket net.minecraft.network.login.server.SPacketLoginSuccess +net.minecraft.network.play.server.SJoinGamePacket net.minecraft.network.play.server.SPacketJoinGame net.minecraft.client.network.packet.GameJoinS2CPacket getEntityId() getPlayerId() net.minecraft.client.network.packet.GameJoinS2CPacket getDimension() func_212642_e() net.minecraft.client.network.packet.GameJoinS2CPacket getDifficulty() getDifficulty() -net.minecraft.client.network.packet.ChatMessageS2CPacket net.minecraft.network.play.server.SPacketChat -net.minecraft.client.network.packet.ParticleS2CPacket net.minecraft.network.play.server.SPacketParticles -net.minecraft.client.network.packet.GameStateChangeS2CPacket net.minecraft.network.play.server.SPacketChangeGameState +net.minecraft.network.play.server.SChatPacket net.minecraft.network.play.server.SPacketChat +net.minecraft.network.play.server.SSpawnParticlePacket net.minecraft.network.play.server.SPacketParticles +net.minecraft.network.play.server.SChangeGameStatePacket net.minecraft.network.play.server.SPacketChangeGameState net.minecraft.client.network.packet.GameStateChangeS2CPacket getReason() getGameState() -net.minecraft.client.network.packet.PlayerPositionLookS2CPacket net.minecraft.network.play.server.SPacketPlayerPosLook -net.minecraft.client.network.packet.PlayerPositionLookS2CPacket.Flag net.minecraft.network.play.server.SPacketPlayerPosLook.EnumFlags -net.minecraft.client.network.packet.PlayerListS2CPacket net.minecraft.network.play.server.SPacketPlayerListItem -net.minecraft.client.network.packet.PlayerListS2CPacket.Action net.minecraft.network.play.server.SPacketPlayerListItem.Action -net.minecraft.client.network.packet.PlayerListS2CPacket.Entry net.minecraft.network.play.server.SPacketPlayerListItem.AddPlayerData -net.minecraft.client.network.packet.PlayerRespawnS2CPacket net.minecraft.network.play.server.SPacketRespawn -net.minecraft.client.network.packet.PlayerSpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnPlayer +net.minecraft.network.play.server.SPlayerPositionLookPacket net.minecraft.network.play.server.SPacketPlayerPosLook +net.minecraft.network.play.server.SPlayerPositionLookPacket.Flag net.minecraft.network.play.server.SPacketPlayerPosLook.EnumFlags +net.minecraft.network.play.server.SPlayerListItemPacket net.minecraft.network.play.server.SPacketPlayerListItem +net.minecraft.network.play.server.SPlayerListItemPacket.Action net.minecraft.network.play.server.SPacketPlayerListItem.Action +net.minecraft.network.play.server.SPlayerListItemPacket.Entry net.minecraft.network.play.server.SPacketPlayerListItem.AddPlayerData +net.minecraft.network.play.server.SRespawnPacket net.minecraft.network.play.server.SPacketRespawn +net.minecraft.network.play.server.SSpawnPlayerPacket net.minecraft.network.play.server.SPacketSpawnPlayer net.minecraft.client.network.packet.PlayerSpawnS2CPacket getPlayerUuid() getUniqueId() net.minecraft.client.network.packet.PlayerSpawnS2CPacket getTrackedValues() getDataManagerEntries() net.minecraft.client.network.packet.PlayerSpawnS2CPacket dataTracker watcher -net.minecraft.client.network.packet.EntitySpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnObject -net.minecraft.client.network.packet.MobSpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnMob +net.minecraft.network.play.server.SSpawnObjectPacket net.minecraft.network.play.server.SPacketSpawnObject +net.minecraft.network.play.server.SSpawnMobPacket net.minecraft.network.play.server.SPacketSpawnMob net.minecraft.client.network.packet.MobSpawnS2CPacket getTrackedValues() getDataManagerEntries() net.minecraft.client.network.packet.MobSpawnS2CPacket dataTracker dataManager -net.minecraft.client.network.packet.EntitySpawnGlobalS2CPacket net.minecraft.network.play.server.SPacketSpawnGlobalEntity -net.minecraft.client.network.packet.PaintingSpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnPainting -net.minecraft.client.network.packet.ExperienceOrbSpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnExperienceOrb -net.minecraft.client.network.packet.EntitiesDestroyS2CPacket net.minecraft.network.play.server.SPacketDestroyEntities -net.minecraft.client.network.packet.EntityPositionS2CPacket net.minecraft.network.play.server.SPacketEntityTeleport -net.minecraft.client.network.packet.EntitySetHeadYawS2CPacket net.minecraft.network.play.server.SPacketEntityHeadLook -net.minecraft.client.network.packet.EntityVelocityUpdateS2CPacket net.minecraft.network.play.server.SPacketEntityVelocity -net.minecraft.client.network.packet.EntityAttachS2CPacket net.minecraft.network.play.server.SPacketEntityAttach -net.minecraft.client.network.packet.EntityAnimationS2CPacket net.minecraft.network.play.server.SPacketAnimation -net.minecraft.client.network.packet.ItemPickupAnimationS2CPacket net.minecraft.network.play.server.SPacketCollectItem +net.minecraft.network.play.server.SSpawnGlobalEntityPacket net.minecraft.network.play.server.SPacketSpawnGlobalEntity +net.minecraft.network.play.server.SSpawnPaintingPacket net.minecraft.network.play.server.SPacketSpawnPainting +net.minecraft.network.play.server.SSpawnExperienceOrbPacket net.minecraft.network.play.server.SPacketSpawnExperienceOrb +net.minecraft.network.play.server.SDestroyEntitiesPacket net.minecraft.network.play.server.SPacketDestroyEntities +net.minecraft.network.play.server.SEntityTeleportPacket net.minecraft.network.play.server.SPacketEntityTeleport +net.minecraft.network.play.server.SEntityHeadLookPacket net.minecraft.network.play.server.SPacketEntityHeadLook +net.minecraft.network.play.server.SEntityVelocityPacket net.minecraft.network.play.server.SPacketEntityVelocity +net.minecraft.network.play.server.SMountEntityPacket net.minecraft.network.play.server.SPacketEntityAttach +net.minecraft.network.play.server.SAnimateHandPacket net.minecraft.network.play.server.SPacketAnimation +net.minecraft.network.play.server.SCollectItemPacket net.minecraft.network.play.server.SPacketCollectItem net.minecraft.client.network.packet.ItemPickupAnimationS2CPacket getEntityId() getEntityID() -net.minecraft.client.network.packet.BlockBreakingProgressS2CPacket net.minecraft.network.play.server.SPacketBlockBreakAnim -net.minecraft.server.network.packet.ResourcePackStatusC2SPacket net.minecraft.network.play.client.CPacketResourcePackStatus -net.minecraft.server.network.packet.ResourcePackStatusC2SPacket.Status net.minecraft.network.play.client.CPacketResourcePackStatus.Action -net.minecraft.client.network.packet.ResourcePackSendS2CPacket net.minecraft.network.play.server.SPacketResourcePackSend +net.minecraft.network.play.server.SAnimateBlockBreakPacket net.minecraft.network.play.server.SPacketBlockBreakAnim +net.minecraft.network.play.client.CResourcePackStatusPacket net.minecraft.network.play.client.CPacketResourcePackStatus +net.minecraft.network.play.client.CResourcePackStatusPacket.Status net.minecraft.network.play.client.CPacketResourcePackStatus.Action +net.minecraft.network.play.server.SSendResourcePackPacket net.minecraft.network.play.server.SPacketResourcePackSend net.minecraft.client.network.packet.ResourcePackSendS2CPacket getSHA1() getHash() -net.minecraft.client.network.packet.CustomPayloadS2CPacket net.minecraft.network.play.server.SPacketCustomPayload +net.minecraft.network.play.server.SCustomPayloadPlayPacket net.minecraft.network.play.server.SPacketCustomPayload net.minecraft.client.network.packet.CustomPayloadS2CPacket getChannel() getChannelName() net.minecraft.client.network.packet.CustomPayloadS2CPacket getData() getBufferData() -net.minecraft.client.network.packet.DisconnectS2CPacket net.minecraft.network.play.server.SPacketDisconnect -net.minecraft.client.network.packet.LoginSuccessS2CPacket net.minecraft.network.login.server.SPacketLoginSuccess -net.minecraft.client.network.packet.SynchronizeRecipesS2CPacket net.minecraft.network.play.server.SPacketRecipeBook -net.minecraft.client.network.packet.AdvancementUpdateS2CPacket net.minecraft.network.play.server.SPacketAdvancementInfo -net.minecraft.client.network.packet.SelectAdvancementTabS2CPacket net.minecraft.network.play.server.SPacketSelectAdvancementsTab -net.minecraft.client.network.packet.HealthUpdateS2CPacket net.minecraft.network.play.server.SPacketUpdateHealth -net.minecraft.client.network.packet.GuiOpenS2CPacket net.minecraft.network.play.server.SPacketOpenWindow -net.minecraft.client.network.packet.GuiCloseS2CPacket net.minecraft.network.play.server.SPacketCloseWindow -net.minecraft.client.network.packet.GuiSlotUpdateS2CPacket net.minecraft.network.play.server.SPacketSetSlot -net.minecraft.client.network.packet.GuiUpdateS2CPacket net.minecraft.network.play.server.SPacketWindowItems -net.minecraft.client.network.packet.SignEditorOpenS2CPacket net.minecraft.network.play.server.SPacketSignEditorOpen -net.minecraft.client.network.packet.StatisticsS2CPacket net.minecraft.network.play.server.SPacketStatistics -net.minecraft.client.network.packet.ExperienceBarUpdateS2CPacket net.minecraft.network.play.server.SPacketSetExperience -net.minecraft.client.network.packet.SetCameraEntityS2CPacket net.minecraft.network.play.server.SPacketCamera -net.minecraft.client.network.packet.PlayerAbilitiesS2CPacket net.minecraft.network.play.server.SPacketPlayerAbilities -net.minecraft.client.network.packet.TitleS2CPacket net.minecraft.network.play.server.SPacketTitle -net.minecraft.client.network.packet.UnloadChunkS2CPacket net.minecraft.network.play.server.SPacketUnloadChunk -net.minecraft.client.network.packet.PlaySoundS2CPacket net.minecraft.network.play.server.SPacketSoundEffect -net.minecraft.client.network.packet.WorldEventS2CPacket net.minecraft.network.play.server.SPacketEffect -net.minecraft.client.network.packet.EntityTrackerUpdateS2CPacket net.minecraft.network.play.server.SPacketEntityMetadata -net.minecraft.client.network.packet.EntityEquipmentUpdateS2CPacket net.minecraft.network.play.server.SPacketEntityEquipment -net.minecraft.client.network.packet.EntityS2CPacket net.minecraft.network.play.server.SPacketEntity -net.minecraft.client.network.packet.EntityS2CPacket.Rotate net.minecraft.network.play.server.SPacketEntity.Look -net.minecraft.client.network.packet.EntityS2CPacket.MoveRelative net.minecraft.network.play.server.SPacketEntity.RelMove -net.minecraft.client.network.packet.EntityS2CPacket.RotateAndMoveRelative net.minecraft.network.play.server.SPacketEntity.Move +net.minecraft.network.play.server.SDisconnectPacket net.minecraft.network.play.server.SPacketDisconnect +net.minecraft.network.login.server.SLoginSuccessPacket net.minecraft.network.login.server.SPacketLoginSuccess +net.minecraft.network.play.server.SUpdateRecipesPacket net.minecraft.network.play.server.SPacketRecipeBook +net.minecraft.network.play.server.SAdvancementInfoPacket net.minecraft.network.play.server.SPacketAdvancementInfo +net.minecraft.network.play.server.SSelectAdvancementsTabPacket net.minecraft.network.play.server.SPacketSelectAdvancementsTab +net.minecraft.network.play.server.SUpdateHealthPacket net.minecraft.network.play.server.SPacketUpdateHealth +net.minecraft.network.play.server.SOpenHorseWindowPacket net.minecraft.network.play.server.SPacketOpenWindow +net.minecraft.network.play.server.SCloseWindowPacket net.minecraft.network.play.server.SPacketCloseWindow +net.minecraft.network.play.server.SSetSlotPacket net.minecraft.network.play.server.SPacketSetSlot +net.minecraft.network.play.server.SWindowPropertyPacket net.minecraft.network.play.server.SPacketWindowItems +net.minecraft.network.play.server.SOpenSignMenuPacket net.minecraft.network.play.server.SPacketSignEditorOpen +net.minecraft.network.play.server.SStatisticsPacket net.minecraft.network.play.server.SPacketStatistics +net.minecraft.network.play.server.SSetExperiencePacket net.minecraft.network.play.server.SPacketSetExperience +net.minecraft.network.play.server.SCameraPacket net.minecraft.network.play.server.SPacketCamera +net.minecraft.network.play.server.SPlayerAbilitiesPacket net.minecraft.network.play.server.SPacketPlayerAbilities +net.minecraft.network.play.server.STitlePacket net.minecraft.network.play.server.SPacketTitle +net.minecraft.network.play.server.SUnloadChunkPacket net.minecraft.network.play.server.SPacketUnloadChunk +net.minecraft.network.play.server.SPlaySoundEffectPacket net.minecraft.network.play.server.SPacketSoundEffect +net.minecraft.network.play.server.SPlaySoundEventPacket net.minecraft.network.play.server.SPacketEffect +net.minecraft.network.play.server.SEntityMetadataPacket net.minecraft.network.play.server.SPacketEntityMetadata +net.minecraft.network.play.server.SEntityEquipmentPacket net.minecraft.network.play.server.SPacketEntityEquipment +net.minecraft.network.play.server.SEntityPacket net.minecraft.network.play.server.SPacketEntity +net.minecraft.network.play.server.SEntityPacket.Rotate net.minecraft.network.play.server.SPacketEntity.Look +net.minecraft.network.play.server.SEntityPacket.MoveRelative net.minecraft.network.play.server.SPacketEntity.RelMove +net.minecraft.network.play.server.SEntityPacket.MovePacket net.minecraft.network.play.server.SPacketEntity.Move diff --git a/versions/1.8.9/mapping.txt b/versions/1.8.9/mapping.txt index a4e34b71..96c38ef4 100644 --- a/versions/1.8.9/mapping.txt +++ b/versions/1.8.9/mapping.txt @@ -1,2 +1,19 @@ net.minecraft.client.renderer.WorldRenderer begin() startDrawing() net.minecraft.network.play.server.S38PacketPlayerListItem getAction() func_179768_b() +net.minecraft.network.play.server.S40PacketDisconnect getReason() func_149165_c() +net.minecraft.network.play.server.S48PacketResourcePackSend getURL() func_179783_a() +net.minecraft.network.play.server.S48PacketResourcePackSend getHash() func_179784_b() +net.minecraft.network.play.server.S08PacketPlayerPosLook getX() func_148932_c() +net.minecraft.network.play.server.S08PacketPlayerPosLook getY() func_148928_d() +net.minecraft.network.play.server.S08PacketPlayerPosLook getZ() func_148933_e() +net.minecraft.network.play.server.S2BPacketChangeGameState getGameState() func_149138_c() +net.minecraft.network.play.server.S0EPacketSpawnObject getType() func_148993_l() +net.minecraft.network.play.server.S21PacketChunkData getChunkX() func_149273_e() +net.minecraft.network.play.server.S21PacketChunkData getChunkZ() func_149271_f() +net.minecraft.network.play.server.S21PacketChunkData getExtractedSize() func_149276_g() +net.minecraft.network.play.server.S0CPacketSpawnPlayer watcher field_148960_i +net.minecraft.network.play.server.S0CPacketSpawnPlayer getPlayer() func_179819_c() +net.minecraft.network.play.server.S0DPacketCollectItem getEntityID() func_149354_c() +net.minecraft.util.Timer counter field_74285_i +net.minecraft.client.resources.ResourcePackRepository setResourcePackInstance() func_177319_a() +net.minecraft.client.resources.ResourcePackRepository downloadResourcePack() func_180601_a() diff --git a/versions/1.8/mapping.txt b/versions/1.8/mapping.txt index 2129a269..8f452af4 100644 --- a/versions/1.8/mapping.txt +++ b/versions/1.8/mapping.txt @@ -24,10 +24,13 @@ net.minecraftforge.fml.common.network.FMLNetworkEvent cpw.mods.fml.common.networ net.minecraftforge.fml.common.network.handshake.FMLHandshakeCodec cpw.mods.fml.common.network.handshake.FMLHandshakeCodec net.minecraftforge.fml.common.network.handshake.NetworkDispatcher cpw.mods.fml.common.network.handshake.NetworkDispatcher net.minecraftforge.fml.relauncher.Side cpw.mods.fml.relauncher.Side +net.minecraftforge.fml.common.gameevent.PlayerEvent cpw.mods.fml.common.gameevent.PlayerEvent net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemPickupEvent cpw.mods.fml.common.gameevent.PlayerEvent.ItemPickupEvent net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage cpw.mods.fml.common.network.handshake.FMLHandshakeMessage net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage.RegistryData cpw.mods.fml.common.network.handshake.FMLHandshakeMessage.ModIdData net.minecraftforge.fml.common.network.internal.FMLProxyPacket cpw.mods.fml.common.network.internal.FMLProxyPacket net.minecraftforge.fml.common.network.NetworkRegistry cpw.mods.fml.common.network.NetworkRegistry net.minecraftforge.fml.common.gameevent.InputEvent cpw.mods.fml.common.gameevent.InputEvent -net.minecraft.client.renderer.tileentity.TileEntityEndPortalRenderer net.minecraft.client.renderer.tileentity.RenderEndPortal \ No newline at end of file +net.minecraft.client.renderer.tileentity.TileEntityEndPortalRenderer net.minecraft.client.renderer.tileentity.RenderEndPortal +net.minecraft.network.play.server.S3FPacketCustomPayload getChannelName() func_149169_c() +net.minecraft.network.play.server.S01PacketJoinGame getEntityId() func_149197_c() diff --git a/versions/1.9.4/mapping.txt b/versions/1.9.4/mapping.txt index 884628d7..d0fcbe20 100644 --- a/versions/1.9.4/mapping.txt +++ b/versions/1.9.4/mapping.txt @@ -16,6 +16,10 @@ net.minecraft.client.gui.GuiWorldSelection net.minecraft.client.gui.GuiSelectWor net.minecraft.util.math.AxisAlignedBB net.minecraft.util.AxisAlignedBB net.minecraft.util.math.RayTraceResult net.minecraft.util.MovingObjectPosition net.minecraft.client.renderer.RenderItem net.minecraft.client.renderer.entity.RenderItem +net.minecraft.network.play.server.SPacketSpawnMob dataManager field_149043_l +net.minecraft.network.play.server.SPacketSpawnMob getDataManagerEntries() func_149027_c() +net.minecraft.network.play.server.SPacketSpawnPlayer getDataManagerEntries() func_148944_c() +net.minecraft.client.multiplayer.ServerList saveSingleServer() func_147414_b() net.minecraft.network.play.server.SPacketJoinGame net.minecraft.network.play.server.S01PacketJoinGame net.minecraft.network.play.server.SPacketChat net.minecraft.network.play.server.S02PacketChat @@ -55,5 +59,7 @@ net.minecraft.network.play.server.SPacketCloseWindow net.minecraft.network.play. net.minecraft.network.play.server.SPacketWindowItems net.minecraft.network.play.server.S30PacketWindowItems net.minecraft.network.play.server.SPacketStatistics net.minecraft.network.play.server.S37PacketStatistics net.minecraft.network.play.server.SPacketPlayerAbilities net.minecraft.network.play.server.S39PacketPlayerAbilities +net.minecraft.network.play.server.SPacketEntityEquipment net.minecraft.network.play.server.S04PacketEntityEquipment +net.minecraft.network.play.server.SPacketUseBed net.minecraft.network.play.server.S0APacketUseBed net.minecraft.network.login.server.SPacketEnableCompression net.minecraft.network.login.server.S03PacketEnableCompression net.minecraft.network.login.server.SPacketLoginSuccess net.minecraft.network.login.server.S02PacketLoginSuccess diff --git a/versions/common.gradle b/versions/common.gradle index 08271956..4cc58eb2 100644 --- a/versions/common.gradle +++ b/versions/common.gradle @@ -1,24 +1,20 @@ buildscript { def mcVersion - if (project.name != 'core') { - def (major, minor, patch) = project.name.tokenize('.') - mcVersion = "${major}${minor.padLeft(2, '0')}${(patch ?: '').padLeft(2, '0')}" as int - } else { - def f = file('mcVersion') - mcVersion = f.readLines().first() as int - } + def (major, minor, patch) = project.name.tokenize('-')[0].tokenize('.') + mcVersion = "${major}${minor.padLeft(2, '0')}${(patch ?: '').padLeft(2, '0')}" as int + def fabric = mcVersion >= 11400 && !project.name.endsWith("-forge") project.ext.mcVersion = mcVersion + project.ext.fabric = fabric repositories { mavenLocal() jcenter() mavenCentral() - if (mcVersion >= 11400) { - maven { - name = "fabric" - url = "https://maven.fabricmc.net/" - } - } else { + maven { + name = "fabric" + url = "https://maven.fabricmc.net/" + } + if (!fabric) { maven { name = "forge" url = "https://files.minecraftforge.net/maven" @@ -33,7 +29,7 @@ buildscript { dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2' - if (mcVersion >= 11400) { + if (fabric) { classpath 'fabric-loom:fabric-loom.gradle.plugin:0.2.2-SNAPSHOT' } else if (mcVersion >= 11300) { classpath('net.minecraftforge.gradle:ForgeGradle:3.+'){ @@ -50,16 +46,11 @@ buildscript { exclude group: 'trove', module: 'trove' // different name same thing } } - classpath 'com.github.replaymod:preprocessor:8ec3e31' } } -import com.replaymod.gradle.preprocess.PreprocessTask - -def mcVersionStr = "${(int)(mcVersion/10000)}.${(int)(mcVersion/100)%100}" + (mcVersion%100==0 ? '' : ".${mcVersion%100}") - -def FG3 = mcVersion >= 11300 && mcVersion < 11400 -def FABRIC = mcVersion >= 11400 +def FG3 = !fabric && mcVersion >= 11300 +def FABRIC = fabric def jGuiVersion = project.name if (['1.10.2', '1.11', '1.11.2'].contains(jGuiVersion)) jGuiVersion = '1.9.4' @@ -96,9 +87,22 @@ if (!FABRIC) { apply plugin: 'com.replaymod.preprocess' +preprocess { + vars.put("MC", project.mcVersion) + vars.put("FABRIC", project.fabric ? 1 : 0) +} + +def mcVersionStr = "${(int)(mcVersion/10000)}.${(int)(mcVersion/100)%100}" + (mcVersion%100==0 ? '' : ".${mcVersion%100}") + sourceCompatibility = 1.8 targetCompatibility = 1.8 +if (mcVersion >= 11300) { + sourceSets { + api + } +} + version = mcVersionStr + '-' + rootProject.version group= "com.replaymod" archivesBaseName = "replaymod" @@ -143,7 +147,7 @@ if (FABRIC) { ][mcVersion] } mappings = [ - 11302: "snapshot_20180921-1.13", + 11404: "snapshot_20190719-1.14.3", 11202: "snapshot_20170615", 11201: "snapshot_20170615", 11200: "snapshot_20170615", @@ -226,7 +230,7 @@ dependencies { if (FG3) { minecraft 'net.minecraftforge:forge:' + [ - 11302: '1.13.2-25.0.76', + 11404: '1.14.4-28.1.113', ][mcVersion] } @@ -295,14 +299,6 @@ if (mcVersion <= 10710) { } } -if (project.name != 'core') { - def jGui = project.evaluationDependsOn(":jGui:$jGuiVersion") - // Make sure the corresponding jGui setCoreVersion task runs - project.tasks.setCoreVersionJava.dependsOn jGui.tasks.setCoreVersion - // and it doesn't run too early (i.e. before we're done with preprocessing) - jGui.tasks.setCoreVersionJava.mustRunAfter project.tasks.preprocessJava -} - task configureRelocation() { dependsOn tasks.jar dependsOn configurations.relocate diff --git a/versions/core/mcVersion b/versions/core/mcVersion deleted file mode 100644 index 3c8db4e2..00000000 --- a/versions/core/mcVersion +++ /dev/null @@ -1 +0,0 @@ -11404 \ No newline at end of file diff --git a/versions/mainProject b/versions/mainProject new file mode 100644 index 00000000..6bd55113 --- /dev/null +++ b/versions/mainProject @@ -0,0 +1 @@ +1.14.4 \ No newline at end of file diff --git a/versions/mapping-1.14.4-fabric-forge.txt b/versions/mapping-1.14.4-fabric-forge.txt new file mode 100644 index 00000000..e69de29b