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