Update preprocessor and replace 1.13.2 subproject with 1.14.4-forge

The new preprocessor version brings first-party support for fabric, in
particular for automatically fetching mappings loom and for
automatically remapping between MC versions via intermediary mappings.
This will come in handy when updating to 1.15.

It also supports automatic remapping between fabric and forge on the
same MC version (by going mcp<->srg<->mojang<->intermediary<->yarn).
Therefore this commit replaces the previous 1.13.2 (forge) subproject
with a 1.14.4-forge one. Instead of manually providing full mappings for
1.14.4-fabric to 1.13.2-forge and partial (classes) for 1.13.2-forge to
1.12.2-forge, we now only need partial (classes) for 1.12.2-forge to
1.14.4-forge and preprocessor will take care of the forge to fabric
step (in fact, our mapping file for that is currently completely empty).

In an attempt to write an IDE (IntelliJ) plugin for quicker and easier
working with the preprocessor (e.g. immediately mapping single files
from within the IDE, jumping between different versions for the same
file), the preprocessor gradle plugin declaration now requires you to
explicitly specify variables in the common.gradle and the overall
relationship between projects in the build.gradle (latter is required
anyway, so the plugin can know where it should map between forge and
fabric and which subprojects are which versions).
Since that necessitated some changes to the build.gradle file, I took
the opportunity to convert it to Kotlin. As such we now also use
Gradle's newer plugin-block with the pluginManagement-block instead of
manually declaring buildScript (not for the common.gradle though), which
imo is nicer anyway and comes with various advantages (see gradle docs).

There were also some remapping bugs fixed and some new ones
introduced (e.g. manually declared inner class mappings seem to no
longer function properly under certain conditions).
There's also support for remapping Kotlin now. Just saying.
This commit is contained in:
Jonas Herzig
2020-01-12 23:34:10 +01:00
parent f51298e2a3
commit 8bc0b0a4df
54 changed files with 932 additions and 631 deletions

View File

@@ -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'

200
build.gradle.kts Executable file
View File

@@ -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<String> {
val stdout = ByteArrayOutputStream()
exec {
commandLine(*cmd)
standardOutput = stdout
}
return stdout.toString().split("\n")
}
fun generateVersionsJson(): Map<String, Any> {
// 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<String, String>()
val root = mutableMapOf<String, Any>(
"homepage" to "https://www.replaymod.com/download/",
"promos" to promos
)
mcVersions.forEach { mcVersion ->
var mcVersionRoot = mutableMapOf<String, String>()
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"))
}
}
}
}
}
}
}
}
}
}
}
}

View File

@@ -2,4 +2,4 @@
# This is required to provide enough memory for the Minecraft decompilation process. # This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx3G org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false org.gradle.daemon=false
org.gradle.parallel= org.gradle.parallel=false

2
jGui

Submodule jGui updated: 48c89f8a72...36fd2eb402

View File

@@ -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'
}
}

65
settings.gradle.kts Normal file
View File

@@ -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"
}
}

View File

@@ -5,8 +5,8 @@
//$$ import de.johni0702.minecraft.gui.utils.EventRegistrations; //$$ import de.johni0702.minecraft.gui.utils.EventRegistrations;
//$$ import net.minecraft.client.Minecraft; //$$ import net.minecraft.client.Minecraft;
//$$ import net.minecraftforge.client.event.RenderLivingEvent; //$$ import net.minecraftforge.client.event.RenderLivingEvent;
//$$ import net.minecraftforge.eventbus.api.EventPriority; //$$ import net.minecraftforge.fml.common.eventhandler.EventPriority;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//$$ //$$
//$$ import static com.replaymod.core.versions.MCVer.*; //$$ 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. //$$ * 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 { //$$ public class HideInvisibleEntities extends EventRegistrations {
//$$ private final Minecraft mc = Minecraft.getInstance(); //$$ private final Minecraft mc = Minecraft.getMinecraft();
//$$ private final boolean modLoaded = isModLoaded("animations"); //$$ private final boolean modLoaded = isModLoaded("animations");
//$$ //$$
//$$ @SubscribeEvent(priority = EventPriority.HIGH) //$$ @SubscribeEvent(priority = EventPriority.HIGH)

View File

@@ -9,11 +9,11 @@ import java.lang.reflect.InvocationTargetException;
import static com.replaymod.core.versions.MCVer.getRenderPartialTicks; import static com.replaymod.core.versions.MCVer.getRenderPartialTicks;
//#if MC>=11400 //#if FABRIC>=1
import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.events.PreRenderCallback;
//#else //#else
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; //$$ import net.minecraftforge.event.TickEvent;
//#endif //#endif
public class ShaderBeginRender extends EventRegistrations { public class ShaderBeginRender extends EventRegistrations {
@@ -25,7 +25,7 @@ public class ShaderBeginRender extends EventRegistrations {
* as this would usually get called by EntityRenderer#renderWorld, * as this would usually get called by EntityRenderer#renderWorld,
* which we're not calling during rendering. * which we're not calling during rendering.
*/ */
//#if MC>=11400 //#if FABRIC>=1
{ on(PreRenderCallback.EVENT, this::onRenderTickStart); } { on(PreRenderCallback.EVENT, this::onRenderTickStart); }
private void onRenderTickStart() { private void onRenderTickStart() {
//#else //#else

View File

@@ -9,7 +9,7 @@ import net.minecraft.util.crash.CrashReport;
import net.minecraft.util.crash.CrashReportSection; import net.minecraft.util.crash.CrashReportSection;
import net.minecraft.util.crash.CrashException; import net.minecraft.util.crash.CrashException;
//#if MC>=11400 //#if FABRIC>=1
import com.replaymod.core.versions.LangResourcePack; import com.replaymod.core.versions.LangResourcePack;
import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding; import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
import net.minecraft.client.util.InputUtil; import net.minecraft.client.util.InputUtil;
@@ -38,7 +38,7 @@ import java.util.Map;
public class KeyBindingRegistry extends EventRegistrations { public class KeyBindingRegistry extends EventRegistrations {
private static final String CATEGORY = "replaymod.title"; private static final String CATEGORY = "replaymod.title";
//#if MC>=11400 //#if FABRIC>=1
static { net.fabricmc.fabric.api.client.keybinding.KeyBindingRegistry.INSTANCE.addCategory(CATEGORY); } static { net.fabricmc.fabric.api.client.keybinding.KeyBindingRegistry.INSTANCE.addCategory(CATEGORY); }
//#endif //#endif
@@ -58,7 +58,7 @@ public class KeyBindingRegistry extends EventRegistrations {
private KeyBinding registerKeyBinding(String name, int keyCode) { private KeyBinding registerKeyBinding(String name, int keyCode) {
KeyBinding keyBinding = keyBindings.get(name); KeyBinding keyBinding = keyBindings.get(name);
if (keyBinding == null) { if (keyBinding == null) {
//#if MC>=11400 //#if FABRIC>=1
if (keyCode == 0) { if (keyCode == 0) {
keyCode = -1; keyCode = -1;
} }

View File

@@ -21,6 +21,7 @@ import de.johni0702.minecraft.gui.container.GuiScreen;
import lombok.Getter; import lombok.Getter;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.resource.DirectoryResourcePack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.Style; import net.minecraft.text.Style;
import net.minecraft.text.LiteralText; import net.minecraft.text.LiteralText;
@@ -30,17 +31,18 @@ import org.apache.commons.io.FileUtils;
//#if MC>=11400 //#if MC>=11400
import com.github.steveice10.mc.protocol.MinecraftConstants; 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.SharedConstants;
import net.minecraft.client.options.Option; import net.minecraft.client.options.Option;
import net.minecraft.resource.DirectoryResourcePack;
import net.minecraft.resource.ResourcePackCreator; import net.minecraft.resource.ResourcePackCreator;
import net.minecraft.resource.ResourcePackContainer; import net.minecraft.resource.ResourcePackContainer;
import net.minecraft.util.NonBlockingThreadExecutor; import net.minecraft.util.NonBlockingThreadExecutor;
//#endif
//#if FABRIC>=1
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.loader.api.FabricLoader;
//#else //#else
//$$ import com.google.common.util.concurrent.ListenableFutureTask; //$$ import com.google.common.util.concurrent.ListenableFutureTask;
//$$ import net.minecraft.resources.FolderPack;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//$$ import java.util.Queue; //$$ import java.util.Queue;
//$$ import java.util.concurrent.FutureTask; //$$ import java.util.concurrent.FutureTask;
@@ -80,8 +82,10 @@ import net.minecraft.util.NonBlockingThreadExecutor;
//#endif //#endif
//#endif //#endif
//$$ import net.minecraftforge.fml.common.Mod; //$$ import net.minecraftforge.fml.common.Mod;
//#if MC<11400
//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; //$$ import net.minecraftforge.fml.common.gameevent.TickEvent;
//#endif //#endif
//#endif
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.File; import java.io.File;
@@ -97,7 +101,7 @@ import java.util.concurrent.TimeoutException;
import static com.replaymod.core.versions.MCVer.*; import static com.replaymod.core.versions.MCVer.*;
//#if MC<11400 //#if FABRIC<=0
//#if MC>=11300 //#if MC>=11300
//$$ @Mod(ReplayMod.MOD_ID) //$$ @Mod(ReplayMod.MOD_ID)
//#else //#else
@@ -114,7 +118,7 @@ import static com.replaymod.core.versions.MCVer.*;
//#endif //#endif
//#endif //#endif
public class ReplayMod implements public class ReplayMod implements
//#if MC>=11400 //#if FABRIC>=1
ClientModInitializer, ClientModInitializer,
//#endif //#endif
Module Module
@@ -299,7 +303,7 @@ public class ReplayMod implements
//#endif //#endif
}} }}
//#if MC>=11400 //#if FABRIC>=1
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
modules.forEach(Module::initCommon); modules.forEach(Module::initCommon);
@@ -470,10 +474,12 @@ public class ReplayMod implements
return mcThread; return mcThread;
} }
//#if FABRIC>=1
@Override @Override
public void send(Runnable runnable) { public void send(Runnable runnable) {
method_18858(runnable); method_18858(runnable);
} }
//#endif
@Override @Override
public void executeTaskQueue() { public void executeTaskQueue() {
@@ -573,7 +579,7 @@ public class ReplayMod implements
//#endif //#endif
public String getVersion() { public String getVersion() {
//#if MC>=11400 //#if FABRIC>=1
return FabricLoader.getInstance().getModContainer(MOD_ID) return FabricLoader.getInstance().getModContainer(MOD_ID)
.orElseThrow(IllegalStateException::new) .orElseThrow(IllegalStateException::new)
.getMetadata().getVersion().toString(); .getMetadata().getVersion().toString();

View File

@@ -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.Dimension;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension; import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
//#else //#else
@@ -28,13 +28,13 @@ import static com.replaymod.core.versions.MCVer.getMinecraft;
public class GuiBackgroundProcesses extends EventRegistrations { public class GuiBackgroundProcesses extends EventRegistrations {
private GuiPanel panel = new GuiPanel().setLayout(new VerticalLayout().setSpacing(10)); private GuiPanel panel = new GuiPanel().setLayout(new VerticalLayout().setSpacing(10));
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); } { on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); }
private void onGuiInit(Screen guiScreen) { private void onGuiInit(Screen guiScreen) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { //$$ 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 //#endif
if (guiScreen != getMinecraft().currentScreen) return; // people tend to construct GuiScreens without opening them if (guiScreen != getMinecraft().currentScreen) return; // people tend to construct GuiScreens without opening them

View File

@@ -1,4 +1,4 @@
//#if MC>=11400 //#if FABRIC>=1
package com.replaymod.core.gui; package com.replaymod.core.gui;
import com.replaymod.core.ReplayMod; import com.replaymod.core.ReplayMod;

View File

@@ -12,29 +12,33 @@ import java.util.List;
import static com.replaymod.core.versions.MCVer.*; import static com.replaymod.core.versions.MCVer.*;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; 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.gui.widget.AbstractButtonWidget;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
//#else //#else
//$$ import net.minecraft.client.gui.GuiButton; //$$ import net.minecraft.client.gui.GuiButton;
//$$ import net.minecraftforge.client.event.GuiScreenEvent;
//$$ import net.minecraftforge.common.MinecraftForge;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//#endif //#endif
/** /**
* Moves certain buttons on the main menu upwards so we can inject our own. * Moves certain buttons on the main menu upwards so we can inject our own.
*/ */
public class MainMenuHandler extends EventRegistrations { public class MainMenuHandler extends EventRegistrations {
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::onInit); } { on(InitScreenCallback.EVENT, this::onInit); }
public void onInit(Screen guiScreen, List<AbstractButtonWidget> buttonList) { public void onInit(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void onInit(GuiScreenEvent.InitGuiEvent.Post event) { //$$ public void onInit(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ GuiScreen guiScreen = getGui(event); //$$ Screen guiScreen = getGui(event);
//$$ List<GuiButton> buttonList = getButtonList(event); //$$ List<Widget> buttonList = getButtonList(event);
//#endif //#endif
if (guiScreen instanceof TitleScreen) { if (guiScreen instanceof TitleScreen) {
TitleScreen gui = (TitleScreen) guiScreen; TitleScreen gui = (TitleScreen) guiScreen;

View File

@@ -18,10 +18,11 @@ import net.minecraft.client.gui.Element;
@Mixin(Screen.class) @Mixin(Screen.class)
public interface GuiScreenAccessor { public interface GuiScreenAccessor {
@Accessor
//#if MC>=11400 //#if MC>=11400
@Accessor
List<AbstractButtonWidget> getButtons(); List<AbstractButtonWidget> getButtons();
//#else //#else
//$$ @Accessor("buttonList")
//$$ List<GuiButton> getButtons(); //$$ List<GuiButton> getButtons();
//#endif //#endif

View File

@@ -1,4 +1,4 @@
//#if MC>=11400 //#if FABRIC>=1
package com.replaymod.core.mixin; package com.replaymod.core.mixin;
import com.replaymod.core.ReplayMod; import com.replaymod.core.ReplayMod;

View File

@@ -3,7 +3,7 @@ package com.replaymod.core.utils;
import com.replaymod.replaystudio.data.ModInfo; import com.replaymod.replaystudio.data.ModInfo;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
//#if MC>=11400 //#if FABRIC>=1
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.ModContainer; import net.fabricmc.loader.api.ModContainer;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
@@ -32,7 +32,7 @@ public class ModCompat {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static Collection<ModInfo> getInstalledNetworkMods() { public static Collection<ModInfo> getInstalledNetworkMods() {
//#if MC>=11300 //#if MC>=11300
//#if MC>=11400 //#if FABRIC>=1
Map<String, ModInfo> modInfoMap = FabricLoader.getInstance().getAllMods().stream() Map<String, ModInfo> modInfoMap = FabricLoader.getInstance().getAllMods().stream()
.map(ModContainer::getMetadata) .map(ModContainer::getMetadata)
.map(m -> new ModInfo(m.getId(), m.getName(), m.getVersion().toString())) .map(m -> new ModInfo(m.getId(), m.getName(), m.getVersion().toString()))

View File

@@ -3,7 +3,6 @@ package com.replaymod.core.versions;
import com.replaymod.core.mixin.GuiScreenAccessor; import com.replaymod.core.mixin.GuiScreenAccessor;
import com.replaymod.core.mixin.MinecraftAccessor; import com.replaymod.core.mixin.MinecraftAccessor;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.Tessellator;
@@ -24,14 +23,21 @@ import org.apache.logging.log4j.Logger;
//#if MC>=11400 //#if MC>=11400
import com.replaymod.core.mixin.AbstractButtonWidgetAccessor; import com.replaymod.core.mixin.AbstractButtonWidgetAccessor;
import net.minecraft.SharedConstants;
import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.client.gui.screen.TitleScreen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.gui.widget.AbstractButtonWidget;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
//#else //#else
//$$ import com.google.common.util.concurrent.FutureCallback; //$$ import com.google.common.util.concurrent.FutureCallback;
//$$ import com.google.common.util.concurrent.Futures; //$$ import com.google.common.util.concurrent.Futures;
//$$ import com.google.common.util.concurrent.ListenableFuture; //$$ 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.GuiScreenEvent;
//$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; //$$ import net.minecraftforge.client.event.RenderGameOverlayEvent;
//$$ import net.minecraftforge.client.event.RenderLivingEvent; //$$ import net.minecraftforge.client.event.RenderLivingEvent;
@@ -80,9 +86,8 @@ import net.minecraft.client.render.chunk.ChunkRenderTask;
//$$ import static org.lwjgl.opengl.GL11.*; //$$ import static org.lwjgl.opengl.GL11.*;
//#endif //#endif
//#if MC>=11400 //#if FABRIC>=1
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.SharedConstants;
//#else //#else
//#if MC>=11300 //#if MC>=11300
//$$ import net.minecraftforge.fml.ModList; //$$ import net.minecraftforge.fml.ModList;
@@ -104,7 +109,7 @@ import java.util.function.Consumer;
public class MCVer { public class MCVer {
private static Logger LOGGER = LogManager.getLogger(); private static Logger LOGGER = LogManager.getLogger();
//#if MC<11400 //#if FABRIC<=0
//$$ public static IEventBus FORGE_BUS = MinecraftForge.EVENT_BUS; //$$ public static IEventBus FORGE_BUS = MinecraftForge.EVENT_BUS;
//#if MC>=10809 //#if MC>=10809
//$$ public static IEventBus FML_BUS = FORGE_BUS; //$$ public static IEventBus FML_BUS = FORGE_BUS;
@@ -114,7 +119,7 @@ public class MCVer {
//#endif //#endif
public static boolean isModLoaded(String id) { public static boolean isModLoaded(String id) {
//#if MC>=11400 //#if FABRIC>=1
return FabricLoader.getInstance().isModLoaded(id.toLowerCase()); return FabricLoader.getInstance().isModLoaded(id.toLowerCase());
//#else //#else
//#if MC>=11300 //#if MC>=11300
@@ -171,7 +176,24 @@ public class MCVer {
//$$ } //$$ }
//#endif //#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<Widget> 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) { //$$ public static void addButton(GuiScreenEvent.InitGuiEvent event, GuiButton button) {
//#if MC>=11300 //#if MC>=11300
//$$ event.addButton(button); //$$ event.addButton(button);
@@ -204,8 +226,9 @@ public class MCVer {
//$$ return event.button; //$$ return event.button;
//#endif //#endif
//$$ } //$$ }
//#endif
//$$ //$$
//$$ public static GuiScreen getGui(GuiScreenEvent event) { //$$ public static Screen getGui(GuiScreenEvent event) {
//#if MC>=10904 //#if MC>=10904
//$$ return event.getGui(); //$$ return event.getGui();
//#else //#else
@@ -213,7 +236,7 @@ public class MCVer {
//#endif //#endif
//$$ } //$$ }
//$$ //$$
//$$ public static EntityLivingBase getEntity(RenderLivingEvent event) { //$$ public static LivingEntity getEntity(RenderLivingEvent event) {
//#if MC>=10904 //#if MC>=10904
//$$ return event.getEntity(); //$$ return event.getEntity();
//#else //#else
@@ -234,7 +257,7 @@ public class MCVer {
//#endif //#endif
} }
//#if MC<11400 //#if FABRIC<=0
//$$ public static RenderGameOverlayEvent.ElementType getType(RenderGameOverlayEvent event) { //$$ public static RenderGameOverlayEvent.ElementType getType(RenderGameOverlayEvent event) {
//#if MC>=10904 //#if MC>=10904
//$$ return event.getType(); //$$ return event.getType();
@@ -475,7 +498,14 @@ public class MCVer {
return ((MinecraftAccessor) getMinecraft()).getTimer().tickDelta; 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; GuiScreenAccessor acc = (GuiScreenAccessor) screen;
//#if MC>=11400 //#if MC>=11400
if (screen instanceof TitleScreen && isModLoaded("modmenu")) { if (screen instanceof TitleScreen && isModLoaded("modmenu")) {
@@ -635,9 +665,8 @@ public class MCVer {
//$$ } //$$ }
//#endif //#endif
//#if MC>=11300
@SuppressWarnings("unused")
public static abstract class Keyboard { public static abstract class Keyboard {
//#if MC>=11300
public static final int KEY_LCONTROL = GLFW.GLFW_KEY_LEFT_CONTROL; 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_LSHIFT = GLFW.GLFW_KEY_LEFT_SHIFT;
public static final int KEY_ESCAPE = GLFW.GLFW_KEY_ESCAPE; 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_X = GLFW.GLFW_KEY_X;
public static final int KEY_Y = GLFW.GLFW_KEY_Y; public static final int KEY_Y = GLFW.GLFW_KEY_Y;
public static final int KEY_Z = GLFW.GLFW_KEY_Z; 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) { public static boolean isKeyDown(int keyCode) {
//#if MC>=11400 //#if MC>=11400
return InputUtil.isKeyPressed(getMinecraft().window.getHandle(), keyCode); return InputUtil.isKeyPressed(getMinecraft().window.getHandle(), keyCode);
//#else //#else
//#if MC>=11300
//$$ return InputMappings.isKeyDown(keyCode); //$$ return InputMappings.isKeyDown(keyCode);
//#else
//$$ return org.lwjgl.input.Keyboard.isKeyDown(keyCode);
//#endif
//#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
}
} }

View File

@@ -10,7 +10,7 @@ import de.johni0702.minecraft.gui.container.GuiScreen;
import de.johni0702.minecraft.gui.element.GuiButton; import de.johni0702.minecraft.gui.element.GuiButton;
import net.minecraft.util.crash.CrashReport; import net.minecraft.util.crash.CrashReport;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.gui.widget.AbstractButtonWidget;
@@ -25,13 +25,13 @@ import java.io.IOException;
import static com.replaymod.core.versions.MCVer.*; import static com.replaymod.core.versions.MCVer.*;
public class GuiHandler extends EventRegistrations { public class GuiHandler extends EventRegistrations {
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); } { on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); }
public void injectIntoReplayViewer(Screen vanillaGuiScreen, List<AbstractButtonWidget> buttonList) { public void injectIntoReplayViewer(Screen vanillaGuiScreen, List<AbstractButtonWidget> buttonList) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void injectIntoReplayViewer(GuiScreenEvent.InitGuiEvent.Post event) { //$$ 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 //#endif
AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen); AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen);
if (!(guiScreen instanceof GuiReplayViewer)) { if (!(guiScreen instanceof GuiReplayViewer)) {

View File

@@ -12,12 +12,12 @@ import de.johni0702.minecraft.gui.layout.HorizontalLayout;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
//#if MC>=11400 //#if FABRIC>=1
import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.events.PreRenderCallback;
import com.replaymod.core.events.PostRenderCallback; import com.replaymod.core.events.PostRenderCallback;
//#else //#else
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; //$$ import net.minecraftforge.event.TickEvent;
//#endif //#endif
public class FullBrightness extends EventRegistrations implements Extra { public class FullBrightness extends EventRegistrations implements Extra {
@@ -58,7 +58,7 @@ public class FullBrightness extends EventRegistrations implements Extra {
register(); register();
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(PreRenderCallback.EVENT, this::preRender); } { on(PreRenderCallback.EVENT, this::preRender); }
private void preRender() { private void preRender() {
//#else //#else
@@ -72,7 +72,7 @@ public class FullBrightness extends EventRegistrations implements Extra {
} }
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(PostRenderCallback.EVENT, this::postRender); } { on(PostRenderCallback.EVENT, this::postRender); }
private void postRender() { private void postRender() {
//#else //#else

View File

@@ -7,7 +7,7 @@ import de.johni0702.minecraft.gui.container.GuiScreen;
import de.johni0702.minecraft.gui.element.GuiButton; import de.johni0702.minecraft.gui.element.GuiButton;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.OpenGuiScreenCallback; import de.johni0702.minecraft.gui.versions.callbacks.OpenGuiScreenCallback;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
//#else //#else
@@ -23,13 +23,13 @@ public class YoutubeUpload extends EventRegistrations implements Extra {
register(); register();
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(OpenGuiScreenCallback.EVENT, this::onGuiOpen); } { on(OpenGuiScreenCallback.EVENT, this::onGuiOpen); }
private void onGuiOpen(Screen vanillaGui) { private void onGuiOpen(Screen vanillaGui) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void onGuiOpen(GuiScreenEvent.InitGuiEvent.Post event) { //$$ 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 //#endif
if (GuiScreen.from(vanillaGui) instanceof GuiRenderingDone) { if (GuiScreen.from(vanillaGui) instanceof GuiRenderingDone) {
GuiRenderingDone gui = (GuiRenderingDone) GuiScreen.from(vanillaGui); GuiRenderingDone gui = (GuiRenderingDone) GuiScreen.from(vanillaGui);

View File

@@ -9,14 +9,13 @@ import com.replaymod.replay.gui.screen.GuiReplayViewer;
import com.replaymod.replay.handler.GuiHandler.InjectedButton; import com.replaymod.replay.handler.GuiHandler.InjectedButton;
import de.johni0702.minecraft.gui.container.AbstractGuiScreen; import de.johni0702.minecraft.gui.container.AbstractGuiScreen;
import de.johni0702.minecraft.gui.container.GuiScreen; 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.screen.TitleScreen;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
import java.util.List; import java.util.List;
//#else //#else
//$$ import net.minecraftforge.client.event.GuiScreenEvent; //$$ import net.minecraftforge.client.event.GuiScreenEvent;
@@ -36,19 +35,19 @@ public class GuiHandler extends EventRegistrations {
this.mod = mod; this.mod = mod;
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::injectIntoMainMenu); } { on(InitScreenCallback.EVENT, this::injectIntoMainMenu); }
public void injectIntoMainMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) { public void injectIntoMainMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) { //$$ 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 //#endif
if (!(guiScreen instanceof TitleScreen)) { if (!(guiScreen instanceof TitleScreen)) {
return; return;
} }
ButtonWidget button = new InjectedButton( InjectedButton button = new InjectedButton(
guiScreen, guiScreen,
BUTTON_REPLAY_CENTER, BUTTON_REPLAY_CENTER,
guiScreen.width / 2 + 2, guiScreen.width / 2 + 2,
@@ -61,13 +60,13 @@ public class GuiHandler extends EventRegistrations {
addButton(guiScreen, button); addButton(guiScreen, button);
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); } { on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); }
public void injectIntoReplayViewer(Screen vanillaGuiScreen, List<AbstractButtonWidget> buttonList) { public void injectIntoReplayViewer(Screen vanillaGuiScreen, List<AbstractButtonWidget> buttonList) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void injectIntoReplayViewer(GuiScreenEvent.InitGuiEvent.Post event) { //$$ 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 //#endif
AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen); AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen);
if (!(guiScreen instanceof GuiReplayViewer)) { if (!(guiScreen instanceof GuiReplayViewer)) {

View File

@@ -15,7 +15,7 @@ import net.minecraft.network.ClientConnection;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
//#if MC>=11400 //#if FABRIC>=1
import net.fabricmc.fabric.api.network.ClientSidePacketRegistry; import net.fabricmc.fabric.api.network.ClientSidePacketRegistry;
//#else //#else
//$$ import net.minecraftforge.fml.network.NetworkRegistry; //$$ import net.minecraftforge.fml.network.NetworkRegistry;
@@ -67,7 +67,7 @@ public class ReplayModRecording implements Module {
new GuiHandler(core).register(); new GuiHandler(core).register();
//#if MC>=11400 //#if FABRIC>=1
ClientSidePacketRegistry.INSTANCE.register(Restrictions.PLUGIN_CHANNEL, (packetContext, packetByteBuf) -> {}); ClientSidePacketRegistry.INSTANCE.register(Restrictions.PLUGIN_CHANNEL, (packetContext, packetByteBuf) -> {});
//#else //#else
//#if MC>=11300 //#if MC>=11300

View File

@@ -15,7 +15,7 @@ import de.johni0702.minecraft.gui.layout.HorizontalLayout;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import net.minecraft.client.gui.screen.GameMenuScreen; import net.minecraft.client.gui.screen.GameMenuScreen;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
//#else //#else
//$$ import net.minecraftforge.client.event.GuiScreenEvent; //$$ import net.minecraftforge.client.event.GuiScreenEvent;
@@ -70,7 +70,7 @@ public class GuiRecordingControls extends EventRegistrations {
updateState(); updateState();
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, (screen, buttons) -> { { on(InitScreenCallback.EVENT, (screen, buttons) -> {
if (screen instanceof GameMenuScreen) { if (screen instanceof GameMenuScreen) {
show((GameMenuScreen) screen); show((GameMenuScreen) screen);
@@ -79,8 +79,8 @@ public class GuiRecordingControls extends EventRegistrations {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { //$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ if (getGui(event) instanceof GuiIngameMenu) { //$$ if (getGui(event) instanceof IngameMenuScreen) {
//$$ show((GuiIngameMenu) getGui(event)); //$$ show((IngameMenuScreen) getGui(event));
//$$ } //$$ }
//$$ } //$$ }
//#endif //#endif

View File

@@ -10,7 +10,7 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.PostRenderHudCallback; import de.johni0702.minecraft.gui.versions.callbacks.PostRenderHudCallback;
//#else //#else
//$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; //$$ 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. * 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()); } { on(PostRenderHudCallback.EVENT, partialTicks -> renderRecordingIndicator()); }
private void renderRecordingIndicator() { private void renderRecordingIndicator() {
//#else //#else

View File

@@ -18,7 +18,11 @@
//$$ public class FMLHandshakeFilter extends SimpleChannelInboundHandler<FMLHandshakeMessage> { //$$ public class FMLHandshakeFilter extends SimpleChannelInboundHandler<FMLHandshakeMessage> {
//$$ @Override //$$ @Override
//$$ protected void channelRead0(ChannelHandlerContext ctx, FMLHandshakeMessage msg) throws Exception { //$$ 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 //$$ // Pass on everything but RegistryData messages
//$$ ctx.fireChannelRead(msg); //$$ ctx.fireChannelRead(msg);
//$$ } //$$ }

View File

@@ -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.multiplayer.MultiplayerScreen;
import net.minecraft.client.gui.screen.world.SelectWorldScreen; import net.minecraft.client.gui.screen.world.SelectWorldScreen;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
//#else //#else
@@ -30,13 +30,13 @@ public class GuiHandler extends EventRegistrations {
this.mod = mod; this.mod = mod;
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); } { on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); }
private void onGuiInit(Screen gui) { private void onGuiInit(Screen gui) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { //$$ 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 //#endif
if (gui instanceof SelectWorldScreen || gui instanceof MultiplayerScreen) { if (gui instanceof SelectWorldScreen || gui instanceof MultiplayerScreen) {
boolean sp = gui instanceof SelectWorldScreen; boolean sp = gui instanceof SelectWorldScreen;

View File

@@ -5,25 +5,42 @@ import com.replaymod.recording.packet.PacketListener;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayerEntity; 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.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.network.Packet; import net.minecraft.network.Packet;
import net.minecraft.client.network.packet.*;
import net.minecraft.server.integrated.IntegratedServer; import net.minecraft.server.integrated.IntegratedServer;
// FIXME not (yet?) 1.13 import net.minecraftforge.event.entity.minecart.MinecartInteractEvent; // 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 com.replaymod.core.events.PreRenderCallback;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
//#else //#else
//$$ import net.minecraft.network.play.server.SCollectItemPacket;
//$$ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; //$$ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//$$ import net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemPickupEvent; //$$ import net.minecraftforge.event.entity.player.PlayerEvent.ItemPickupEvent;
//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; //$$ import net.minecraftforge.event.TickEvent;
//#endif
//#if MC>=11400
//#else
//$$ import net.minecraft.network.play.server.SPacketUseBed;
//#endif //#endif
//#if MC>=10904 //#if MC>=10904
import com.replaymod.recording.mixin.EntityLivingBaseAccessor; 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.EquipmentSlot;
import net.minecraft.entity.data.DataTracker; import net.minecraft.entity.data.DataTracker;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
@@ -120,7 +137,7 @@ public class RecordingEventHandler extends EventRegistrations {
} }
//#endif //#endif
//#if MC>=11400 //#if FABRIC>=1
{ on(PreTickCallback.EVENT, this::onPlayerTick); } { on(PreTickCallback.EVENT, this::onPlayerTick); }
private void onPlayerTick() { private void onPlayerTick() {
if (mc.player == null) return; 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 newYaw = (byte) ((int) (player.yaw * 256.0F / 360.0F));
byte newPitch = (byte) ((int) (player.pitch * 256.0F / 360.0F)); byte newPitch = (byte) ((int) (player.pitch * 256.0F / 360.0F));
//#if MC>=11400
packet = new EntityS2CPacket.RotateAndMoveRelative( packet = new EntityS2CPacket.RotateAndMoveRelative(
//#else
//$$ packet = new SPacketEntity.S17PacketEntityLookMove(
//#endif
player.getEntityId(), player.getEntityId(),
//#if MC>=10904 //#if MC>=10904
(short) Math.round(dx * 4096), (short) Math.round(dy * 4096), (short) Math.round(dz * 4096), (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 // FIXME fabric
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
@@ -356,7 +377,7 @@ public class RecordingEventHandler extends EventRegistrations {
//#if MC>=11200 //#if MC>=11200
//#if MC>=11300 //#if MC>=11300
//$$ ItemStack stack = event.getStack(); //$$ ItemStack stack = event.getStack();
//$$ packetListener.save(new SPacketCollectItem( //$$ packetListener.save(new SCollectItemPacket(
//$$ event.getOriginalEntity().getEntityId(), //$$ event.getOriginalEntity().getEntityId(),
//$$ event.getPlayer().getEntityId(), //$$ event.getPlayer().getEntityId(),
//$$ event.getStack().getCount() //$$ event.getStack().getCount()
@@ -456,7 +477,7 @@ public class RecordingEventHandler extends EventRegistrations {
} }
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(PreRenderCallback.EVENT, this::checkForGamePaused); } { on(PreRenderCallback.EVENT, this::checkForGamePaused); }
private void checkForGamePaused() { private void checkForGamePaused() {
//#else //#else

View File

@@ -4,7 +4,7 @@ import com.replaymod.core.versions.MCVer;
import com.replaymod.recording.handler.RecordingEventHandler; import com.replaymod.recording.handler.RecordingEventHandler;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayNetworkHandler; 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.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
@@ -24,6 +24,8 @@ import java.io.IOException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
//#else
//$$ import net.minecraft.network.play.server.S01PacketJoinGame;
//#endif //#endif
@Mixin(ClientPlayNetworkHandler.class) @Mixin(ClientPlayNetworkHandler.class)
@@ -49,7 +51,11 @@ public abstract class MixinNetHandlerPlayClient {
* @param ci Callback info * @param ci Callback info
*/ */
//#if MC>=10800 //#if MC>=10800
//#if FABRIC>=1
@Inject(method = "onPlayerList", at=@At("HEAD")) @Inject(method = "onPlayerList", at=@At("HEAD"))
//#else
//$$ @Inject(method = "handlePlayerListItem", at=@At("HEAD"))
//#endif
public void recordOwnJoin(PlayerListS2CPacket packet, CallbackInfo ci) { public void recordOwnJoin(PlayerListS2CPacket packet, CallbackInfo ci) {
if (mcStatic.player == null) return; if (mcStatic.player == null) return;
@@ -101,7 +107,11 @@ public abstract class MixinNetHandlerPlayClient {
* @param packet The packet * @param packet The packet
* @param ci Callback info * @param ci Callback info
*/ */
//#if FABRIC>=1
@Inject(method = "onPlayerRespawn", at=@At("RETURN")) @Inject(method = "onPlayerRespawn", at=@At("RETURN"))
//#else
//$$ @Inject(method = "handleRespawn", at=@At("RETURN"))
//#endif
public void recordOwnRespawn(PlayerRespawnS2CPacket packet, CallbackInfo ci) { public void recordOwnRespawn(PlayerRespawnS2CPacket packet, CallbackInfo ci) {
RecordingEventHandler handler = getRecordingEventHandler(); RecordingEventHandler handler = getRecordingEventHandler();
if (handler != null) { if (handler != null) {

View File

@@ -71,9 +71,14 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa
// other clients so we have to record them manually. // other clients so we have to record them manually.
// E.g. Block place sounds // E.g. Block place sounds
//#if MC>=11400 //#if MC>=11400
//#if FABRIC>=1
@Inject(method = "playSound(Lnet/minecraft/entity/player/PlayerEntity;DDDLnet/minecraft/sound/SoundEvent;Lnet/minecraft/sound/SoundCategory;FF)V", @Inject(method = "playSound(Lnet/minecraft/entity/player/PlayerEntity;DDDLnet/minecraft/sound/SoundEvent;Lnet/minecraft/sound/SoundCategory;FF)V",
at = @At("HEAD")) at = @At("HEAD"))
//#else //#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", //$$ @Inject(method = "playSound(Lnet/minecraft/entity/player/EntityPlayer;DDDLnet/minecraft/util/SoundEvent;Lnet/minecraft/util/SoundCategory;FF)V",
//$$ at = @At("HEAD")) //$$ at = @At("HEAD"))
//#endif //#endif

View File

@@ -23,12 +23,16 @@ import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelInboundHandlerAdapter;
import net.minecraft.client.MinecraftClient; 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.Entity;
import net.minecraft.entity.data.DataTracker; import net.minecraft.entity.data.DataTracker;
import net.minecraft.network.NetworkState; import net.minecraft.network.NetworkState;
import net.minecraft.network.Packet; import net.minecraft.network.Packet;
import net.minecraft.util.PacketByteBuf; import net.minecraft.util.PacketByteBuf;
import net.minecraft.client.network.packet.*;
import net.minecraft.text.LiteralText; import net.minecraft.text.LiteralText;
import net.minecraft.util.crash.CrashReport; import net.minecraft.util.crash.CrashReport;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
@@ -46,7 +50,11 @@ import net.minecraft.client.network.packet.LoginSuccessS2CPacket;
//#endif //#endif
//#if MC>=10800 //#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.LoginCompressionS2CPacket;
import net.minecraft.client.network.packet.ResourcePackSendS2CPacket;
import net.minecraft.network.NetworkSide; import net.minecraft.network.NetworkSide;
//#endif //#endif

View File

@@ -149,7 +149,7 @@ public class ResourcePackRecorder {
//$$ //noinspection Convert2Lambda //$$ //noinspection Convert2Lambda
//$$ mc.addScheduledTask(() -> mc.displayGuiScreen(new GuiYesNo(new GuiYesNoCallback() { //$$ mc.addScheduledTask(() -> mc.displayGuiScreen(new GuiYesNo(new GuiYesNoCallback() {
//$$ @Override //$$ @Override
//$$ public void confirmResult(boolean result, int id) { //$$ public void confirmClicked(boolean result, int id) {
//#endif //#endif
if (serverData != null) { if (serverData != null) {
serverData.setResourcePackState(result ? ServerEntry.ResourcePackState.ENABLED : ServerEntry.ResourcePackState.DISABLED); serverData.setResourcePackState(result ? ServerEntry.ResourcePackState.ENABLED : ServerEntry.ResourcePackState.DISABLED);

View File

@@ -166,20 +166,32 @@ public class BlendMeshBuilder
//#endif //#endif
switch (element.getType()) { switch (element.getType()) {
case POSITION: case POSITION:
//#if MC>=11400
if (element.getFormat() != VertexFormatElement.Format.FLOAT) { if (element.getFormat() != VertexFormatElement.Format.FLOAT) {
//#else
//$$ if (element.getType() != VertexFormatElement.EnumType.FLOAT) {
//#endif
throw new UnsupportedOperationException("Only float is supported for position elements!"); throw new UnsupportedOperationException("Only float is supported for position elements!");
} }
posOffset = offset; posOffset = offset;
break; break;
case COLOR: case COLOR:
//#if MC>=11400
if (element.getFormat() != VertexFormatElement.Format.UBYTE) { 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!"); throw new UnsupportedOperationException("Only unsigned byte is supported for color elements!");
} }
colorOffset = offset; colorOffset = offset;
break; break;
case UV: case UV:
if (element.getIndex() != 0) break; if (element.getIndex() != 0) break;
//#if MC>=11400
if (element.getFormat() != VertexFormatElement.Format.FLOAT) { if (element.getFormat() != VertexFormatElement.Format.FLOAT) {
//#else
//$$ if (element.getType() != VertexFormatElement.EnumType.UBYTE) {
//#endif
throw new UnsupportedOperationException("Only float is supported for UV elements!"); throw new UnsupportedOperationException("Only float is supported for UV elements!");
} }
uvOffset = offset; uvOffset = offset;

View File

@@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Accessor;
//#if MC>=11400 //#if MC>=11400
@Mixin(targets = "net/minecraft/client/render/WorldRenderer/ChunkInfo") @Mixin(targets = "net.minecraft.client.render.WorldRenderer$ChunkInfo")
//#else //#else
//#if MC>=11300 //#if MC>=11300
//$$ @Mixin(targets = "net/minecraft/client/renderer/WorldRenderer$ContainerLocalRenderInformation") //$$ @Mixin(targets = "net/minecraft/client/renderer/WorldRenderer$ContainerLocalRenderInformation")

View File

@@ -21,7 +21,11 @@ import net.minecraft.client.render.entity.LivingEntityRenderer;
//$$ @Mixin(RendererLivingEntity.class) //$$ @Mixin(RendererLivingEntity.class)
//#endif //#endif
public abstract class MixinRenderLivingBase { public abstract class MixinRenderLivingBase {
//#if FABRIC>=1
@Inject(method = "method_4054", at = @At( @Inject(method = "method_4054", at = @At(
//#else
//$$ @Inject(method = "doRender(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At(
//#endif
value = "INVOKE", value = "INVOKE",
//#if MC>=10904 //#if MC>=10904
target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scaleAndTranslate(Lnet/minecraft/entity/LivingEntity;F)F", target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scaleAndTranslate(Lnet/minecraft/entity/LivingEntity;F)F",

View File

@@ -18,13 +18,13 @@ import static com.replaymod.core.versions.MCVer.*;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.world.BlockView; import net.minecraft.world.BlockView;
//#else //#else
//$$ import net.minecraft.client.renderer.GameRenderer; //$$ import net.minecraft.client.renderer.EntityRenderer;
//#endif //#endif
//#if MC>=11400 //#if MC>=11400
@Mixin(value = Camera.class) @Mixin(value = Camera.class)
//#else //#else
//$$ @Mixin(value = GameRenderer.class) //$$ @Mixin(value = EntityRenderer.class)
//#endif //#endif
public abstract class MixinCamera { public abstract class MixinCamera {
private EntityRendererHandler getHandler() { private EntityRendererHandler getHandler() {

View File

@@ -29,17 +29,48 @@ import net.minecraft.network.NetworkState;
import net.minecraft.network.ClientConnection; import net.minecraft.network.ClientConnection;
import net.minecraft.network.Packet; import net.minecraft.network.Packet;
import net.minecraft.util.PacketByteBuf; 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.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.text.Text;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.chunk.ChunkProvider; import net.minecraft.world.chunk.ChunkProvider;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; 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.class_4463;
import net.minecraft.client.network.packet.OpenContainerPacket;
import net.minecraft.client.network.packet.OpenWrittenBookS2CPacket;
import net.minecraft.entity.EntityType; import net.minecraft.entity.EntityType;
import net.minecraft.text.TranslatableText; import net.minecraft.text.TranslatableText;
//#else //#else
@@ -49,8 +80,6 @@ import net.minecraft.text.TranslatableText;
//$$ import net.minecraft.world.EnumDifficulty; //$$ import net.minecraft.world.EnumDifficulty;
//$$ import net.minecraft.world.WorldType; //$$ import net.minecraft.world.WorldType;
//$$ import net.minecraft.world.chunk.Chunk; //$$ 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.ArrayList;
//$$ import java.util.Collection; //$$ import java.util.Collection;
//$$ import java.util.Iterator; //$$ import java.util.Iterator;
@@ -65,6 +94,9 @@ import net.minecraft.util.Identifier;
//#if MC>=11200 //#if MC>=11200
import com.replaymod.core.utils.WrappedTimer; 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 //#endif
//#if MC>=11002 //#if MC>=11002
import net.minecraft.world.GameMode; import net.minecraft.world.GameMode;
@@ -72,7 +104,16 @@ import net.minecraft.world.GameMode;
//$$ import net.minecraft.world.WorldSettings.GameType; //$$ import net.minecraft.world.WorldSettings.GameType;
//#endif //#endif
//#if MC>=10904
import net.minecraft.client.network.packet.UnloadChunkS2CPacket;
//#else
//$$ import net.minecraft.network.play.server.S21PacketChunkData;
//#endif
//#if MC>=10800 //#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; import net.minecraft.network.NetworkSide;
//#else //#else
//$$ import org.apache.commons.io.Charsets; //$$ 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 //$$ public // All event handlers need to be public in 1.7.10
//#endif //#endif
class EventHandler extends EventRegistrations { class EventHandler extends EventRegistrations {
//#if MC>=11400 //#if FABRIC>=1
{ on(PreTickCallback.EVENT, this::onWorldTick); } { on(PreTickCallback.EVENT, this::onWorldTick); }
private void onWorldTick() { private void onWorldTick() {
//#else //#else
@@ -387,7 +428,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
//$$ Iterator<Entity> iter = loadedEntityList(world).iterator(); //$$ Iterator<Entity> iter = loadedEntityList(world).iterator();
//$$ while (iter.hasNext()) { //$$ while (iter.hasNext()) {
//$$ Entity entity = iter.next(); //$$ Entity entity = iter.next();
//$$ if (entity.removed) { //$$ if (entity.isDead) {
//$$ int chunkX = entity.chunkCoordX; //$$ int chunkX = entity.chunkCoordX;
//$$ int chunkY = entity.chunkCoordZ; //$$ int chunkY = entity.chunkCoordZ;
//$$ //$$
@@ -400,7 +441,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
//$$ if (entity.addedToChunk && world.getChunkProvider().chunkExists(chunkX, chunkY)) { //$$ if (entity.addedToChunk && world.getChunkProvider().chunkExists(chunkX, chunkY)) {
//#endif //#endif
//#endif //#endif
//$$ world.getChunk(chunkX, chunkY).removeEntity(entity); //$$ world.getChunkFromChunkCoords(chunkX, chunkY).removeEntity(entity);
//$$ } //$$ }
//$$ //$$
//$$ iter.remove(); //$$ iter.remove();
@@ -592,7 +633,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
p = new PlayerRespawnS2CPacket(respawn.getDimension(), respawn.getGeneratorType(), GameMode.SPECTATOR); p = new PlayerRespawnS2CPacket(respawn.getDimension(), respawn.getGeneratorType(), GameMode.SPECTATOR);
//#else //#else
//#if MC>=10809 //#if MC>=10809
//$$ p = new SPacketRespawn(respawn.func_212643_b(), //$$ p = new SPacketRespawn(respawn.getDimensionID(),
//$$ respawn.getDifficulty(), respawn.getWorldType(), GameType.SPECTATOR); //$$ respawn.getDifficulty(), respawn.getWorldType(), GameType.SPECTATOR);
//#else //#else
//$$ p = new S07PacketRespawn(respawn.func_149082_c(), //$$ p = new S07PacketRespawn(respawn.func_149082_c(),
@@ -622,14 +663,21 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
CameraEntity cent = replayHandler.getCameraEntity(); CameraEntity cent = replayHandler.getCameraEntity();
//#if MC>=10800 //#if MC>=10800
//#if MC>=10904 //#if MC>=11400
for (PlayerPositionLookS2CPacket.Flag relative : ppl.getFlags()) { for (PlayerPositionLookS2CPacket.Flag relative : ppl.getFlags()) {
//#else
//$$ for (Object relative : ppl.func_179834_f()) {
//#endif
if (relative == PlayerPositionLookS2CPacket.Flag.X if (relative == PlayerPositionLookS2CPacket.Flag.X
|| relative == PlayerPositionLookS2CPacket.Flag.Y || relative == PlayerPositionLookS2CPacket.Flag.Y
|| relative == PlayerPositionLookS2CPacket.Flag.Z) { || 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 return null; // At least one of the coordinates is relative, so we don't care
} }
} }

View File

@@ -64,16 +64,20 @@ import net.minecraft.network.NetworkSide;
import net.minecraft.network.Packet; import net.minecraft.network.Packet;
import net.minecraft.util.PacketByteBuf; import net.minecraft.util.PacketByteBuf;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
//#else //#else
//$$ import com.github.steveice10.mc.protocol.data.game.setting.Difficulty;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ 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; //$$ import static com.replaymod.core.versions.MCVer.FML_BUS;
//#endif //#endif
//#if FABRIC>=1
//#else
//$$ import com.github.steveice10.mc.protocol.data.game.setting.Difficulty;
//#endif
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.io.EOFException; import java.io.EOFException;
import java.io.IOException; import java.io.IOException;
@@ -279,7 +283,7 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe
} }
private class EventHandler extends EventRegistrations { private class EventHandler extends EventRegistrations {
//#if MC>=11400 //#if FABRIC>=1
{ on(PreTickCallback.EVENT, this::onTick); } { on(PreTickCallback.EVENT, this::onTick); }
private void onTick() { private void onTick() {
//#else //#else

View File

@@ -25,30 +25,34 @@ import net.minecraft.stat.StatHandler;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.math.Box; import net.minecraft.util.math.Box;
//#if MC>=11400 //#if FABRIC>=1
import com.replaymod.core.events.KeyBindingEventCallback; import com.replaymod.core.events.KeyBindingEventCallback;
import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.events.PreRenderCallback;
import com.replaymod.core.events.PreRenderHandCallback; import com.replaymod.core.events.PreRenderHandCallback;
import com.replaymod.replay.events.RenderSpectatorCrosshairCallback; import com.replaymod.replay.events.RenderSpectatorCrosshairCallback;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; 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 //#else
//$$ import com.replaymod.core.versions.MCVer; //$$ 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.EntityViewRenderEvent;
//$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; //$$ import net.minecraftforge.client.event.RenderGameOverlayEvent;
//$$ import net.minecraftforge.client.event.RenderHandEvent; //$$ import net.minecraftforge.client.event.RenderHandEvent;
//$$ import net.minecraftforge.common.MinecraftForge; //$$ import net.minecraftforge.common.MinecraftForge;
//$$ import net.minecraftforge.eventbus.api.EventPriority; //$$ import net.minecraftforge.eventbus.api.EventPriority;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ 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 //#if MC>=11300
//$$ import net.minecraft.util.math.RayTraceFluidMode; //$$ import net.minecraft.util.math.RayTraceFluidMode;
@@ -622,7 +626,7 @@ public class CameraEntity
private EventHandler() {} private EventHandler() {}
//#if MC>=11400 //#if FABRIC>=1
{ on(PreTickCallback.EVENT, this::onPreClientTick); } { on(PreTickCallback.EVENT, this::onPreClientTick); }
private void onPreClientTick() { private void onPreClientTick() {
//#else //#else
@@ -633,7 +637,7 @@ public class CameraEntity
updateArmYawAndPitch(); updateArmYawAndPitch();
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(PreRenderCallback.EVENT, this::onRenderUpdate); } { on(PreRenderCallback.EVENT, this::onRenderUpdate); }
private void onRenderUpdate() { private void onRenderUpdate() {
//#else //#else
@@ -644,11 +648,11 @@ public class CameraEntity
update(); update();
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(KeyBindingEventCallback.EVENT, CameraEntity.this::handleInputEvents); } { on(KeyBindingEventCallback.EVENT, CameraEntity.this::handleInputEvents); }
//#endif //#endif
//#if MC>=11400 //#if FABRIC>=1
{ on(RenderSpectatorCrosshairCallback.EVENT, this::shouldRenderSpectatorCrosshair); } { on(RenderSpectatorCrosshairCallback.EVENT, this::shouldRenderSpectatorCrosshair); }
private Boolean shouldRenderSpectatorCrosshair() { private Boolean shouldRenderSpectatorCrosshair() {
return canSpectate(mc.targetedEntity); return canSpectate(mc.targetedEntity);
@@ -678,7 +682,7 @@ public class CameraEntity
} }
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(PreRenderHandCallback.EVENT, this::onRenderHand); } { on(PreRenderHandCallback.EVENT, this::onRenderHand); }
private boolean onRenderHand() { private boolean onRenderHand() {
// Unless we are spectating another player, don't render our hand // Unless we are spectating another player, don't render our hand
@@ -693,13 +697,13 @@ public class CameraEntity
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void onRenderHand(RenderHandEvent event) { //$$ public void onRenderHand(RenderHandEvent event) {
//$$ // Unless we are spectating another player, don't render our hand //$$ // 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); //$$ event.setCanceled(true);
//$$ } //$$ }
//$$ } //$$ }
//#endif //#endif
//#if MC>=11400 //#if FABRIC>=1
private void onRenderHandMonitor() { private void onRenderHandMonitor() {
//#else //#else
//$$ @SubscribeEvent(priority = EventPriority.LOWEST) //$$ @SubscribeEvent(priority = EventPriority.LOWEST)
@@ -753,7 +757,7 @@ public class CameraEntity
private boolean heldItemTooltipsWasTrue; private boolean heldItemTooltipsWasTrue;
//#if MC>=11400 //#if FABRIC>=1
// FIXME fabric // FIXME fabric
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent

View File

@@ -1,4 +1,4 @@
//#if MC<11400 //#if FABRIC<=0
//$$ package com.replaymod.replay.events; //$$ package com.replaymod.replay.events;
//$$ //$$
//$$ import com.replaymod.replay.camera.CameraEntity; //$$ import com.replaymod.replay.camera.CameraEntity;

View File

@@ -3,21 +3,24 @@ package com.replaymod.replay.handler;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.ReplayModReplay;
import com.replaymod.replay.gui.screen.GuiReplayViewer; 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.GameMenuScreen;
import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.client.gui.screen.TitleScreen;
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
//#if MC>=11400 //#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
//#else //#else
//$$ import net.minecraftforge.client.event.GuiScreenEvent; //$$ import net.minecraftforge.client.event.GuiScreenEvent;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//#endif //#endif
//#if MC>=11400
import net.minecraft.client.gui.widget.ButtonWidget;
//#endif
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -36,14 +39,14 @@ public class GuiHandler extends EventRegistrations {
this.mod = mod; this.mod = mod;
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); } { on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); }
private void injectIntoIngameMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) { private void injectIntoIngameMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void injectIntoIngameMenu(GuiScreenEvent.InitGuiEvent.Post event) { //$$ public void injectIntoIngameMenu(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ GuiScreen guiScreen = getGui(event); //$$ Screen guiScreen = getGui(event);
//$$ List<GuiButton> buttonList = getButtonList(event); //$$ List<Widget> buttonList = getButtonList(event);
//#endif //#endif
if (!(guiScreen instanceof GameMenuScreen)) { if (!(guiScreen instanceof GameMenuScreen)) {
return; return;
@@ -163,13 +166,13 @@ public class GuiHandler extends EventRegistrations {
.forEach(button -> button.y -= 24); .forEach(button -> button.y -= 24);
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::ensureReplayStopped); } { on(InitScreenCallback.EVENT, this::ensureReplayStopped); }
private void ensureReplayStopped(Screen guiScreen, List<AbstractButtonWidget> buttonList) { private void ensureReplayStopped(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void ensureReplayStopped(GuiScreenEvent.InitGuiEvent event) { //$$ public void ensureReplayStopped(GuiScreenEvent.InitGuiEvent event) {
//$$ GuiScreen guiScreen = getGui(event); //$$ Screen guiScreen = getGui(event);
//#endif //#endif
if (!(guiScreen instanceof TitleScreen || guiScreen instanceof MultiplayerScreen)) { if (!(guiScreen instanceof TitleScreen || guiScreen instanceof MultiplayerScreen)) {
return; return;
@@ -190,18 +193,18 @@ public class GuiHandler extends EventRegistrations {
} }
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::injectIntoMainMenu); } { on(InitScreenCallback.EVENT, this::injectIntoMainMenu); }
private void injectIntoMainMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) { private void injectIntoMainMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
//#else //#else
//$$ @SubscribeEvent //$$ @SubscribeEvent
//$$ public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) { //$$ public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) {
//$$ GuiScreen guiScreen = getGui(event); //$$ Screen guiScreen = getGui(event);
//#endif //#endif
if (!(guiScreen instanceof TitleScreen)) { if (!(guiScreen instanceof TitleScreen)) {
return; return;
} }
ButtonWidget button = new InjectedButton( InjectedButton button = new InjectedButton(
guiScreen, guiScreen,
BUTTON_REPLAY_VIEWER, BUTTON_REPLAY_VIEWER,
guiScreen.width / 2 - 100, 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 Screen guiScreen;
public final int id; public final int id;
private Consumer<InjectedButton> onClick; private Consumer<InjectedButton> onClick;

View File

@@ -2,21 +2,18 @@
package com.replaymod.replay.mixin; package com.replaymod.replay.mixin;
import com.replaymod.replay.camera.CameraEntity; import com.replaymod.replay.camera.CameraEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.network.ClientPlayerInteractionManager; import net.minecraft.client.network.ClientPlayerInteractionManager;
import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.GameRenderer;
import net.minecraft.world.GameMode; import net.minecraft.world.GameMode;
import org.spongepowered.asm.mixin.Mixin; 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.At;
import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.Redirect;
import static com.replaymod.core.versions.MCVer.getMinecraft;
@Mixin(GameRenderer.class) @Mixin(GameRenderer.class)
public abstract class MixinGameRenderer { public abstract class MixinGameRenderer {
@Accessor
abstract MinecraftClient getClient();
@Redirect( @Redirect(
method = "renderHand", method = "renderHand",
at = @At( at = @At(
@@ -25,7 +22,7 @@ public abstract class MixinGameRenderer {
) )
) )
private GameMode getGameMode(ClientPlayerInteractionManager interactionManager) { private GameMode getGameMode(ClientPlayerInteractionManager interactionManager) {
ClientPlayerEntity camera = getClient().player; ClientPlayerEntity camera = getMinecraft().player;
if (camera instanceof CameraEntity) { if (camera instanceof CameraEntity) {
// alternative doesn't really matter, the caller only checks for equality to SPECTATOR // alternative doesn't really matter, the caller only checks for equality to SPECTATOR
return camera.isSpectator() ? GameMode.SPECTATOR : GameMode.SURVIVAL; return camera.isSpectator() ? GameMode.SPECTATOR : GameMode.SURVIVAL;

View File

@@ -23,7 +23,11 @@ import static com.replaymod.core.versions.MCVer.*;
//$$ @Mixin(RendererLivingEntity.class) //$$ @Mixin(RendererLivingEntity.class)
//#endif //#endif
public abstract class MixinRenderLivingBase { public abstract class MixinRenderLivingBase {
//#if FABRIC>=1
@Inject(method = "method_4055", at = @At("HEAD"), cancellable = true) @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<Boolean> ci) { private void replayModReplay_canRenderInvisibleName(LivingEntity entity, CallbackInfoReturnable<Boolean> ci) {
PlayerEntity thePlayer = getMinecraft().player; PlayerEntity thePlayer = getMinecraft().player;
if (thePlayer instanceof CameraEntity && entity.isInvisible()) { if (thePlayer instanceof CameraEntity && entity.isInvisible()) {

View File

@@ -2,7 +2,7 @@
//#if MC>=10800 && MC<11400 //#if MC>=10800 && MC<11400
//$$ package com.replaymod.replay.mixin; //$$ 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.gui.FontRenderer;
//$$ import net.minecraft.client.renderer.entity.RenderManager; //$$ import net.minecraft.client.renderer.entity.RenderManager;
//$$ import net.minecraft.entity.Entity; //$$ import net.minecraft.entity.Entity;

View File

@@ -18,8 +18,11 @@ public class MixinTileEntityEndPortalRenderer {
//#if MC>=11300 //#if MC>=11300
@Redirect(method = "method_3591", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/SystemUtil;getMeasuringTimeMs()J")) @Redirect(method = "method_3591", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/SystemUtil;getMeasuringTimeMs()J"))
//#else //#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 //#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 //#else
//#if MC>=10800 //#if MC>=10800
//$$ @Redirect(method = "func_180544_a", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J")) //$$ @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
//#endif //#endif
//#endif
private long replayModReplay_getEnchantmentTime() { private long replayModReplay_getEnchantmentTime() {
ReplayHandler replayHandler = ReplayModReplay.instance.getReplayHandler(); ReplayHandler replayHandler = ReplayModReplay.instance.getReplayHandler();
if (replayHandler != null) { if (replayHandler != null) {

View File

@@ -24,7 +24,7 @@ import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple; import org.apache.commons.lang3.tuple.Triple;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
//#if MC>=11400 //#if FABRIC>=1
import com.replaymod.core.events.PostRenderWorldCallback; import com.replaymod.core.events.PostRenderWorldCallback;
//#else //#else
//$$ import net.minecraftforge.client.event.RenderWorldLastEvent; //$$ import net.minecraftforge.client.event.RenderWorldLastEvent;
@@ -53,7 +53,7 @@ public class PathPreviewRenderer extends EventRegistrations {
this.replayHandler = replayHandler; this.replayHandler = replayHandler;
} }
//#if MC>=11400 //#if FABRIC>=1
{ on(PostRenderWorldCallback.EVENT, this::renderCameraPath); } { on(PostRenderWorldCallback.EVENT, this::renderCameraPath); }
private void renderCameraPath() { private void renderCameraPath() {
//#else //#else

View File

@@ -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()

View File

@@ -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 x posX
net.minecraft.client.particle.Particle y posY net.minecraft.client.particle.Particle y posY
net.minecraft.client.particle.Particle z posZ 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 cameraY interpPosY
net.minecraft.client.particle.Particle cameraZ interpPosZ net.minecraft.client.particle.Particle cameraZ interpPosZ
net.minecraft.client.particle.Particle buildGeometry() renderParticle() 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.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 net.minecraft.client.renderer.model.BakedQuad
net.minecraft.client.render.model.BakedQuad hasColor() hasTintIndex() net.minecraft.client.render.model.BakedQuad hasColor() hasTintIndex()
net.minecraft.client.render.model.BakedQuad getColorIndex() getTintIndex() 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 bind() bindBuffer()
net.minecraft.client.gl.GlBuffer unbind() unbindBuffer() net.minecraft.client.gl.GlBuffer unbind() unbindBuffer()
net.minecraft.block.BlockRenderLayer net.minecraft.util.BlockRenderLayer 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.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 net.minecraft.client.renderer.chunk.CompiledChunk
net.minecraft.client.render.chunk.ChunkRenderData isBufferInitialized() isLayerStarted() 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.EndPortalBlockEntityRenderer method_3591() render()
net.minecraft.client.render.block.entity.BlockEntityRenderer net.minecraft.client.renderer.tileentity.TileEntityRenderer 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.render.block.entity.BlockEntityRenderer method_3591() render()
net.minecraft.client.gui.hud.SpectatorHud net.minecraft.client.gui.GuiSpectator net.minecraft.client.gui.SpectatorGui net.minecraft.client.gui.GuiSpectator
net.minecraft.client.gui.hud.SpectatorHud method_1976() onHotbarSelected() net.minecraft.client.gui.SpectatorGui method_1976() onHotbarSelected()
net.minecraft.entity.passive.AnimalEntity net.minecraft.entity.passive.EntityAnimal 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 net.minecraft.client.renderer.ItemRenderer
net.minecraft.client.render.item.ItemRenderer colorMap itemColors 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 append() appendSibling()
net.minecraft.text.Text asFormattedString() getFormattedText() net.minecraft.text.Text asFormattedString() getFormattedText()
net.minecraft.text.Style net.minecraft.util.text.Style net.minecraft.text.Style net.minecraft.util.text.Style
net.minecraft.text.LiteralText net.minecraft.util.text.TextComponentString net.minecraft.util.text.StringTextComponent net.minecraft.util.text.TextComponentString
net.minecraft.text.TranslatableText net.minecraft.util.text.TextComponentTranslation net.minecraft.util.text.TranslationTextComponent net.minecraft.util.text.TextComponentTranslation
net.minecraft.util.Formatting net.minecraft.util.text.TextFormatting net.minecraft.util.Formatting net.minecraft.util.text.TextFormatting
net.minecraft.client.render.VisibleRegion net.minecraft.client.renderer.culling.ICamera 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.renderer.entity.LivingRenderer net.minecraft.client.renderer.entity.RenderLivingBase
net.minecraft.client.render.entity.LivingEntityRenderer method_4055() canRenderName() net.minecraft.client.renderer.entity.LivingRenderer method_4055() canRenderName()
net.minecraft.client.render.entity.LivingEntityRenderer render() renderModel() net.minecraft.client.renderer.entity.LivingRenderer render() renderModel()
net.minecraft.client.render.entity.LivingEntityRenderer scaleAndTranslate() prepareScale() net.minecraft.client.renderer.entity.LivingRenderer scaleAndTranslate() prepareScale()
net.minecraft.client.render.entity.LivingEntityRenderer method_4054() doRender() net.minecraft.client.renderer.entity.LivingRenderer method_4054() doRender()
net.minecraft.client.render.entity.ArrowEntityRenderer net.minecraft.client.renderer.entity.RenderArrow net.minecraft.client.renderer.entity.TippedArrowRenderer net.minecraft.client.renderer.entity.RenderArrow
net.minecraft.client.render.entity.EntityRenderer net.minecraft.client.renderer.entity.Render net.minecraft.client.renderer.entity.EntityRenderer net.minecraft.client.renderer.entity.Render
net.minecraft.client.render.entity.EntityRenderer isVisible() shouldRender() net.minecraft.client.renderer.entity.EntityRenderer isVisible() shouldRender()
net.minecraft.client.render.entity.EntityRenderer render() doRender() net.minecraft.client.renderer.entity.EntityRenderer render() doRender()
net.minecraft.client.render.entity.EntityRenderer renderLabel() renderLivingLabel() net.minecraft.client.renderer.entity.EntityRenderer renderLabel() renderLivingLabel()
net.minecraft.client.network.ClientPlayerInteractionManager net.minecraft.client.multiplayer.PlayerControllerMP net.minecraft.client.multiplayer.PlayerController net.minecraft.client.multiplayer.PlayerControllerMP
net.minecraft.client.network.ClientPlayerInteractionManager client mc net.minecraft.client.multiplayer.PlayerController client mc
net.minecraft.client.network.ClientPlayerInteractionManager networkHandler connection net.minecraft.client.multiplayer.PlayerController networkHandler connection
net.minecraft.client.network.ClientPlayerInteractionManager isFlyingLocked() isSpectatorMode() net.minecraft.client.multiplayer.PlayerController isFlyingLocked() isSpectatorMode()
net.minecraft.client.network.ClientPlayerInteractionManager getCurrentGameMode() getCurrentGameType() net.minecraft.client.multiplayer.PlayerController getCurrentGameMode() getCurrentGameType()
com.mojang.blaze3d.platform.GLX net.minecraft.client.renderer.OpenGlHelper com.mojang.blaze3d.platform.GLX net.minecraft.client.renderer.OpenGlHelper
com.mojang.blaze3d.platform.GLX isUsingFBOs() isFramebufferEnabled() com.mojang.blaze3d.platform.GLX isUsingFBOs() isFramebufferEnabled()
net.minecraft.entity.data.TrackedData net.minecraft.network.datasync.DataParameter 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.renderer.chunk.ChunkRender net.minecraft.client.renderer.chunk.RenderChunk
net.minecraft.client.render.chunk.ChunkRenderer setOrigin() setPosition() net.minecraft.client.renderer.chunk.ChunkRender setOrigin() setPosition()
net.minecraft.client.render.chunk.ChunkRenderer getOrigin() getPosition() net.minecraft.client.renderer.chunk.ChunkRender getOrigin() getPosition()
net.minecraft.client.render.chunk.ChunkRenderer getData() getCompiledChunk() net.minecraft.client.renderer.chunk.ChunkRender getData() getCompiledChunk()
net.minecraft.client.render.chunk.ChunkRenderer getGlBuffer() getVertexBufferByLayer() net.minecraft.client.renderer.chunk.ChunkRender getGlBuffer() getVertexBufferByLayer()
net.minecraft.client.render.chunk.ChunkRenderer scheduleRebuild() setNeedsUpdate() net.minecraft.client.renderer.chunk.ChunkRender scheduleRebuild() setNeedsUpdate()
net.minecraft.client.render.chunk.ChunkRenderer unscheduleRebuild() clearNeedsUpdate() net.minecraft.client.renderer.chunk.ChunkRender unscheduleRebuild() clearNeedsUpdate()
net.minecraft.client.util.GlAllocationUtils net.minecraft.client.renderer.GLAllocation net.minecraft.client.util.GlAllocationUtils net.minecraft.client.renderer.GLAllocation
net.minecraft.client.util.GlAllocationUtils allocateFloatBuffer() createDirectFloatBuffer() net.minecraft.client.util.GlAllocationUtils allocateFloatBuffer() createDirectFloatBuffer()
net.minecraft.client.util.GlAllocationUtils allocateByteBuffer() createDirectByteBuffer() 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 net.minecraft.tileentity.TileEntity
net.minecraft.block.entity.BlockEntity toTag() write() net.minecraft.block.entity.BlockEntity toTag() write()
net.minecraft.client.render.BackgroundRenderer net.minecraft.client.renderer.FogRenderer 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 draw() framebufferRender()
net.minecraft.client.gl.GlFramebuffer resize() createBindFramebuffer() net.minecraft.client.gl.GlFramebuffer resize() createBindFramebuffer()
net.minecraft.client.gl.GlFramebuffer initFbo() createFramebuffer() net.minecraft.client.gl.GlFramebuffer initFbo() createFramebuffer()
net.minecraft.client.gui.screen.GameMenuScreen net.minecraft.client.gui.GuiIngameMenu net.minecraft.client.gui.screen.IngameMenuScreen net.minecraft.client.gui.GuiIngameMenu
net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen net.minecraft.client.gui.GuiMultiplayer net.minecraft.client.gui.screen.MultiplayerScreen net.minecraft.client.gui.GuiMultiplayer
net.minecraft.client.gui.screen.world.SelectWorldScreen net.minecraft.client.gui.GuiWorldSelection 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 net.minecraft.network.datasync.EntityDataManager
net.minecraft.entity.data.DataTracker startTracking() register() 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 net.minecraft.network.datasync.EntityDataManager.DataEntry
net.minecraft.entity.data.DataTracker.Entry getData() getKey() net.minecraft.entity.data.DataTracker.Entry getData() getKey()
net.minecraft.entity.data.DataTracker.Entry get() getValue() net.minecraft.entity.data.DataTracker.Entry get() getValue()
# Note: GuiButton has been split into ButtonWidget and AbstractButtonWidget (now shared with e.g. checkboxes), # Note: GuiButton has been split into Button and Widget (now shared with e.g. checkboxes),
# most members are actually on the latter # most members are actually on the latter (there's also AbstractButton in the middle, but it isn't interesting)
net.minecraft.client.gui.widget.ButtonWidget net.minecraft.client.gui.GuiButton net.minecraft.client.gui.widget.Widget net.minecraft.client.gui.GuiButton
net.minecraft.client.gui.widget.AbstractButtonWidget active net.minecraft.client.gui.GuiButton enabled net.minecraft.client.gui.widget.button.AbstractButton active net.minecraft.client.gui.GuiButton enabled
net.minecraft.client.gui.screen.TitleScreen net.minecraft.client.gui.GuiMainMenu net.minecraft.client.gui.screen.MainMenuScreen net.minecraft.client.gui.GuiMainMenu
net.minecraft.client.gui.screen.TitleScreen realmsNotificationGui realmsNotification net.minecraft.client.gui.screen.MainMenuScreen realmsNotificationGui realmsNotification
net.minecraft.realms.RealmsScreenProxy net.minecraft.client.gui.GuiScreenRealmsProxy net.minecraft.realms.RealmsScreenProxy net.minecraft.client.gui.GuiScreenRealmsProxy
net.minecraft.resource.ResourceNotFoundException net.minecraft.resources.ResourcePackFileNotFoundException net.minecraft.resource.ResourceNotFoundException net.minecraft.resources.ResourcePackFileNotFoundException
net.minecraft.resource.ResourcePack net.minecraft.resources.IResourcePack net.minecraft.resource.ResourcePack net.minecraft.resources.IResourcePack
net.minecraft.resource.ResourcePack findResources() getAllResourceLocations() net.minecraft.resource.ResourcePack findResources() getAllResourceLocations()
net.minecraft.resource.ResourcePack getNamespaces() getResourceNamespaces() net.minecraft.resource.ResourcePack getNamespaces() getResourceNamespaces()
net.minecraft.resource.ResourceType net.minecraft.resources.ResourcePackType net.minecraft.resource.ResourceType net.minecraft.resources.ResourcePackType
net.minecraft.network.NetworkSide net.minecraft.network.EnumPacketDirection net.minecraft.network.PacketDirection net.minecraft.network.EnumPacketDirection
net.minecraft.network.NetworkState net.minecraft.network.EnumConnectionState net.minecraft.network.ProtocolType net.minecraft.network.EnumConnectionState
net.minecraft.network.NetworkState field_11688 LOGIN net.minecraft.network.ProtocolType field_11688 LOGIN
net.minecraft.network.NetworkState field_11690 PLAY net.minecraft.network.ProtocolType field_11690 PLAY
net.minecraft.network.NetworkState getPacketHandler() getPacket() net.minecraft.network.ProtocolType getPacketHandler() getPacket()
net.minecraft.network.Packet read() readPacketData() net.minecraft.network.IPacket net.minecraft.network.Packet
net.minecraft.network.Packet write() writePacketData() net.minecraft.network.IPacket read() readPacketData()
net.minecraft.network.IPacket write() writePacketData()
net.minecraft.world.GameMode net.minecraft.world.GameType net.minecraft.world.GameMode net.minecraft.world.GameType
net.minecraft.client.gui.screen.DownloadingTerrainScreen net.minecraft.client.gui.GuiDownloadTerrain net.minecraft.client.gui.screen.DownloadTerrainScreen net.minecraft.client.gui.GuiDownloadTerrain
net.minecraft.client.gui.screen.NoticeScreen net.minecraft.client.gui.GuiErrorScreen net.minecraft.client.gui.screen.AlertScreen net.minecraft.client.gui.GuiErrorScreen
net.minecraft.client.network.OtherClientPlayerEntity net.minecraft.client.entity.EntityOtherPlayerMP net.minecraft.client.entity.player.RemoteClientPlayerEntity net.minecraft.client.entity.EntityOtherPlayerMP
net.minecraft.world.Difficulty net.minecraft.world.EnumDifficulty 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.sound.SoundCategory net.minecraft.util.SoundCategory
net.minecraft.util.profiler.Profiler net.minecraft.profiler.Profiler net.minecraft.profiler.IProfiler net.minecraft.profiler.Profiler
net.minecraft.client.render.GameRenderer net.minecraft.client.renderer.GameRenderer net.minecraft.client.renderer.GameRenderer net.minecraft.client.renderer.EntityRenderer
net.minecraft.client.render.GameRenderer firstPersonRenderer itemRenderer net.minecraft.client.renderer.GameRenderer firstPersonRenderer itemRenderer
net.minecraft.client.render.GameRenderer client mc net.minecraft.client.renderer.GameRenderer client mc
net.minecraft.client.render.GameRenderer render() updateCameraAndRender() net.minecraft.client.renderer.GameRenderer render() updateCameraAndRender()
net.minecraft.client.render.GameRenderer applyCameraTransformations() setupCameraTransform() net.minecraft.client.renderer.GameRenderer applyCameraTransformations() setupCameraTransform()
net.minecraft.client.render.GameRenderer renderAboveClouds() renderCloudsCheck() net.minecraft.client.renderer.GameRenderer renderAboveClouds() renderCloudsCheck()
net.minecraft.client.render.WorldRenderer net.minecraft.client.renderer.WorldRenderer net.minecraft.client.renderer.GameRenderer func_215308_a() renderHand()
net.minecraft.client.render.WorldRenderer setBlockBreakingProgress() sendBlockBreakProgress() net.minecraft.client.renderer.WorldRenderer net.minecraft.client.renderer.RenderGlobal
net.minecraft.client.render.WorldRenderer drawHighlightedBlockOutline() drawSelectionBox() net.minecraft.client.renderer.WorldRenderer setBlockBreakingProgress() sendBlockBreakProgress()
net.minecraft.client.render.WorldRenderer chunkBatcher renderDispatcher net.minecraft.client.renderer.WorldRenderer drawHighlightedBlockOutline() drawSelectionBox()
net.minecraft.client.render.WorldRenderer chunkInfos renderInfos net.minecraft.client.renderer.WorldRenderer chunkBatcher renderDispatcher
net.minecraft.client.render.WorldRenderer chunkRenderers chunksToUpdate net.minecraft.client.renderer.WorldRenderer chunkInfos renderInfos
net.minecraft.client.render.WorldRenderer terrainUpdateNecessary displayListEntitiesDirty net.minecraft.client.renderer.WorldRenderer chunkRenderers chunksToUpdate
net.minecraft.client.render.WorldRenderer field_4076 renderEntitiesStartupCounter net.minecraft.client.renderer.WorldRenderer terrainUpdateNecessary displayListEntitiesDirty
net.minecraft.client.render.WorldRenderer setUpTerrain() setupTerrain() net.minecraft.client.renderer.WorldRenderer field_4076 renderEntitiesStartupCounter
net.minecraft.client.render.WorldRenderer setWorld() setWorldAndLoadRenderers() net.minecraft.client.renderer.WorldRenderer setUpTerrain() setupTerrain()
net.minecraft.client.render.WorldRenderer reload() loadRenderers() net.minecraft.client.renderer.WorldRenderer setWorld() setWorldAndLoadRenderers()
net.minecraft.client.renderer.WorldRenderer reload() loadRenderers()
net.minecraft.world.level.LevelProperties net.minecraft.world.storage.WorldInfo net.minecraft.world.level.LevelProperties net.minecraft.world.storage.WorldInfo
com.mojang.blaze3d.platform.GlStateManager popAttributes() popAttrib() com.mojang.blaze3d.platform.GlStateManager popAttributes() popAttrib()
com.mojang.blaze3d.platform.GlStateManager disableColorLogicOp() disableColorLogic() com.mojang.blaze3d.platform.GlStateManager disableColorLogicOp() disableColorLogic()
com.mojang.blaze3d.platform.GlStateManager disableTexture() disableTexture2D() com.mojang.blaze3d.platform.GlStateManager disableTexture() disableTexture2D()
com.mojang.blaze3d.platform.GlStateManager enableColorLogicOp() enableColorLogic() com.mojang.blaze3d.platform.GlStateManager enableColorLogicOp() enableColorLogic()
com.mojang.blaze3d.platform.GlStateManager enableTexture() enableTexture2D() 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 net.minecraft.client.renderer.GlStateManager
com.mojang.blaze3d.platform.GlStateManager.CapabilityTracker net.minecraft.client.renderer.GlStateManager.BooleanState com.mojang.blaze3d.platform.GlStateManager.CapabilityTracker net.minecraft.client.renderer.GlStateManager.BooleanState
com.mojang.blaze3d.platform.GlStateManager.FogState net.minecraft.client.renderer.GlStateManager.FogState 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 isValidChar() isAllowedCharacter()
net.minecraft.SharedConstants net.minecraft.util.SharedConstants net.minecraft.SharedConstants net.minecraft.util.SharedConstants
net.minecraft.server.MinecraftServer getLevelName() getWorldName() net.minecraft.server.MinecraftServer getLevelName() getWorldName()
net.minecraft.client.Keyboard onKey() onKeyEvent() com.replaymod.core.versions.MCVer.Keyboard onKey() onKeyEvent()
net.minecraft.client.Keyboard pollDebugCrash() tick() com.replaymod.core.versions.MCVer.Keyboard pollDebugCrash() tick()
net.minecraft.client.Keyboard getClipboard() getClipboardString() com.replaymod.core.versions.MCVer.Keyboard getClipboard() getClipboardString()
net.minecraft.client.Keyboard net.minecraft.client.KeyboardListener com.replaymod.core.versions.MCVer.Keyboard setClipboard() setClipboardString()
net.minecraft.client.Keyboard setClipboard() setClipboardString()
net.minecraft.client.MinecraftClient crashed hasCrashed net.minecraft.client.MinecraftClient crashed hasCrashed
net.minecraft.client.MinecraftClient setCrashReport() crashed() net.minecraft.client.MinecraftClient setCrashReport() crashed()
net.minecraft.client.MinecraftClient crashReport crashReporter 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.ChatHud net.minecraft.client.gui.GuiNewChat
net.minecraft.client.gui.hud.InGameHud getChatHud() getChatGUI() net.minecraft.client.gui.hud.InGameHud getChatHud() getChatGUI()
net.minecraft.client.gui.hud.InGameHud net.minecraft.client.gui.GuiIngame net.minecraft.client.gui.hud.InGameHud net.minecraft.client.gui.GuiIngame
net.minecraft.client.options.GameOptions net.minecraft.client.GameSettings net.minecraft.client.GameSettings net.minecraft.client.settings.GameSettings
net.minecraft.client.options.GameOptions debugEnabled showDebugInfo net.minecraft.client.GameSettings debugEnabled showDebugInfo
net.minecraft.client.options.GameOptions viewDistance renderDistanceChunks net.minecraft.client.GameSettings viewDistance renderDistanceChunks
net.minecraft.client.options.GameOptions hudHidden hideGUI net.minecraft.client.GameSettings hudHidden hideGUI
net.minecraft.client.options.GameOptions gamma gammaSetting net.minecraft.client.GameSettings gamma gammaSetting
net.minecraft.client.options.GameOptions keysAll keyBindings net.minecraft.client.GameSettings keysAll keyBindings
net.minecraft.client.options.GameOptions keyChat keyBindChat net.minecraft.client.GameSettings keyChat keyBindChat
net.minecraft.client.options.GameOptions keyCommand keyBindCommand net.minecraft.client.GameSettings keyCommand keyBindCommand
net.minecraft.client.options.GameOptions keyAttack keyBindAttack net.minecraft.client.GameSettings keyAttack keyBindAttack
net.minecraft.client.options.GameOptions keyUse keyBindUseItem net.minecraft.client.GameSettings keyUse keyBindUseItem
net.minecraft.client.options.GameOptions keySneak keyBindSneak net.minecraft.client.GameSettings keySneak keyBindSneak
net.minecraft.client.options.GameOptions keyForward keyBindForward net.minecraft.client.GameSettings keyForward keyBindForward
net.minecraft.client.options.GameOptions keyBack keyBindBack net.minecraft.client.GameSettings keyBack keyBindBack
net.minecraft.client.options.GameOptions keyLeft keyBindLeft net.minecraft.client.GameSettings keyLeft keyBindLeft
net.minecraft.client.options.GameOptions keyRight keyBindRight net.minecraft.client.GameSettings keyRight keyBindRight
net.minecraft.client.options.GameOptions keyJump keyBindJump net.minecraft.client.GameSettings keyJump keyBindJump
net.minecraft.client.options.GameOptions getSoundVolume() getSoundLevel() net.minecraft.client.GameSettings getSoundVolume() getSoundLevel()
net.minecraft.client.options.GameOptions setSoundVolume() setSoundLevel() net.minecraft.client.GameSettings setSoundVolume() setSoundLevel()
net.minecraft.client.options.KeyBinding net.minecraft.client.settings.KeyBinding net.minecraft.client.options.KeyBinding net.minecraft.client.settings.KeyBinding
net.minecraft.client.options.KeyBinding timesPressed pressTime net.minecraft.client.options.KeyBinding timesPressed pressTime
net.minecraft.client.options.KeyBinding wasPressed() isPressed() 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 net.minecraft.client.renderer.vertex.VertexFormat
net.minecraft.client.render.VertexFormat getVertexSize() getSize() net.minecraft.client.render.VertexFormat getVertexSize() getSize()
net.minecraft.client.render.VertexFormat getElementOffset() getOffset() net.minecraft.client.render.VertexFormat getElementOffset() getOffset()
net.minecraft.client.render.VertexFormatElement net.minecraft.client.renderer.vertex.VertexFormatElement net.minecraft.client.renderer.vertex.VertexFormatElement net.minecraft.client.renderer.vertex.VertexFormatElement
net.minecraft.client.render.VertexFormatElement getType() getUsage() net.minecraft.client.renderer.vertex.VertexFormatElement.Type net.minecraft.client.renderer.vertex.VertexFormatElement.EnumType
net.minecraft.client.render.VertexFormatElement getFormat() getType()
net.minecraft.client.render.VertexFormatElement.Format net.minecraft.client.renderer.vertex.VertexFormatElement.EnumType
net.minecraft.client.render.VertexFormats net.minecraft.client.renderer.vertex.DefaultVertexFormats 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_LMAP BLOCK
net.minecraft.client.render.VertexFormats POSITION_COLOR_UV_NORMAL ITEM 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 setFullscreen() update()
net.minecraft.client.util.Window method_4493() setupOverlayRendering() net.minecraft.client.util.Window method_4493() setupOverlayRendering()
net.minecraft.client.util.Window net.minecraft.client.MainWindow net.minecraft.client.util.Window net.minecraft.client.MainWindow
net.minecraft.resource.DirectoryResourcePack net.minecraft.resources.FolderPack net.minecraft.resources.AbstractResourcePack net.minecraft.resources.AbstractResourcePack
net.minecraft.resource.AbstractFileResourcePack net.minecraft.resources.AbstractResourcePack net.minecraft.resources.AbstractResourcePack openFile() getInputStream()
net.minecraft.resource.AbstractFileResourcePack openFile() getInputStream() net.minecraft.resources.AbstractResourcePack containsFile() resourceExists()
net.minecraft.resource.AbstractFileResourcePack containsFile() resourceExists() net.minecraft.resources.AbstractResourcePack base file
net.minecraft.resource.AbstractFileResourcePack base file
net.minecraft.resource.ResourcePackContainer net.minecraft.resources.ResourcePackInfo net.minecraft.resource.ResourcePackContainer net.minecraft.resources.ResourcePackInfo
net.minecraft.resource.ResourcePackContainer.Factory net.minecraft.resources.ResourcePackInfo.IFactory net.minecraft.resource.ResourcePackContainer.Factory net.minecraft.resources.ResourcePackInfo.IFactory
net.minecraft.resource.ResourcePackContainer.InsertionPosition net.minecraft.resources.ResourcePackInfo.Priority 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 getGeneratorType() getWorldType()
net.minecraft.world.World getChunkManager() getChunkProvider() net.minecraft.world.World getChunkManager() getChunkProvider()
net.minecraft.world.World getEntityById() getEntityByID() 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.world.level.LevelGeneratorType net.minecraft.world.WorldType
net.minecraft.client.render.entity.EntityRenderDispatcher net.minecraft.client.renderer.entity.RenderManager net.minecraft.client.renderer.entity.EntityRendererManager net.minecraft.client.renderer.entity.RenderManager
net.minecraft.client.render.entity.EntityRenderDispatcher cameraYaw playerViewY net.minecraft.client.renderer.entity.EntityRendererManager cameraYaw playerViewY
net.minecraft.client.render.entity.EntityRenderDispatcher cameraPitch playerViewX net.minecraft.client.renderer.entity.EntityRendererManager cameraPitch playerViewX
net.minecraft.client.render.entity.EntityRenderDispatcher configure() cacheActiveRenderInfo() net.minecraft.client.renderer.entity.EntityRendererManager configure() cacheActiveRenderInfo()
net.minecraft.client.render.entity.EntityRenderDispatcher render() renderEntityStatic() net.minecraft.client.renderer.entity.EntityRendererManager render() renderEntityStatic()
net.minecraft.util.SystemUtil net.minecraft.util.Util net.minecraft.util.SystemUtil net.minecraft.util.Util
net.minecraft.util.SystemUtil getMeasuringTimeMs() milliTime() net.minecraft.util.SystemUtil getMeasuringTimeMs() milliTime()
net.minecraft.util.SystemUtil getOperatingSystem() getOSType() 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 net.minecraft.client.util.InputMappings
net.minecraft.client.util.InputUtil isKeyPressed() isKeyDown() net.minecraft.client.util.InputUtil isKeyPressed() isKeyDown()
net.minecraft.client.util.InputUtil$KeyCode net.minecraft.client.util.InputMappings$Input 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.resources.DownloadingPackFinder func_217818_a() downloadResourcePack()
net.minecraft.client.resource.ClientResourcePackCreator loadServerPack() func_195741_a() net.minecraft.client.resources.DownloadingPackFinder func_217816_a() setServerResourcePack()
net.minecraft.client.resource.ClientResourcePackCreator download() downloadResourcePack() net.minecraft.client.entity.player.ClientPlayerEntity net.minecraft.client.entity.EntityPlayerSP
net.minecraft.client.network.ClientPlayerEntity net.minecraft.client.entity.EntityPlayerSP net.minecraft.client.entity.player.ClientPlayerEntity client mc
net.minecraft.client.network.ClientPlayerEntity client mc net.minecraft.client.entity.player.ClientPlayerEntity renderYaw renderArmYaw
net.minecraft.client.network.ClientPlayerEntity renderYaw renderArmYaw net.minecraft.client.entity.player.ClientPlayerEntity renderPitch renderArmPitch
net.minecraft.client.network.ClientPlayerEntity renderPitch renderArmPitch net.minecraft.client.entity.player.ClientPlayerEntity lastRenderYaw prevRenderArmYaw
net.minecraft.client.network.ClientPlayerEntity lastRenderYaw prevRenderArmYaw net.minecraft.client.entity.player.ClientPlayerEntity lastRenderPitch prevRenderArmPitch
net.minecraft.client.network.ClientPlayerEntity lastRenderPitch prevRenderArmPitch net.minecraft.client.entity.player.AbstractClientPlayerEntity net.minecraft.client.entity.AbstractClientPlayer
net.minecraft.client.network.AbstractClientPlayerEntity net.minecraft.client.entity.AbstractClientPlayer net.minecraft.client.entity.player.AbstractClientPlayerEntity getSkinTexture() getLocationSkin()
net.minecraft.client.network.AbstractClientPlayerEntity getSkinTexture() getLocationSkin() net.minecraft.client.entity.player.AbstractClientPlayerEntity getModel() getSkinType()
net.minecraft.client.network.AbstractClientPlayerEntity getModel() getSkinType() net.minecraft.client.network.login.ClientLoginNetHandler net.minecraft.client.network.NetHandlerLoginClient
net.minecraft.client.network.ClientLoginNetworkHandler net.minecraft.client.network.NetHandlerLoginClient net.minecraft.client.network.login.ClientLoginNetHandler connection networkManager
net.minecraft.client.network.ClientLoginNetworkHandler connection networkManager net.minecraft.client.network.login.ClientLoginNetHandler onQueryRequest() func_209521_a()
net.minecraft.client.network.ClientLoginNetworkHandler onQueryRequest() func_209521_a() net.minecraft.client.network.login.ClientLoginNetHandler onLoginSuccess() handleLoginSuccess()
net.minecraft.client.network.ClientLoginNetworkHandler onLoginSuccess() handleLoginSuccess() net.minecraft.client.network.play.ClientPlayNetHandler net.minecraft.client.network.NetHandlerPlayClient
net.minecraft.client.network.ClientPlayNetworkHandler net.minecraft.client.network.NetHandlerPlayClient net.minecraft.client.network.play.ClientPlayNetHandler getConnection() getNetworkManager()
net.minecraft.client.network.ClientPlayNetworkHandler getConnection() getNetworkManager() net.minecraft.client.network.play.ClientPlayNetHandler playerListEntries playerInfoMap
net.minecraft.client.network.ClientPlayNetworkHandler playerListEntries playerInfoMap net.minecraft.client.network.play.ClientPlayNetHandler onPlayerList() handlePlayerListItem()
net.minecraft.client.network.ClientPlayNetworkHandler onPlayerList() handlePlayerListItem() net.minecraft.client.network.play.ClientPlayNetHandler onPlayerRespawn() handleRespawn()
net.minecraft.client.network.ClientPlayNetworkHandler onPlayerRespawn() handleRespawn() net.minecraft.client.network.play.ClientPlayNetHandler getPlayerListEntry() getPlayerInfo()
net.minecraft.client.network.ClientPlayNetworkHandler getPlayerListEntry() getPlayerInfo() net.minecraft.client.network.play.NetworkPlayerInfo net.minecraft.client.network.NetworkPlayerInfo
net.minecraft.client.network.PlayerListEntry net.minecraft.client.network.NetworkPlayerInfo net.minecraft.client.network.play.NetworkPlayerInfo hasSkinTexture() hasLocationSkin()
net.minecraft.client.network.PlayerListEntry hasSkinTexture() hasLocationSkin() net.minecraft.client.network.play.NetworkPlayerInfo getSkinTexture() getLocationSkin()
net.minecraft.client.network.PlayerListEntry getSkinTexture() getLocationSkin()
net.minecraft.client.util.DefaultSkinHelper net.minecraft.client.resources.DefaultPlayerSkin net.minecraft.client.util.DefaultSkinHelper net.minecraft.client.resources.DefaultPlayerSkin
net.minecraft.client.util.DefaultSkinHelper getTexture() getDefaultSkin() 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 net.minecraft.entity.player.EntityPlayer
net.minecraft.entity.player.PlayerEntity selectedItem itemStackMainHand net.minecraft.entity.player.PlayerEntity selectedItem itemStackMainHand
net.minecraft.entity.player.PlayerEntity isSleeping() isPlayerSleeping() 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 getAttackCooldownProgressPerTick() getCooldownPeriod()
net.minecraft.entity.player.PlayerEntity getAttackCooldownProgress() getCooledAttackStrength() net.minecraft.entity.player.PlayerEntity getAttackCooldownProgress() getCooledAttackStrength()
net.minecraft.entity.player.PlayerEntity isSkinOverlayVisible() isWearing() 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 net.minecraft.entity.EntityLivingBase
net.minecraft.entity.LivingEntity headYaw rotationYawHead net.minecraft.entity.LivingEntity headYaw rotationYawHead
net.minecraft.entity.LivingEntity prevHeadYaw prevRotationYawHead 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.LivingEntity tickMovement() livingTick()
net.minecraft.entity.Entity afterSpawn() preparePlayerToSpawn() net.minecraft.entity.Entity afterSpawn() preparePlayerToSpawn()
net.minecraft.entity.Entity getVehicle() getRidingEntity() 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 getUuid() getUniqueID()
net.minecraft.entity.Entity isInsideWall() isEntityInsideOpaqueBlock() net.minecraft.entity.Entity isInsideWall() isEntityInsideOpaqueBlock()
net.minecraft.entity.Entity isOnFire() isBurning() 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 net.minecraft.world.chunk.Chunk
net.minecraft.world.chunk.WorldChunk getEntitySectionArray() getEntityLists() net.minecraft.world.chunk.WorldChunk getEntitySectionArray() getEntityLists()
net.minecraft.util.math.Box net.minecraft.util.math.AxisAlignedBB net.minecraft.util.math.Box net.minecraft.util.math.AxisAlignedBB
net.minecraft.world.RayTraceContext net.minecraft.util.math.RayTraceResult net.minecraft.util.math.RayTraceContext net.minecraft.util.math.RayTraceResult
net.minecraft.entity.EquipmentSlot net.minecraft.inventory.EntityEquipmentSlot net.minecraft.inventory.EquipmentSlotType net.minecraft.inventory.EntityEquipmentSlot
net.minecraft.stat.StatHandler net.minecraft.stats.StatisticsManager net.minecraft.stat.StatHandler net.minecraft.stats.StatisticsManager
net.minecraft.client.recipe.book.ClientRecipeBook net.minecraft.client.util.RecipeBookClient net.minecraft.client.recipe.book.ClientRecipeBook net.minecraft.client.util.RecipeBookClient
net.minecraft.util.Hand net.minecraft.util.EnumHand net.minecraft.util.Hand net.minecraft.util.EnumHand
net.minecraft.client.model.Box net.minecraft.client.renderer.entity.model.ModelBox net.minecraft.client.renderer.model.ModelBox net.minecraft.client.model.ModelBox
net.minecraft.client.model.Cuboid net.minecraft.client.renderer.entity.model.ModelRenderer net.minecraft.client.renderer.entity.model.RendererModel net.minecraft.client.model.ModelRenderer
net.minecraft.client.model.Cuboid boxes cubeList net.minecraft.client.renderer.entity.model.RendererModel boxes cubeList
net.minecraft.client.model.Cuboid name boxName net.minecraft.client.renderer.entity.model.RendererModel name boxName
net.minecraft.client.model.Cuboid method_2852() renderWithRotation() net.minecraft.client.renderer.entity.model.RendererModel method_2852() renderWithRotation()
net.minecraft.client.texture.SpriteAtlasTexture net.minecraft.client.renderer.texture.TextureMap net.minecraft.client.renderer.texture.AtlasTexture net.minecraft.client.renderer.texture.TextureMap
net.minecraft.client.texture.SpriteAtlasTexture BLOCK_ATLAS_TEX LOCATION_BLOCKS_TEXTURE 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 net.minecraft.util.Timer
net.minecraft.client.render.RenderTickCounter ticksThisFrame elapsedTicks net.minecraft.client.render.RenderTickCounter ticksThisFrame elapsedTicks
net.minecraft.client.render.RenderTickCounter tickDelta renderPartialTicks 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 client mc
net.minecraft.client.world.ClientWorld disconnect() sendQuittingDisconnectingPacket() net.minecraft.client.world.ClientWorld disconnect() sendQuittingDisconnectingPacket()
net.minecraft.client.network.packet.LoginQueryRequestS2CPacket net.minecraft.network.login.server.SPacketCustomPayloadLogin #net.minecraft.client.network.packet net.minecraft.network.play.server
net.minecraft.client.network.packet.LoginCompressionS2CPacket net.minecraft.network.login.server.SPacketEnableCompression net.minecraft.network.login.server.SCustomPayloadLoginPacket net.minecraft.network.login.server.SPacketCustomPayloadLogin
net.minecraft.client.network.packet.LoginSuccessS2CPacket net.minecraft.network.login.server.SPacketLoginSuccess net.minecraft.network.login.server.SEnableCompressionPacket net.minecraft.network.login.server.SPacketEnableCompression
net.minecraft.client.network.packet net.minecraft.network.play.server net.minecraft.network.login.server.SLoginSuccessPacket net.minecraft.network.login.server.SPacketLoginSuccess
net.minecraft.client.network.packet.GameJoinS2CPacket net.minecraft.network.play.server.SPacketJoinGame 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 getEntityId() getPlayerId()
net.minecraft.client.network.packet.GameJoinS2CPacket getDimension() func_212642_e() net.minecraft.client.network.packet.GameJoinS2CPacket getDimension() func_212642_e()
net.minecraft.client.network.packet.GameJoinS2CPacket getDifficulty() getDifficulty() net.minecraft.client.network.packet.GameJoinS2CPacket getDifficulty() getDifficulty()
net.minecraft.client.network.packet.ChatMessageS2CPacket net.minecraft.network.play.server.SPacketChat net.minecraft.network.play.server.SChatPacket net.minecraft.network.play.server.SPacketChat
net.minecraft.client.network.packet.ParticleS2CPacket net.minecraft.network.play.server.SPacketParticles net.minecraft.network.play.server.SSpawnParticlePacket net.minecraft.network.play.server.SPacketParticles
net.minecraft.client.network.packet.GameStateChangeS2CPacket net.minecraft.network.play.server.SPacketChangeGameState 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.GameStateChangeS2CPacket getReason() getGameState()
net.minecraft.client.network.packet.PlayerPositionLookS2CPacket net.minecraft.network.play.server.SPacketPlayerPosLook net.minecraft.network.play.server.SPlayerPositionLookPacket net.minecraft.network.play.server.SPacketPlayerPosLook
net.minecraft.client.network.packet.PlayerPositionLookS2CPacket.Flag net.minecraft.network.play.server.SPacketPlayerPosLook.EnumFlags net.minecraft.network.play.server.SPlayerPositionLookPacket.Flag net.minecraft.network.play.server.SPacketPlayerPosLook.EnumFlags
net.minecraft.client.network.packet.PlayerListS2CPacket net.minecraft.network.play.server.SPacketPlayerListItem net.minecraft.network.play.server.SPlayerListItemPacket net.minecraft.network.play.server.SPacketPlayerListItem
net.minecraft.client.network.packet.PlayerListS2CPacket.Action net.minecraft.network.play.server.SPacketPlayerListItem.Action net.minecraft.network.play.server.SPlayerListItemPacket.Action net.minecraft.network.play.server.SPacketPlayerListItem.Action
net.minecraft.client.network.packet.PlayerListS2CPacket.Entry net.minecraft.network.play.server.SPacketPlayerListItem.AddPlayerData net.minecraft.network.play.server.SPlayerListItemPacket.Entry net.minecraft.network.play.server.SPacketPlayerListItem.AddPlayerData
net.minecraft.client.network.packet.PlayerRespawnS2CPacket net.minecraft.network.play.server.SPacketRespawn net.minecraft.network.play.server.SRespawnPacket net.minecraft.network.play.server.SPacketRespawn
net.minecraft.client.network.packet.PlayerSpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnPlayer 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 getPlayerUuid() getUniqueId()
net.minecraft.client.network.packet.PlayerSpawnS2CPacket getTrackedValues() getDataManagerEntries() net.minecraft.client.network.packet.PlayerSpawnS2CPacket getTrackedValues() getDataManagerEntries()
net.minecraft.client.network.packet.PlayerSpawnS2CPacket dataTracker watcher net.minecraft.client.network.packet.PlayerSpawnS2CPacket dataTracker watcher
net.minecraft.client.network.packet.EntitySpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnObject net.minecraft.network.play.server.SSpawnObjectPacket net.minecraft.network.play.server.SPacketSpawnObject
net.minecraft.client.network.packet.MobSpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnMob 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 getTrackedValues() getDataManagerEntries()
net.minecraft.client.network.packet.MobSpawnS2CPacket dataTracker dataManager net.minecraft.client.network.packet.MobSpawnS2CPacket dataTracker dataManager
net.minecraft.client.network.packet.EntitySpawnGlobalS2CPacket net.minecraft.network.play.server.SPacketSpawnGlobalEntity net.minecraft.network.play.server.SSpawnGlobalEntityPacket net.minecraft.network.play.server.SPacketSpawnGlobalEntity
net.minecraft.client.network.packet.PaintingSpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnPainting net.minecraft.network.play.server.SSpawnPaintingPacket net.minecraft.network.play.server.SPacketSpawnPainting
net.minecraft.client.network.packet.ExperienceOrbSpawnS2CPacket net.minecraft.network.play.server.SPacketSpawnExperienceOrb net.minecraft.network.play.server.SSpawnExperienceOrbPacket net.minecraft.network.play.server.SPacketSpawnExperienceOrb
net.minecraft.client.network.packet.EntitiesDestroyS2CPacket net.minecraft.network.play.server.SPacketDestroyEntities net.minecraft.network.play.server.SDestroyEntitiesPacket net.minecraft.network.play.server.SPacketDestroyEntities
net.minecraft.client.network.packet.EntityPositionS2CPacket net.minecraft.network.play.server.SPacketEntityTeleport net.minecraft.network.play.server.SEntityTeleportPacket net.minecraft.network.play.server.SPacketEntityTeleport
net.minecraft.client.network.packet.EntitySetHeadYawS2CPacket net.minecraft.network.play.server.SPacketEntityHeadLook net.minecraft.network.play.server.SEntityHeadLookPacket net.minecraft.network.play.server.SPacketEntityHeadLook
net.minecraft.client.network.packet.EntityVelocityUpdateS2CPacket net.minecraft.network.play.server.SPacketEntityVelocity net.minecraft.network.play.server.SEntityVelocityPacket net.minecraft.network.play.server.SPacketEntityVelocity
net.minecraft.client.network.packet.EntityAttachS2CPacket net.minecraft.network.play.server.SPacketEntityAttach net.minecraft.network.play.server.SMountEntityPacket net.minecraft.network.play.server.SPacketEntityAttach
net.minecraft.client.network.packet.EntityAnimationS2CPacket net.minecraft.network.play.server.SPacketAnimation net.minecraft.network.play.server.SAnimateHandPacket net.minecraft.network.play.server.SPacketAnimation
net.minecraft.client.network.packet.ItemPickupAnimationS2CPacket net.minecraft.network.play.server.SPacketCollectItem 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.ItemPickupAnimationS2CPacket getEntityId() getEntityID()
net.minecraft.client.network.packet.BlockBreakingProgressS2CPacket net.minecraft.network.play.server.SPacketBlockBreakAnim net.minecraft.network.play.server.SAnimateBlockBreakPacket net.minecraft.network.play.server.SPacketBlockBreakAnim
net.minecraft.server.network.packet.ResourcePackStatusC2SPacket net.minecraft.network.play.client.CPacketResourcePackStatus net.minecraft.network.play.client.CResourcePackStatusPacket net.minecraft.network.play.client.CPacketResourcePackStatus
net.minecraft.server.network.packet.ResourcePackStatusC2SPacket.Status net.minecraft.network.play.client.CPacketResourcePackStatus.Action net.minecraft.network.play.client.CResourcePackStatusPacket.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.SSendResourcePackPacket net.minecraft.network.play.server.SPacketResourcePackSend
net.minecraft.client.network.packet.ResourcePackSendS2CPacket getSHA1() getHash() 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 getChannel() getChannelName()
net.minecraft.client.network.packet.CustomPayloadS2CPacket getData() getBufferData() net.minecraft.client.network.packet.CustomPayloadS2CPacket getData() getBufferData()
net.minecraft.client.network.packet.DisconnectS2CPacket net.minecraft.network.play.server.SPacketDisconnect net.minecraft.network.play.server.SDisconnectPacket net.minecraft.network.play.server.SPacketDisconnect
net.minecraft.client.network.packet.LoginSuccessS2CPacket net.minecraft.network.login.server.SPacketLoginSuccess net.minecraft.network.login.server.SLoginSuccessPacket net.minecraft.network.login.server.SPacketLoginSuccess
net.minecraft.client.network.packet.SynchronizeRecipesS2CPacket net.minecraft.network.play.server.SPacketRecipeBook net.minecraft.network.play.server.SUpdateRecipesPacket net.minecraft.network.play.server.SPacketRecipeBook
net.minecraft.client.network.packet.AdvancementUpdateS2CPacket net.minecraft.network.play.server.SPacketAdvancementInfo net.minecraft.network.play.server.SAdvancementInfoPacket net.minecraft.network.play.server.SPacketAdvancementInfo
net.minecraft.client.network.packet.SelectAdvancementTabS2CPacket net.minecraft.network.play.server.SPacketSelectAdvancementsTab net.minecraft.network.play.server.SSelectAdvancementsTabPacket net.minecraft.network.play.server.SPacketSelectAdvancementsTab
net.minecraft.client.network.packet.HealthUpdateS2CPacket net.minecraft.network.play.server.SPacketUpdateHealth net.minecraft.network.play.server.SUpdateHealthPacket net.minecraft.network.play.server.SPacketUpdateHealth
net.minecraft.client.network.packet.GuiOpenS2CPacket net.minecraft.network.play.server.SPacketOpenWindow net.minecraft.network.play.server.SOpenHorseWindowPacket net.minecraft.network.play.server.SPacketOpenWindow
net.minecraft.client.network.packet.GuiCloseS2CPacket net.minecraft.network.play.server.SPacketCloseWindow net.minecraft.network.play.server.SCloseWindowPacket net.minecraft.network.play.server.SPacketCloseWindow
net.minecraft.client.network.packet.GuiSlotUpdateS2CPacket net.minecraft.network.play.server.SPacketSetSlot net.minecraft.network.play.server.SSetSlotPacket net.minecraft.network.play.server.SPacketSetSlot
net.minecraft.client.network.packet.GuiUpdateS2CPacket net.minecraft.network.play.server.SPacketWindowItems net.minecraft.network.play.server.SWindowPropertyPacket net.minecraft.network.play.server.SPacketWindowItems
net.minecraft.client.network.packet.SignEditorOpenS2CPacket net.minecraft.network.play.server.SPacketSignEditorOpen net.minecraft.network.play.server.SOpenSignMenuPacket net.minecraft.network.play.server.SPacketSignEditorOpen
net.minecraft.client.network.packet.StatisticsS2CPacket net.minecraft.network.play.server.SPacketStatistics net.minecraft.network.play.server.SStatisticsPacket net.minecraft.network.play.server.SPacketStatistics
net.minecraft.client.network.packet.ExperienceBarUpdateS2CPacket net.minecraft.network.play.server.SPacketSetExperience net.minecraft.network.play.server.SSetExperiencePacket net.minecraft.network.play.server.SPacketSetExperience
net.minecraft.client.network.packet.SetCameraEntityS2CPacket net.minecraft.network.play.server.SPacketCamera net.minecraft.network.play.server.SCameraPacket net.minecraft.network.play.server.SPacketCamera
net.minecraft.client.network.packet.PlayerAbilitiesS2CPacket net.minecraft.network.play.server.SPacketPlayerAbilities net.minecraft.network.play.server.SPlayerAbilitiesPacket net.minecraft.network.play.server.SPacketPlayerAbilities
net.minecraft.client.network.packet.TitleS2CPacket net.minecraft.network.play.server.SPacketTitle net.minecraft.network.play.server.STitlePacket net.minecraft.network.play.server.SPacketTitle
net.minecraft.client.network.packet.UnloadChunkS2CPacket net.minecraft.network.play.server.SPacketUnloadChunk net.minecraft.network.play.server.SUnloadChunkPacket net.minecraft.network.play.server.SPacketUnloadChunk
net.minecraft.client.network.packet.PlaySoundS2CPacket net.minecraft.network.play.server.SPacketSoundEffect net.minecraft.network.play.server.SPlaySoundEffectPacket net.minecraft.network.play.server.SPacketSoundEffect
net.minecraft.client.network.packet.WorldEventS2CPacket net.minecraft.network.play.server.SPacketEffect net.minecraft.network.play.server.SPlaySoundEventPacket net.minecraft.network.play.server.SPacketEffect
net.minecraft.client.network.packet.EntityTrackerUpdateS2CPacket net.minecraft.network.play.server.SPacketEntityMetadata net.minecraft.network.play.server.SEntityMetadataPacket net.minecraft.network.play.server.SPacketEntityMetadata
net.minecraft.client.network.packet.EntityEquipmentUpdateS2CPacket net.minecraft.network.play.server.SPacketEntityEquipment net.minecraft.network.play.server.SEntityEquipmentPacket net.minecraft.network.play.server.SPacketEntityEquipment
net.minecraft.client.network.packet.EntityS2CPacket net.minecraft.network.play.server.SPacketEntity net.minecraft.network.play.server.SEntityPacket net.minecraft.network.play.server.SPacketEntity
net.minecraft.client.network.packet.EntityS2CPacket.Rotate net.minecraft.network.play.server.SPacketEntity.Look net.minecraft.network.play.server.SEntityPacket.Rotate net.minecraft.network.play.server.SPacketEntity.Look
net.minecraft.client.network.packet.EntityS2CPacket.MoveRelative net.minecraft.network.play.server.SPacketEntity.RelMove net.minecraft.network.play.server.SEntityPacket.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.SEntityPacket.MovePacket net.minecraft.network.play.server.SPacketEntity.Move

View File

@@ -1,2 +1,19 @@
net.minecraft.client.renderer.WorldRenderer begin() startDrawing() net.minecraft.client.renderer.WorldRenderer begin() startDrawing()
net.minecraft.network.play.server.S38PacketPlayerListItem getAction() func_179768_b() 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()

View File

@@ -24,6 +24,7 @@ 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.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.common.network.handshake.NetworkDispatcher cpw.mods.fml.common.network.handshake.NetworkDispatcher
net.minecraftforge.fml.relauncher.Side cpw.mods.fml.relauncher.Side 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.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 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.handshake.FMLHandshakeMessage.RegistryData cpw.mods.fml.common.network.handshake.FMLHandshakeMessage.ModIdData
@@ -31,3 +32,5 @@ net.minecraftforge.fml.common.network.internal.FMLProxyPacket cpw.mods.fml.commo
net.minecraftforge.fml.common.network.NetworkRegistry cpw.mods.fml.common.network.NetworkRegistry 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.minecraftforge.fml.common.gameevent.InputEvent cpw.mods.fml.common.gameevent.InputEvent
net.minecraft.client.renderer.tileentity.TileEntityEndPortalRenderer net.minecraft.client.renderer.tileentity.RenderEndPortal 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()

View File

@@ -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.AxisAlignedBB net.minecraft.util.AxisAlignedBB
net.minecraft.util.math.RayTraceResult net.minecraft.util.MovingObjectPosition net.minecraft.util.math.RayTraceResult net.minecraft.util.MovingObjectPosition
net.minecraft.client.renderer.RenderItem net.minecraft.client.renderer.entity.RenderItem 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.SPacketJoinGame net.minecraft.network.play.server.S01PacketJoinGame
net.minecraft.network.play.server.SPacketChat net.minecraft.network.play.server.S02PacketChat 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.SPacketWindowItems net.minecraft.network.play.server.S30PacketWindowItems
net.minecraft.network.play.server.SPacketStatistics net.minecraft.network.play.server.S37PacketStatistics 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.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.SPacketEnableCompression net.minecraft.network.login.server.S03PacketEnableCompression
net.minecraft.network.login.server.SPacketLoginSuccess net.minecraft.network.login.server.S02PacketLoginSuccess net.minecraft.network.login.server.SPacketLoginSuccess net.minecraft.network.login.server.S02PacketLoginSuccess

View File

@@ -1,24 +1,20 @@
buildscript { buildscript {
def mcVersion def mcVersion
if (project.name != 'core') { def (major, minor, patch) = project.name.tokenize('-')[0].tokenize('.')
def (major, minor, patch) = project.name.tokenize('.')
mcVersion = "${major}${minor.padLeft(2, '0')}${(patch ?: '').padLeft(2, '0')}" as int mcVersion = "${major}${minor.padLeft(2, '0')}${(patch ?: '').padLeft(2, '0')}" as int
} else { def fabric = mcVersion >= 11400 && !project.name.endsWith("-forge")
def f = file('mcVersion')
mcVersion = f.readLines().first() as int
}
project.ext.mcVersion = mcVersion project.ext.mcVersion = mcVersion
project.ext.fabric = fabric
repositories { repositories {
mavenLocal() mavenLocal()
jcenter() jcenter()
mavenCentral() mavenCentral()
if (mcVersion >= 11400) {
maven { maven {
name = "fabric" name = "fabric"
url = "https://maven.fabricmc.net/" url = "https://maven.fabricmc.net/"
} }
} else { if (!fabric) {
maven { maven {
name = "forge" name = "forge"
url = "https://files.minecraftforge.net/maven" url = "https://files.minecraftforge.net/maven"
@@ -33,7 +29,7 @@ buildscript {
dependencies { dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2' 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' classpath 'fabric-loom:fabric-loom.gradle.plugin:0.2.2-SNAPSHOT'
} else if (mcVersion >= 11300) { } else if (mcVersion >= 11300) {
classpath('net.minecraftforge.gradle:ForgeGradle:3.+'){ classpath('net.minecraftforge.gradle:ForgeGradle:3.+'){
@@ -50,16 +46,11 @@ buildscript {
exclude group: 'trove', module: 'trove' // different name same thing exclude group: 'trove', module: 'trove' // different name same thing
} }
} }
classpath 'com.github.replaymod:preprocessor:8ec3e31'
} }
} }
import com.replaymod.gradle.preprocess.PreprocessTask def FG3 = !fabric && mcVersion >= 11300
def FABRIC = fabric
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 jGuiVersion = project.name def jGuiVersion = project.name
if (['1.10.2', '1.11', '1.11.2'].contains(jGuiVersion)) jGuiVersion = '1.9.4' 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' 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 sourceCompatibility = 1.8
targetCompatibility = 1.8 targetCompatibility = 1.8
if (mcVersion >= 11300) {
sourceSets {
api
}
}
version = mcVersionStr + '-' + rootProject.version version = mcVersionStr + '-' + rootProject.version
group= "com.replaymod" group= "com.replaymod"
archivesBaseName = "replaymod" archivesBaseName = "replaymod"
@@ -143,7 +147,7 @@ if (FABRIC) {
][mcVersion] ][mcVersion]
} }
mappings = [ mappings = [
11302: "snapshot_20180921-1.13", 11404: "snapshot_20190719-1.14.3",
11202: "snapshot_20170615", 11202: "snapshot_20170615",
11201: "snapshot_20170615", 11201: "snapshot_20170615",
11200: "snapshot_20170615", 11200: "snapshot_20170615",
@@ -226,7 +230,7 @@ dependencies {
if (FG3) { if (FG3) {
minecraft 'net.minecraftforge:forge:' + [ minecraft 'net.minecraftforge:forge:' + [
11302: '1.13.2-25.0.76', 11404: '1.14.4-28.1.113',
][mcVersion] ][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() { task configureRelocation() {
dependsOn tasks.jar dependsOn tasks.jar
dependsOn configurations.relocate dependsOn configurations.relocate

View File

@@ -1 +0,0 @@
11404

1
versions/mainProject Normal file
View File

@@ -0,0 +1 @@
1.14.4

View File