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.
org.gradle.jvmargs=-Xmx3G
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 net.minecraft.client.Minecraft;
//$$ import net.minecraftforge.client.event.RenderLivingEvent;
//$$ import net.minecraftforge.eventbus.api.EventPriority;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//$$ import net.minecraftforge.fml.common.eventhandler.EventPriority;
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//$$
//$$ import static com.replaymod.core.versions.MCVer.*;
//$$
@@ -17,7 +17,7 @@
//$$ * To fix this issue, we simply cancel the RenderLivingEvent.Pre before it gets to ArmorAnimation if the entity is invisible.
//$$ */
//$$ public class HideInvisibleEntities extends EventRegistrations {
//$$ private final Minecraft mc = Minecraft.getInstance();
//$$ private final Minecraft mc = Minecraft.getMinecraft();
//$$ private final boolean modLoaded = isModLoaded("animations");
//$$
//$$ @SubscribeEvent(priority = EventPriority.HIGH)

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,7 +3,7 @@ package com.replaymod.core.utils;
import com.replaymod.replaystudio.data.ModInfo;
import net.minecraft.util.Identifier;
//#if MC>=11400
//#if FABRIC>=1
import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.ModContainer;
import net.minecraft.util.registry.Registry;
@@ -32,7 +32,7 @@ public class ModCompat {
@SuppressWarnings("unchecked")
public static Collection<ModInfo> getInstalledNetworkMods() {
//#if MC>=11300
//#if MC>=11400
//#if FABRIC>=1
Map<String, ModInfo> modInfoMap = FabricLoader.getInstance().getAllMods().stream()
.map(ModContainer::getMetadata)
.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.MinecraftAccessor;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.client.render.Tessellator;
@@ -24,14 +23,21 @@ import org.apache.logging.log4j.Logger;
//#if MC>=11400
import com.replaymod.core.mixin.AbstractButtonWidgetAccessor;
import net.minecraft.SharedConstants;
import net.minecraft.client.gui.screen.TitleScreen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
import java.util.concurrent.CompletableFuture;
//#else
//$$ import com.google.common.util.concurrent.FutureCallback;
//$$ import com.google.common.util.concurrent.Futures;
//$$ import com.google.common.util.concurrent.ListenableFuture;
//$$ import net.minecraft.entity.EntityLivingBase;
//$$ import net.minecraft.client.gui.GuiButton;
//#endif
//#if FABRIC>=1
//#else
//$$ import net.minecraft.entity.LivingEntity;
//$$ import net.minecraftforge.client.event.GuiScreenEvent;
//$$ import net.minecraftforge.client.event.RenderGameOverlayEvent;
//$$ import net.minecraftforge.client.event.RenderLivingEvent;
@@ -80,9 +86,8 @@ import net.minecraft.client.render.chunk.ChunkRenderTask;
//$$ import static org.lwjgl.opengl.GL11.*;
//#endif
//#if MC>=11400
//#if FABRIC>=1
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.SharedConstants;
//#else
//#if MC>=11300
//$$ import net.minecraftforge.fml.ModList;
@@ -104,7 +109,7 @@ import java.util.function.Consumer;
public class MCVer {
private static Logger LOGGER = LogManager.getLogger();
//#if MC<11400
//#if FABRIC<=0
//$$ public static IEventBus FORGE_BUS = MinecraftForge.EVENT_BUS;
//#if MC>=10809
//$$ public static IEventBus FML_BUS = FORGE_BUS;
@@ -114,7 +119,7 @@ public class MCVer {
//#endif
public static boolean isModLoaded(String id) {
//#if MC>=11400
//#if FABRIC>=1
return FabricLoader.getInstance().isModLoaded(id.toLowerCase());
//#else
//#if MC>=11300
@@ -171,7 +176,24 @@ public class MCVer {
//$$ }
//#endif
//#if MC<11400
//#if FABRIC<=0
//#if MC>=11400
//$$ public static void addButton(GuiScreenEvent.InitGuiEvent event, Widget button) {
//$$ event.addWidget(button);
//$$ }
//$$
//$$ public static void removeButton(GuiScreenEvent.InitGuiEvent event, Widget button) {
//$$ event.removeWidget(button);
//$$ }
//$$
//$$ public static List<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) {
//#if MC>=11300
//$$ event.addButton(button);
@@ -204,8 +226,9 @@ public class MCVer {
//$$ return event.button;
//#endif
//$$ }
//#endif
//$$
//$$ public static GuiScreen getGui(GuiScreenEvent event) {
//$$ public static Screen getGui(GuiScreenEvent event) {
//#if MC>=10904
//$$ return event.getGui();
//#else
@@ -213,7 +236,7 @@ public class MCVer {
//#endif
//$$ }
//$$
//$$ public static EntityLivingBase getEntity(RenderLivingEvent event) {
//$$ public static LivingEntity getEntity(RenderLivingEvent event) {
//#if MC>=10904
//$$ return event.getEntity();
//#else
@@ -234,7 +257,7 @@ public class MCVer {
//#endif
}
//#if MC<11400
//#if FABRIC<=0
//$$ public static RenderGameOverlayEvent.ElementType getType(RenderGameOverlayEvent event) {
//#if MC>=10904
//$$ return event.getType();
@@ -475,7 +498,14 @@ public class MCVer {
return ((MinecraftAccessor) getMinecraft()).getTimer().tickDelta;
}
public static void addButton(Screen screen, ButtonWidget button) {
public static void addButton(
Screen screen,
//#if MC>=11400
ButtonWidget button
//#else
//$$ GuiButton button
//#endif
) {
GuiScreenAccessor acc = (GuiScreenAccessor) screen;
//#if MC>=11400
if (screen instanceof TitleScreen && isModLoaded("modmenu")) {
@@ -635,9 +665,8 @@ public class MCVer {
//$$ }
//#endif
//#if MC>=11300
@SuppressWarnings("unused")
public static abstract class Keyboard {
//#if MC>=11300
public static final int KEY_LCONTROL = GLFW.GLFW_KEY_LEFT_CONTROL;
public static final int KEY_LSHIFT = GLFW.GLFW_KEY_LEFT_SHIFT;
public static final int KEY_ESCAPE = GLFW.GLFW_KEY_ESCAPE;
@@ -678,14 +707,69 @@ public class MCVer {
public static final int KEY_X = GLFW.GLFW_KEY_X;
public static final int KEY_Y = GLFW.GLFW_KEY_Y;
public static final int KEY_Z = GLFW.GLFW_KEY_Z;
//#else
//$$ public static final int KEY_LCONTROL = org.lwjgl.input.Keyboard.KEY_LCONTROL;
//$$ public static final int KEY_LSHIFT = org.lwjgl.input.Keyboard.KEY_LSHIFT;
//$$ public static final int KEY_ESCAPE = org.lwjgl.input.Keyboard.KEY_ESCAPE;
//$$ public static final int KEY_HOME = org.lwjgl.input.Keyboard.KEY_HOME;
//$$ public static final int KEY_END = org.lwjgl.input.Keyboard.KEY_END;
//$$ public static final int KEY_UP = org.lwjgl.input.Keyboard.KEY_UP;
//$$ public static final int KEY_DOWN = org.lwjgl.input.Keyboard.KEY_DOWN;
//$$ public static final int KEY_LEFT = org.lwjgl.input.Keyboard.KEY_LEFT;
//$$ public static final int KEY_RIGHT = org.lwjgl.input.Keyboard.KEY_RIGHT;
//$$ public static final int KEY_BACK = org.lwjgl.input.Keyboard.KEY_BACK;
//$$ public static final int KEY_DELETE = org.lwjgl.input.Keyboard.KEY_DELETE;
//$$ public static final int KEY_RETURN = org.lwjgl.input.Keyboard.KEY_RETURN;
//$$ public static final int KEY_TAB = org.lwjgl.input.Keyboard.KEY_TAB;
//$$ public static final int KEY_F1 = org.lwjgl.input.Keyboard.KEY_F1;
//$$ public static final int KEY_A = org.lwjgl.input.Keyboard.KEY_A;
//$$ public static final int KEY_B = org.lwjgl.input.Keyboard.KEY_B;
//$$ public static final int KEY_C = org.lwjgl.input.Keyboard.KEY_C;
//$$ public static final int KEY_D = org.lwjgl.input.Keyboard.KEY_D;
//$$ public static final int KEY_E = org.lwjgl.input.Keyboard.KEY_E;
//$$ public static final int KEY_F = org.lwjgl.input.Keyboard.KEY_F;
//$$ public static final int KEY_G = org.lwjgl.input.Keyboard.KEY_G;
//$$ public static final int KEY_H = org.lwjgl.input.Keyboard.KEY_H;
//$$ public static final int KEY_I = org.lwjgl.input.Keyboard.KEY_I;
//$$ public static final int KEY_J = org.lwjgl.input.Keyboard.KEY_J;
//$$ public static final int KEY_K = org.lwjgl.input.Keyboard.KEY_K;
//$$ public static final int KEY_L = org.lwjgl.input.Keyboard.KEY_L;
//$$ public static final int KEY_M = org.lwjgl.input.Keyboard.KEY_M;
//$$ public static final int KEY_N = org.lwjgl.input.Keyboard.KEY_N;
//$$ public static final int KEY_O = org.lwjgl.input.Keyboard.KEY_O;
//$$ public static final int KEY_P = org.lwjgl.input.Keyboard.KEY_P;
//$$ public static final int KEY_Q = org.lwjgl.input.Keyboard.KEY_Q;
//$$ public static final int KEY_R = org.lwjgl.input.Keyboard.KEY_R;
//$$ public static final int KEY_S = org.lwjgl.input.Keyboard.KEY_S;
//$$ public static final int KEY_T = org.lwjgl.input.Keyboard.KEY_T;
//$$ public static final int KEY_U = org.lwjgl.input.Keyboard.KEY_U;
//$$ public static final int KEY_V = org.lwjgl.input.Keyboard.KEY_V;
//$$ public static final int KEY_W = org.lwjgl.input.Keyboard.KEY_W;
//$$ public static final int KEY_X = org.lwjgl.input.Keyboard.KEY_X;
//$$ public static final int KEY_Y = org.lwjgl.input.Keyboard.KEY_Y;
//$$ public static final int KEY_Z = org.lwjgl.input.Keyboard.KEY_Z;
//#endif
public static boolean isKeyDown(int keyCode) {
//#if MC>=11400
return InputUtil.isKeyPressed(getMinecraft().window.getHandle(), keyCode);
//#else
//#if MC>=11300
//$$ return InputMappings.isKeyDown(keyCode);
//#else
//$$ return org.lwjgl.input.Keyboard.isKeyDown(keyCode);
//#endif
//#endif
}
//#if MC<11300
//$$ public static int getEventKey() {
//$$ return org.lwjgl.input.Keyboard.getEventKey();
//$$ }
//$$
//$$ public static boolean getEventKeyState() {
//$$ return org.lwjgl.input.Keyboard.getEventKeyState();
//$$ }
//#endif
}
}
//#endif
}

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

@@ -10,7 +10,7 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.resource.language.I18n;
//#if MC>=11400
//#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.PostRenderHudCallback;
//#else
//$$ import net.minecraftforge.client.event.RenderGameOverlayEvent;
@@ -40,7 +40,7 @@ public class GuiRecordingOverlay extends EventRegistrations {
/**
* Render the recording icon and text in the top left corner of the screen.
*/
//#if MC>=11400
//#if FABRIC>=1
{ on(PostRenderHudCallback.EVENT, partialTicks -> renderRecordingIndicator()); }
private void renderRecordingIndicator() {
//#else

View File

@@ -18,7 +18,11 @@
//$$ public class FMLHandshakeFilter extends SimpleChannelInboundHandler<FMLHandshakeMessage> {
//$$ @Override
//$$ protected void channelRead0(ChannelHandlerContext ctx, FMLHandshakeMessage msg) throws Exception {
//#if MC>=10800
//$$ if (!(msg instanceof FMLHandshakeMessage.RegistryData)) {
//#else
//$$ if (!(msg instanceof FMLHandshakeMessage.ModIdData)) {
//#endif
//$$ // Pass on everything but RegistryData messages
//$$ 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.world.SelectWorldScreen;
//#if MC>=11400
//#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.screen.Screen;
//#else
@@ -30,13 +30,13 @@ public class GuiHandler extends EventRegistrations {
this.mod = mod;
}
//#if MC>=11400
//#if FABRIC>=1
{ on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); }
private void onGuiInit(Screen gui) {
//#else
//$$ @SubscribeEvent
//$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ net.minecraft.client.gui.GuiScreen gui = getGui(event);
//$$ net.minecraft.client.gui.screen.Screen gui = getGui(event);
//#endif
if (gui instanceof SelectWorldScreen || gui instanceof MultiplayerScreen) {
boolean sp = gui instanceof SelectWorldScreen;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -18,8 +18,11 @@ public class MixinTileEntityEndPortalRenderer {
//#if MC>=11300
@Redirect(method = "method_3591", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/SystemUtil;getMeasuringTimeMs()J"))
//#else
//#if MC>=11200
//$$ @Redirect(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntityEndPortal;DDDFIF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J"))
//#else
//#if MC>=10809
//$$ @Redirect(method = "renderTileEntityAt", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J"))
//$$ @Redirect(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntityEndPortal;DDDFI)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J"))
//#else
//#if MC>=10800
//$$ @Redirect(method = "func_180544_a", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J"))
@@ -28,6 +31,7 @@ public class MixinTileEntityEndPortalRenderer {
//#endif
//#endif
//#endif
//#endif
private long replayModReplay_getEnchantmentTime() {
ReplayHandler replayHandler = ReplayModReplay.instance.getReplayHandler();
if (replayHandler != null) {

View File

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

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

View File

@@ -1,2 +1,19 @@
net.minecraft.client.renderer.WorldRenderer begin() startDrawing()
net.minecraft.network.play.server.S38PacketPlayerListItem getAction() func_179768_b()
net.minecraft.network.play.server.S40PacketDisconnect getReason() func_149165_c()
net.minecraft.network.play.server.S48PacketResourcePackSend getURL() func_179783_a()
net.minecraft.network.play.server.S48PacketResourcePackSend getHash() func_179784_b()
net.minecraft.network.play.server.S08PacketPlayerPosLook getX() func_148932_c()
net.minecraft.network.play.server.S08PacketPlayerPosLook getY() func_148928_d()
net.minecraft.network.play.server.S08PacketPlayerPosLook getZ() func_148933_e()
net.minecraft.network.play.server.S2BPacketChangeGameState getGameState() func_149138_c()
net.minecraft.network.play.server.S0EPacketSpawnObject getType() func_148993_l()
net.minecraft.network.play.server.S21PacketChunkData getChunkX() func_149273_e()
net.minecraft.network.play.server.S21PacketChunkData getChunkZ() func_149271_f()
net.minecraft.network.play.server.S21PacketChunkData getExtractedSize() func_149276_g()
net.minecraft.network.play.server.S0CPacketSpawnPlayer watcher field_148960_i
net.minecraft.network.play.server.S0CPacketSpawnPlayer getPlayer() func_179819_c()
net.minecraft.network.play.server.S0DPacketCollectItem getEntityID() func_149354_c()
net.minecraft.util.Timer counter field_74285_i
net.minecraft.client.resources.ResourcePackRepository setResourcePackInstance() func_177319_a()
net.minecraft.client.resources.ResourcePackRepository downloadResourcePack() func_180601_a()

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.NetworkDispatcher cpw.mods.fml.common.network.handshake.NetworkDispatcher
net.minecraftforge.fml.relauncher.Side cpw.mods.fml.relauncher.Side
net.minecraftforge.fml.common.gameevent.PlayerEvent cpw.mods.fml.common.gameevent.PlayerEvent
net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemPickupEvent cpw.mods.fml.common.gameevent.PlayerEvent.ItemPickupEvent
net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage cpw.mods.fml.common.network.handshake.FMLHandshakeMessage
net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage.RegistryData cpw.mods.fml.common.network.handshake.FMLHandshakeMessage.ModIdData
@@ -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.gameevent.InputEvent cpw.mods.fml.common.gameevent.InputEvent
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.RayTraceResult net.minecraft.util.MovingObjectPosition
net.minecraft.client.renderer.RenderItem net.minecraft.client.renderer.entity.RenderItem
net.minecraft.network.play.server.SPacketSpawnMob dataManager field_149043_l
net.minecraft.network.play.server.SPacketSpawnMob getDataManagerEntries() func_149027_c()
net.minecraft.network.play.server.SPacketSpawnPlayer getDataManagerEntries() func_148944_c()
net.minecraft.client.multiplayer.ServerList saveSingleServer() func_147414_b()
net.minecraft.network.play.server.SPacketJoinGame net.minecraft.network.play.server.S01PacketJoinGame
net.minecraft.network.play.server.SPacketChat net.minecraft.network.play.server.S02PacketChat
@@ -55,5 +59,7 @@ net.minecraft.network.play.server.SPacketCloseWindow net.minecraft.network.play.
net.minecraft.network.play.server.SPacketWindowItems net.minecraft.network.play.server.S30PacketWindowItems
net.minecraft.network.play.server.SPacketStatistics net.minecraft.network.play.server.S37PacketStatistics
net.minecraft.network.play.server.SPacketPlayerAbilities net.minecraft.network.play.server.S39PacketPlayerAbilities
net.minecraft.network.play.server.SPacketEntityEquipment net.minecraft.network.play.server.S04PacketEntityEquipment
net.minecraft.network.play.server.SPacketUseBed net.minecraft.network.play.server.S0APacketUseBed
net.minecraft.network.login.server.SPacketEnableCompression net.minecraft.network.login.server.S03PacketEnableCompression
net.minecraft.network.login.server.SPacketLoginSuccess net.minecraft.network.login.server.S02PacketLoginSuccess

View File

@@ -1,24 +1,20 @@
buildscript {
def mcVersion
if (project.name != 'core') {
def (major, minor, patch) = project.name.tokenize('.')
def (major, minor, patch) = project.name.tokenize('-')[0].tokenize('.')
mcVersion = "${major}${minor.padLeft(2, '0')}${(patch ?: '').padLeft(2, '0')}" as int
} else {
def f = file('mcVersion')
mcVersion = f.readLines().first() as int
}
def fabric = mcVersion >= 11400 && !project.name.endsWith("-forge")
project.ext.mcVersion = mcVersion
project.ext.fabric = fabric
repositories {
mavenLocal()
jcenter()
mavenCentral()
if (mcVersion >= 11400) {
maven {
name = "fabric"
url = "https://maven.fabricmc.net/"
}
} else {
if (!fabric) {
maven {
name = "forge"
url = "https://files.minecraftforge.net/maven"
@@ -33,7 +29,7 @@ buildscript {
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2'
if (mcVersion >= 11400) {
if (fabric) {
classpath 'fabric-loom:fabric-loom.gradle.plugin:0.2.2-SNAPSHOT'
} else if (mcVersion >= 11300) {
classpath('net.minecraftforge.gradle:ForgeGradle:3.+'){
@@ -50,16 +46,11 @@ buildscript {
exclude group: 'trove', module: 'trove' // different name same thing
}
}
classpath 'com.github.replaymod:preprocessor:8ec3e31'
}
}
import com.replaymod.gradle.preprocess.PreprocessTask
def mcVersionStr = "${(int)(mcVersion/10000)}.${(int)(mcVersion/100)%100}" + (mcVersion%100==0 ? '' : ".${mcVersion%100}")
def FG3 = mcVersion >= 11300 && mcVersion < 11400
def FABRIC = mcVersion >= 11400
def FG3 = !fabric && mcVersion >= 11300
def FABRIC = fabric
def jGuiVersion = project.name
if (['1.10.2', '1.11', '1.11.2'].contains(jGuiVersion)) jGuiVersion = '1.9.4'
@@ -96,9 +87,22 @@ if (!FABRIC) {
apply plugin: 'com.replaymod.preprocess'
preprocess {
vars.put("MC", project.mcVersion)
vars.put("FABRIC", project.fabric ? 1 : 0)
}
def mcVersionStr = "${(int)(mcVersion/10000)}.${(int)(mcVersion/100)%100}" + (mcVersion%100==0 ? '' : ".${mcVersion%100}")
sourceCompatibility = 1.8
targetCompatibility = 1.8
if (mcVersion >= 11300) {
sourceSets {
api
}
}
version = mcVersionStr + '-' + rootProject.version
group= "com.replaymod"
archivesBaseName = "replaymod"
@@ -143,7 +147,7 @@ if (FABRIC) {
][mcVersion]
}
mappings = [
11302: "snapshot_20180921-1.13",
11404: "snapshot_20190719-1.14.3",
11202: "snapshot_20170615",
11201: "snapshot_20170615",
11200: "snapshot_20170615",
@@ -226,7 +230,7 @@ dependencies {
if (FG3) {
minecraft 'net.minecraftforge:forge:' + [
11302: '1.13.2-25.0.76',
11404: '1.14.4-28.1.113',
][mcVersion]
}
@@ -295,14 +299,6 @@ if (mcVersion <= 10710) {
}
}
if (project.name != 'core') {
def jGui = project.evaluationDependsOn(":jGui:$jGuiVersion")
// Make sure the corresponding jGui setCoreVersion task runs
project.tasks.setCoreVersionJava.dependsOn jGui.tasks.setCoreVersion
// and it doesn't run too early (i.e. before we're done with preprocessing)
jGui.tasks.setCoreVersionJava.mustRunAfter project.tasks.preprocessJava
}
task configureRelocation() {
dependsOn tasks.jar
dependsOn configurations.relocate

View File

@@ -1 +0,0 @@
11404

1
versions/mainProject Normal file
View File

@@ -0,0 +1 @@
1.14.4

View File