From 9ce25f711f6fe665994c1198d3c37b7343f971df Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 27 May 2022 07:03:35 +0200 Subject: [PATCH] Port to MC 1.19-pre3 --- build.gradle | 11 ++- jGui | 2 +- root.gradle.kts | 6 +- settings.gradle.kts | 2 + .../java/com/replaymod/core/ReplayMod.java | 9 +- .../core/mixin/SimpleOptionAccessor.java | 1 + .../core/versions/LangResourcePack.java | 11 ++- .../com/replaymod/core/versions/MCVer.java | 3 +- .../com/replaymod/core/versions/Patterns.java | 98 ++++++++++++++++++- .../com/replaymod/extras/FullBrightness.java | 2 +- .../playeroverview/PlayerOverviewGui.java | 4 +- .../handler/RecordingEventHandler.java | 15 +-- .../mixin/MixinDownloadingPackFinder.java | 4 + .../recording/mixin/MixinWorldClient.java | 35 +++++-- .../mixin/SPacketSpawnMobAccessor.java | 32 +++--- .../mixin/SPacketSpawnPlayerAccessor.java | 32 +++--- .../recording/packet/PacketListener.java | 10 +- .../packet/ResourcePackRecorder.java | 18 +++- .../render/blend/BlendMeshBuilder.java | 2 +- .../replaymod/render/blend/BlendState.java | 4 +- .../blend/exporters/EntityExporter.java | 2 +- .../render/blend/exporters/ItemExporter.java | 2 +- .../exporters/ModelRendererExporter.java | 2 +- .../blend/exporters/ParticlesExporter.java | 2 +- .../render/blend/exporters/RenderState.java | 2 +- .../blend/exporters/TileEntityExporter.java | 2 +- .../render/blend/mixin/MixinRenderGlobal.java | 2 +- .../render/blend/mixin/MixinRenderItem.java | 2 +- .../blend/mixin/MixinRenderLivingBase.java | 2 +- .../blend/mixin/MixinRenderManager.java | 2 +- .../render/mixin/MixinParticleManager.java | 8 +- .../replaymod/replay/FullReplaySender.java | 18 +++- .../replaymod/replay/camera/CameraEntity.java | 12 ++- .../replaymod/replay/handler/GuiHandler.java | 10 +- src/main/resources/mixins.core.replaymod.json | 3 + .../resources/mixins.recording.replaymod.json | 6 +- .../mixins.render.blend.replaymod.json | 2 + versions/1.14.4-forge/mapping.txt | 2 + versions/1.19/.gitkeep | 0 .../core/mixin/SimpleOptionAccessor.java | 11 +++ versions/mapping-fabric-1.19-1.18.2.txt | 4 + 41 files changed, 299 insertions(+), 98 deletions(-) create mode 100644 src/main/java/com/replaymod/core/mixin/SimpleOptionAccessor.java create mode 100644 versions/1.19/.gitkeep create mode 100644 versions/1.19/src/main/java/com/replaymod/core/mixin/SimpleOptionAccessor.java create mode 100644 versions/mapping-fabric-1.19-1.18.2.txt diff --git a/build.gradle b/build.gradle index d809e9ba..3a3664ec 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ buildscript { dependencies { classpath 'gradle.plugin.com.github.jengelman.gradle.plugins:shadow:7.0.0' if (fabric) { - classpath 'fabric-loom:fabric-loom.gradle.plugin:0.10-SNAPSHOT' + classpath 'fabric-loom:fabric-loom.gradle.plugin:0.11-SNAPSHOT' } else if (mcVersion >= 11400) { classpath('net.minecraftforge.gradle:ForgeGradle:5.0.5') { // the FG people still haven't learned to not do breaking changes exclude group: 'trove', module: 'trove' // preprocessor/idea requires more recent one @@ -246,6 +246,7 @@ dependencies { 11800: '1.18', 11801: '1.18.1', 11802: '1.18.2', + 11900: '1.19-pre3', ][mcVersion] mappings 'net.fabricmc:yarn:' + [ 11404: '1.14.4+build.16', @@ -258,8 +259,9 @@ dependencies { 11800: '1.18+build.1:v2', 11801: '1.18.1+build.1:v2', 11802: '1.18.2+build.1:v2', + 11900: '1.19-pre3+build.3:v2', ][mcVersion] - modImplementation 'net.fabricmc:fabric-loader:0.12.5' + modImplementation 'net.fabricmc:fabric-loader:0.14.6' def fabricApiVersion = [ 11404: '0.4.3+build.247-1.14', 11502: '0.5.1+build.294-1.15', @@ -271,6 +273,7 @@ dependencies { 11800: '0.43.1+1.18', 11801: '0.43.1+1.18', 11802: '0.47.9+1.18.2', + 11900: '0.53.4+1.19', ][mcVersion] def fabricApiModules = [ "api-base", @@ -351,7 +354,9 @@ dependencies { shadow 'com.github.ReplayMod:lwjgl-utils:27dcd66' if (FABRIC) { - if (mcVersion >= 11802) { + if (mcVersion >= 11900) { + modCompileOnly 'com.terraformersmc:modmenu:3.1.0' // FIXME update + } else if (mcVersion >= 11802) { modImplementation 'com.terraformersmc:modmenu:3.1.0' } else if (mcVersion >= 11800) { modImplementation 'com.terraformersmc:modmenu:3.0.0' diff --git a/jGui b/jGui index 5e41452b..94278dfd 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit 5e41452b0e17700691efd38b8ce793b5200145c8 +Subproject commit 94278dfddbc3f325cf24c1c1f08d6a3547b30f8c diff --git a/root.gradle.kts b/root.gradle.kts index 8ee13ad4..276002e6 100755 --- a/root.gradle.kts +++ b/root.gradle.kts @@ -2,8 +2,8 @@ import groovy.json.JsonOutput import java.io.ByteArrayOutputStream plugins { - id("fabric-loom") version "0.10-SNAPSHOT" apply false - id("com.replaymod.preprocess") version "7746c47" + id("fabric-loom") version "0.11-SNAPSHOT" apply false + id("com.replaymod.preprocess") version "48e02ad" id("com.github.hierynomus.license") version "0.15.0" } @@ -189,6 +189,7 @@ val doRelease by tasks.registering { defaultTasks("bundleJar") preprocess { + val mc11900 = createNode("1.19", 11900, "yarn") val mc11802 = createNode("1.18.2", 11802, "yarn") val mc11801 = createNode("1.18.1", 11801, "yarn") val mc11701 = createNode("1.17.1", 11701, "yarn") @@ -209,6 +210,7 @@ preprocess { val mc10800 = createNode("1.8", 10800, "srg") val mc10710 = createNode("1.7.10", 10710, "srg") + mc11900.link(mc11802, file("versions/mapping-fabric-1.19-1.18.2.txt")) mc11802.link(mc11801) mc11801.link(mc11701, file("versions/mapping-fabric-1.18.1-1.17.1.txt")) mc11701.link(mc11700) diff --git a/settings.gradle.kts b/settings.gradle.kts index a77be868..b3289dad 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -33,6 +33,7 @@ val jGuiVersions = listOf( "1.17.1", "1.18.1", "1.18.2", + "1.19", ) val replayModVersions = listOf( // "1.7.10", @@ -54,6 +55,7 @@ val replayModVersions = listOf( "1.17.1", "1.18.1", "1.18.2", + "1.19", ) rootProject.buildFileName = "root.gradle.kts" diff --git a/src/main/java/com/replaymod/core/ReplayMod.java b/src/main/java/com/replaymod/core/ReplayMod.java index 39e55c12..d93876b6 100644 --- a/src/main/java/com/replaymod/core/ReplayMod.java +++ b/src/main/java/com/replaymod/core/ReplayMod.java @@ -18,7 +18,6 @@ import com.replaymod.replaystudio.studio.ReplayStudio; import com.replaymod.replaystudio.util.I18n; import com.replaymod.simplepathing.ReplayModSimplePathing; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.options.Option; import net.minecraft.resource.DirectoryResourcePack; import net.minecraft.text.LiteralText; import net.minecraft.text.Style; @@ -37,6 +36,11 @@ import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; +//#if MC>=11900 +//#else +import net.minecraft.client.options.Option; +//#endif + public class ReplayMod implements Module, Scheduler { public static final String MOD_ID = "replaymod"; @@ -162,7 +166,8 @@ public class ReplayMod implements Module, Scheduler { keyBindingRegistry.register(); // 1.7.10 crashes when render distance > 16 - //#if MC>=10800 + // Post 1.19 this has become non-trivial to do, install Sodium+Bobby or OptiFine if you need it + //#if MC>=10800 && MC<11900 if (!MCVer.hasOptifine()) { Option.RENDER_DISTANCE.setMax(64f); } diff --git a/src/main/java/com/replaymod/core/mixin/SimpleOptionAccessor.java b/src/main/java/com/replaymod/core/mixin/SimpleOptionAccessor.java new file mode 100644 index 00000000..07b5fddd --- /dev/null +++ b/src/main/java/com/replaymod/core/mixin/SimpleOptionAccessor.java @@ -0,0 +1 @@ +// 1.19+ diff --git a/src/main/java/com/replaymod/core/versions/LangResourcePack.java b/src/main/java/com/replaymod/core/versions/LangResourcePack.java index 63e4304c..a3594f08 100644 --- a/src/main/java/com/replaymod/core/versions/LangResourcePack.java +++ b/src/main/java/com/replaymod/core/versions/LangResourcePack.java @@ -158,8 +158,12 @@ public class LangResourcePack extends AbstractFileResourcePack { String namespace, //#endif String path, + //#if MC>=11900 + //$$ Predicate filter + //#else int maxDepth, Predicate filter + //#endif ) { if (resourcePackType == ResourceType.CLIENT_RESOURCES && "lang".equals(path)) { Path base = baseLangPath(); @@ -174,8 +178,13 @@ public class LangResourcePack extends AbstractFileResourcePack { .map(LANG_FILE_NAME_PATTERN::matcher) .filter(Matcher::matches) .map(matcher -> String.format("%s_%s.json", matcher.group(1), matcher.group(1))) - .filter(filter::test) + //#if MC<11900 + .filter(filter) + //#endif .map(name -> new Identifier(ReplayMod.MOD_ID, "lang/" + name)) + //#if MC>=11900 + //$$ .filter(filter) + //#endif .collect(Collectors.toList()); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/com/replaymod/core/versions/MCVer.java b/src/main/java/com/replaymod/core/versions/MCVer.java index e53ed093..f24937ca 100644 --- a/src/main/java/com/replaymod/core/versions/MCVer.java +++ b/src/main/java/com/replaymod/core/versions/MCVer.java @@ -34,6 +34,7 @@ import net.minecraft.client.util.Window; import java.util.concurrent.CompletableFuture; //#if MC>=11600 +import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; //#else //$$ import net.minecraft.client.resource.language.I18n; @@ -220,7 +221,7 @@ public class MCVer { //#if MC>=11400 public static Optional findButton(Iterable buttonList, @SuppressWarnings("unused") String text, @SuppressWarnings("unused") int id) { //#if MC>=11600 - final TranslatableText message = new TranslatableText(text); + final Text message = new TranslatableText(text); //#else //$$ final String message = I18n.translate(text); //#endif diff --git a/src/main/java/com/replaymod/core/versions/Patterns.java b/src/main/java/com/replaymod/core/versions/Patterns.java index 884eb955..cfd7d5a9 100644 --- a/src/main/java/com/replaymod/core/versions/Patterns.java +++ b/src/main/java/com/replaymod/core/versions/Patterns.java @@ -6,6 +6,7 @@ import com.google.common.util.concurrent.ListenableFuture; import com.replaymod.core.mixin.MinecraftAccessor; import com.replaymod.gradle.remap.Pattern; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.options.GameOptions; import net.minecraft.client.options.KeyBinding; import net.minecraft.client.render.VertexFormat; import net.minecraft.client.texture.TextureManager; @@ -14,6 +15,11 @@ import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.sound.PositionedSoundInstance; import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.resource.Resource; +import net.minecraft.resource.ResourceManager; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; import net.minecraft.util.crash.CrashException; import net.minecraft.util.crash.CrashReport; import net.minecraft.util.crash.CrashReportSection; @@ -61,6 +67,7 @@ import net.minecraft.client.render.BufferBuilder; //$$ import net.minecraft.entity.EntityLivingBase; //#endif +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -549,7 +556,9 @@ class Patterns { @Pattern private static void setCrashReport(MinecraftClient mc, CrashReport report) { - //#if MC>=11800 + //#if MC>=11900 + //$$ mc.setCrashReportSupplier(report); + //#elseif MC>=11800 //$$ mc.setCrashReportSupplier(() -> report); //#else mc.setCrashReport(report); @@ -573,4 +582,91 @@ class Patterns { //$$ return com.replaymod.core.versions.MCVer.getTrackedPosition(entity); //#endif } + + @Pattern + private static Text newTextLiteral(String str) { + //#if MC>=11900 + //$$ return net.minecraft.text.Text.literal(str); + //#else + return new LiteralText(str); + //#endif + } + + @Pattern + private static Text newTextTranslatable(String key, Object...args) { + //#if MC>=11900 + //$$ return net.minecraft.text.Text.translatable(key, args); + //#else + return new TranslatableText(key, args); + //#endif + } + + //#if MC>=11500 + @Pattern + private static Vec3d getTrackedPos(Entity entity) { + //#if MC>=11900 + //$$ return entity.getTrackedPosition().withDelta(0, 0, 0); + //#else + return entity.getTrackedPosition(); + //#endif + } + //#else + //$$ @Pattern private static void getTrackedPos() {} + //#endif + + @Pattern + private static void setGamma(GameOptions options, double value) { + //#if MC>=11900 + //$$ ((com.replaymod.core.mixin.SimpleOptionAccessor) (Object) options.getGamma()).setRawValue(value); + //#elseif MC>=11400 + options.gamma = value; + //#else + //$$ options.gammaSetting = (float) value; + //#endif + } + + @Pattern + private static double getGamma(GameOptions options) { + //#if MC>=11900 + //$$ return options.getGamma().getValue(); + //#else + return options.gamma; + //#endif + } + + @Pattern + private static int getViewDistance(GameOptions options) { + //#if MC>=11900 + //$$ return options.getViewDistance().getValue(); + //#else + return options.viewDistance; + //#endif + } + + @Pattern + private static double getFov(GameOptions options) { + //#if MC>=11900 + //$$ return options.getFov().getValue(); + //#else + return options.fov; + //#endif + } + + @Pattern + private static int getGuiScale(GameOptions options) { + //#if MC>=11900 + //$$ return options.getGuiScale().getValue(); + //#else + return options.guiScale; + //#endif + } + + @Pattern + private static Resource getResource(ResourceManager manager, Identifier id) throws IOException { + //#if MC>=11900 + //$$ return manager.getResourceOrThrow(id); + //#else + return manager.getResource(id); + //#endif + } } diff --git a/src/main/java/com/replaymod/extras/FullBrightness.java b/src/main/java/com/replaymod/extras/FullBrightness.java index b6bef691..0dc22f6c 100644 --- a/src/main/java/com/replaymod/extras/FullBrightness.java +++ b/src/main/java/com/replaymod/extras/FullBrightness.java @@ -72,7 +72,7 @@ public class FullBrightness extends EventRegistrations implements Extra { Type type = getType(); if (type == Type.Gamma || type == Type.Both) { originalGamma = mc.options.gamma; - mc.options.gamma = 1000; + mc.options.gamma = 1000.0; } if (type == Type.NightVision || type == Type.Both) { if (mc.player != null) { diff --git a/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java b/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java index 97e0d20f..01bf1f8f 100644 --- a/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java +++ b/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java @@ -116,7 +116,7 @@ public class PlayerOverviewGui extends GuiScreen implements Closeable { }.setSize(16, 16), new GuiLabel().setText( //#if MC>=11400 - p.getName().asString() + p.getName().getString() //#else //#if MC>=10800 //$$ p.getName() @@ -181,7 +181,7 @@ public class PlayerOverviewGui extends GuiScreen implements Closeable { if (isSpectator(o1) && !isSpectator(o2)) return 1; if (isSpectator(o2) && !isSpectator(o1)) return -1; //#if MC>=11400 - return o1.getName().asString().compareToIgnoreCase(o2.getName().asString()); + return o1.getName().getString().compareToIgnoreCase(o2.getName().getString()); //#else //#if MC>=10800 //$$ return o1.getName().compareToIgnoreCase(o2.getName()); diff --git a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java index 4ccc2d9e..a64be5e0 100644 --- a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java +++ b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java @@ -42,12 +42,9 @@ import java.util.Collections; //#if MC>=10904 import net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket; -import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket; import net.minecraft.network.packet.s2c.play.WorldEventS2CPacket; import net.minecraft.entity.EquipmentSlot; import net.minecraft.util.Hand; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; //#endif //#if MC>=10800 @@ -91,7 +88,7 @@ public class RecordingEventHandler extends EventRegistrations { } } - //#if MC>=11400 + //#if MC>=10904 public void onPacket(Packet packet) { packetListener.save(packet); } @@ -112,16 +109,6 @@ public class RecordingEventHandler extends EventRegistrations { } //#if MC>=10904 - public void onClientSound(SoundEvent sound, SoundCategory category, - double x, double y, double z, float volume, float pitch) { - try { - // Send to all other players in ServerWorldEventHandler#playSoundToAllNearExcept - packetListener.save(new PlaySoundS2CPacket(sound, category, x, y, z, volume, pitch)); - } catch(Exception e) { - e.printStackTrace(); - } - } - public void onClientEffect(int type, BlockPos pos, int data) { try { // Send to all other players in ServerWorldEventHandler#playEvent diff --git a/src/main/java/com/replaymod/recording/mixin/MixinDownloadingPackFinder.java b/src/main/java/com/replaymod/recording/mixin/MixinDownloadingPackFinder.java index 8a581096..196f0ad0 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinDownloadingPackFinder.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinDownloadingPackFinder.java @@ -33,7 +33,11 @@ public abstract class MixinDownloadingPackFinder implements ResourcePackRecorder } //#if MC>=10800 + //#if MC>=11900 + //$$ @Inject(method = "loadServerPack(Ljava/io/File;Lnet/minecraft/resource/ResourcePackSource;)Ljava/util/concurrent/CompletableFuture;", at = @At("HEAD")) + //#else @Inject(method = "loadServerPack", at = @At("HEAD")) + //#endif private void recordDownloadedPack( File file, //#if MC>=11600 diff --git a/src/main/java/com/replaymod/recording/mixin/MixinWorldClient.java b/src/main/java/com/replaymod/recording/mixin/MixinWorldClient.java index 55bc21b2..d4951d9f 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinWorldClient.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinWorldClient.java @@ -5,6 +5,7 @@ import com.replaymod.recording.handler.RecordingEventHandler; import net.minecraft.client.MinecraftClient; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket; import net.minecraft.util.profiler.Profiler; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; @@ -61,12 +62,20 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa //#else DimensionType dimensionType, //#endif - Supplier profiler, boolean bl, boolean bl2, long l) { + Supplier profiler, boolean bl, boolean bl2, long l + //#if MC>=11900 + //$$ , int maxChainedNeighborUpdates + //#endif + ) { super(mutableWorldProperties, registryKey, //#if MC<11602 //$$ registryKey2, //#endif - dimensionType, profiler, bl, bl2, l); + dimensionType, profiler, bl, bl2, l + //#if MC>=11900 + //$$ , maxChainedNeighborUpdates + //#endif + ); } //#else //#if MC>=11400 @@ -102,7 +111,10 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa // but are instead played directly by the client. The server only sends these sounds to // other clients so we have to record them manually. // E.g. Block place sounds - //#if MC>=11400 + //#if MC>=11900 + //$$ @Inject(method = "playSound(Lnet/minecraft/entity/player/PlayerEntity;DDDLnet/minecraft/sound/SoundEvent;Lnet/minecraft/sound/SoundCategory;FFJ)V", + //$$ at = @At("HEAD")) + //#elseif 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")) @@ -114,12 +126,23 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa //$$ @Inject(method = "playSound(Lnet/minecraft/entity/player/EntityPlayer;DDDLnet/minecraft/util/SoundEvent;Lnet/minecraft/util/SoundCategory;FF)V", //$$ at = @At("HEAD")) //#endif - public void replayModRecording_recordClientSound(PlayerEntity player, double x, double y, double z, SoundEvent sound, SoundCategory category, - float volume, float pitch, CallbackInfo ci) { + public void replayModRecording_recordClientSound( + PlayerEntity player, double x, double y, double z, SoundEvent sound, SoundCategory category, + float volume, float pitch, + //#if MC>=11900 + //$$ long seed, + //#endif + CallbackInfo ci) { if (player == this.client.player) { RecordingEventHandler handler = replayModRecording_getRecordingEventHandler(); if (handler != null) { - handler.onClientSound(sound, category, x, y, z, volume, pitch); + // Sent to all other players in ServerWorldEventHandler#playSoundToAllNearExcept + handler.onPacket(new PlaySoundS2CPacket( + sound, category, x, y, z, volume, pitch + //#if MC>=11900 + //$$ , seed + //#endif + )); } } } diff --git a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java index 78b66335..1cc43bbb 100644 --- a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java +++ b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java @@ -1,16 +1,16 @@ -package com.replaymod.recording.mixin; - -import net.minecraft.entity.data.DataTracker; -import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(MobSpawnS2CPacket.class) -public interface SPacketSpawnMobAccessor { - //#if MC<11500 - //$$ @Accessor("dataTracker") - //$$ DataTracker getDataManager(); - //$$ @Accessor("dataTracker") - //$$ void setDataManager(DataTracker value); - //#endif -} +//#if MC<11500 +//$$ package com.replaymod.recording.mixin; +//$$ +//$$ import net.minecraft.entity.data.DataTracker; +//$$ import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.gen.Accessor; +//$$ +//$$ @Mixin(MobSpawnS2CPacket.class) +//$$ public interface SPacketSpawnMobAccessor { +//$$ @Accessor("dataTracker") +//$$ DataTracker getDataManager(); +//$$ @Accessor("dataTracker") +//$$ void setDataManager(DataTracker value); +//$$ } +//#endif diff --git a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java index 73f7f667..b2eb8607 100644 --- a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java +++ b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java @@ -1,16 +1,16 @@ -package com.replaymod.recording.mixin; - -import net.minecraft.entity.data.DataTracker; -import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(PlayerSpawnS2CPacket.class) -public interface SPacketSpawnPlayerAccessor { - //#if MC<11500 - //$$ @Accessor("dataTracker") - //$$ DataTracker getDataManager(); - //$$ @Accessor("dataTracker") - //$$ void setDataManager(DataTracker value); - //#endif -} +//#if MC<11500 +//$$ package com.replaymod.recording.mixin; +//$$ +//$$ import net.minecraft.entity.data.DataTracker; +//$$ import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket; +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.gen.Accessor; +//$$ +//$$ @Mixin(PlayerSpawnS2CPacket.class) +//$$ public interface SPacketSpawnPlayerAccessor { +//$$ @Accessor("dataTracker") +//$$ DataTracker getDataManager(); +//$$ @Accessor("dataTracker") +//$$ void setDataManager(DataTracker value); +//$$ } +//#endif diff --git a/src/main/java/com/replaymod/recording/packet/PacketListener.java b/src/main/java/com/replaymod/recording/packet/PacketListener.java index f99833a5..7fdba653 100644 --- a/src/main/java/com/replaymod/recording/packet/PacketListener.java +++ b/src/main/java/com/replaymod/recording/packet/PacketListener.java @@ -13,8 +13,6 @@ import com.replaymod.recording.ReplayModRecording; import com.replaymod.recording.Setting; import com.replaymod.recording.gui.GuiSavingReplay; import com.replaymod.recording.handler.ConnectionEventHandler; -import com.replaymod.recording.mixin.SPacketSpawnMobAccessor; -import com.replaymod.recording.mixin.SPacketSpawnPlayerAccessor; import com.replaymod.replaystudio.PacketData; import com.replaymod.replaystudio.data.Marker; import com.replaymod.replaystudio.io.ReplayOutputStream; @@ -30,7 +28,6 @@ import net.minecraft.network.ClientConnection; import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.network.packet.s2c.play.DisconnectS2CPacket; import net.minecraft.network.packet.s2c.play.ItemPickupAnimationS2CPacket; -import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket; import net.minecraft.entity.Entity; import net.minecraft.entity.data.DataTracker; @@ -44,6 +41,13 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +//#if MC>=11500 +//#else +//$$ import com.replaymod.recording.mixin.SPacketSpawnMobAccessor; +//$$ import com.replaymod.recording.mixin.SPacketSpawnPlayerAccessor; +//$$ import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; +//#endif + //#if MC>=11400 import net.minecraft.network.packet.s2c.login.LoginSuccessS2CPacket; //#else diff --git a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java index 689f2cfd..01fd26c9 100644 --- a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java +++ b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java @@ -11,6 +11,11 @@ import net.minecraft.client.resource.ClientBuiltinResourcePackProvider; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +//#if MC>=11900 +//$$ import java.net.MalformedURLException; +//$$ import java.net.URL; +//#endif + //#if MC>=11400 import net.minecraft.text.TranslatableText; //#else @@ -192,7 +197,18 @@ public class ResourcePackRecorder { downloadResourcePack(final int requestId, String url, String hash) { ClientBuiltinResourcePackProvider packFinder = mc.getResourcePackDownloader(); ((IDownloadingPackFinder) packFinder).setRequestCallback(file -> recordResourcePack(file, requestId)); - //#if MC>=11700 + //#if MC>=11900 + //$$ try { + //$$ URL theUrl = new URL(url); + //$$ String protocol = theUrl.getProtocol(); + //$$ if (!"http".equals(protocol) && !"https".equals(protocol)) { + //$$ throw new MalformedURLException("Unsupported protocol."); + //$$ } + //$$ return packFinder.download(theUrl, hash, true); + //$$ } catch (MalformedURLException e) { + //$$ return CompletableFuture.failedFuture(e); + //$$ } + //#elseif MC>=11700 //$$ return packFinder.download(url, hash, true); //#else return packFinder.download(url, hash); diff --git a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java index 8b9e2f50..de61bb5f 100644 --- a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java +++ b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend; import com.replaymod.render.blend.data.DMaterial; diff --git a/src/main/java/com/replaymod/render/blend/BlendState.java b/src/main/java/com/replaymod/render/blend/BlendState.java index 0ef4a29b..a13c02a3 100644 --- a/src/main/java/com/replaymod/render/blend/BlendState.java +++ b/src/main/java/com/replaymod/render/blend/BlendState.java @@ -2,7 +2,7 @@ package com.replaymod.render.blend; import com.replaymod.render.blend.data.DScene; import com.replaymod.render.blend.data.Serializer; -//#if MC>=10800 +//#if MC>=10800 && MC<11900 // FIXME 1.15 //#if MC<11500 //$$ import com.replaymod.render.blend.exporters.ChunkExporter; @@ -53,7 +53,7 @@ public class BlendState implements Exporter { this.blenderFile = BlenderFactory.newBlenderFile(file); this.factory = new BlenderFactory(blenderFile); - //#if MC>=10800 + //#if MC>=10800 && MC<11900 RenderState renderState = new RenderState(this); register(renderState); // FIXME 1.15 diff --git a/src/main/java/com/replaymod/render/blend/exporters/EntityExporter.java b/src/main/java/com/replaymod/render/blend/exporters/EntityExporter.java index 8b6834b7..d4dfda21 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/EntityExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/EntityExporter.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.exporters; import com.replaymod.core.versions.MCVer; diff --git a/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java index b25b6556..368e55b8 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.exporters; import com.replaymod.render.blend.BlendMeshBuilder; diff --git a/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java index 2320f236..9fba791c 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.exporters; import com.replaymod.render.blend.BlendMeshBuilder; diff --git a/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java index 2aecf1a4..ec164ed6 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.exporters; import com.replaymod.core.versions.MCVer; diff --git a/src/main/java/com/replaymod/render/blend/exporters/RenderState.java b/src/main/java/com/replaymod/render/blend/exporters/RenderState.java index 9f385ce3..72b7abb9 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/RenderState.java +++ b/src/main/java/com/replaymod/render/blend/exporters/RenderState.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.exporters; import com.replaymod.render.blend.BlendState; diff --git a/src/main/java/com/replaymod/render/blend/exporters/TileEntityExporter.java b/src/main/java/com/replaymod/render/blend/exporters/TileEntityExporter.java index 0fd15a81..18b0ce01 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/TileEntityExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/TileEntityExporter.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.exporters; import com.replaymod.core.versions.MCVer; diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java index af495f1d..683b33f1 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.mixin; import com.replaymod.render.blend.BlendState; diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderItem.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderItem.java index cf41e5e2..48a86d7f 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderItem.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderItem.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.mixin; import com.replaymod.render.blend.BlendState; diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java index 04efa633..fa247467 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.mixin; import com.replaymod.render.blend.BlendState; diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java index 57764995..1dfb808c 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java @@ -1,4 +1,4 @@ -//#if MC>=10800 +//#if MC>=10800 && MC<11900 package com.replaymod.render.blend.mixin; import com.replaymod.render.blend.BlendState; diff --git a/src/main/java/com/replaymod/render/mixin/MixinParticleManager.java b/src/main/java/com/replaymod/render/mixin/MixinParticleManager.java index 456dceac..98eafe37 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinParticleManager.java +++ b/src/main/java/com/replaymod/render/mixin/MixinParticleManager.java @@ -3,7 +3,6 @@ package com.replaymod.render.mixin; //#if MC>=10904 import com.replaymod.core.versions.MCVer; import com.replaymod.render.blend.BlendState; -import com.replaymod.render.blend.exporters.ParticlesExporter; import com.replaymod.render.hooks.EntityRendererHandler; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleManager; @@ -12,6 +11,11 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; +//#if MC>=11900 +//#else +import com.replaymod.render.blend.exporters.ParticlesExporter; +//#endif + //#if MC>=11500 import net.minecraft.client.render.VertexConsumer; import net.minecraft.util.math.Quaternion; @@ -52,10 +56,12 @@ public abstract class MixinParticleManager { } private void buildGeometry(Particle particle, VertexConsumer vertexConsumer, Camera camera, float partialTicks) { + //#if MC<11900 BlendState blendState = BlendState.getState(); if (blendState != null) { blendState.get(ParticlesExporter.class).onRender(particle, partialTicks); } + //#endif particle.buildGeometry(vertexConsumer, camera, partialTicks); } //#else diff --git a/src/main/java/com/replaymod/replay/FullReplaySender.java b/src/main/java/com/replaymod/replay/FullReplaySender.java index d03c7362..aee4dac1 100644 --- a/src/main/java/com/replaymod/replay/FullReplaySender.java +++ b/src/main/java/com/replaymod/replay/FullReplaySender.java @@ -44,8 +44,6 @@ import net.minecraft.network.packet.s2c.play.ScreenHandlerSlotUpdateS2CPacket; import net.minecraft.network.packet.s2c.play.ScreenHandlerPropertyUpdateS2CPacket; import net.minecraft.network.packet.s2c.play.HealthUpdateS2CPacket; import net.minecraft.network.packet.s2c.login.LoginSuccessS2CPacket; -import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; -import net.minecraft.network.packet.s2c.play.PaintingSpawnS2CPacket; import net.minecraft.network.packet.s2c.play.ParticleS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerAbilitiesS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; @@ -59,6 +57,12 @@ import net.minecraft.util.math.Vec3d; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +//#if MC>=11900 +//#else +import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.PaintingSpawnS2CPacket; +//#endif + //#if MC>=11600 //#else //$$ import net.minecraft.network.packet.s2c.play.EntitySpawnGlobalS2CPacket; @@ -472,11 +476,13 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend boolean relevantPacket = packet instanceof PlayerSpawnS2CPacket || packet instanceof EntitySpawnS2CPacket + //#if MC<11900 || packet instanceof MobSpawnS2CPacket + || packet instanceof PaintingSpawnS2CPacket + //#endif //#if MC<11600 //$$ || packet instanceof EntitySpawnGlobalS2CPacket //#endif - || packet instanceof PaintingSpawnS2CPacket || packet instanceof ExperienceOrbSpawnS2CPacket || packet instanceof EntitiesDestroyS2CPacket; if (!relevantPacket) { @@ -688,6 +694,9 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend , packet.isDebugWorld() , packet.isFlatWorld() //#endif + //#if MC>=11900 + //$$ , java.util.Optional.empty() + //#endif ); //#else //#if MC>=10800 @@ -744,6 +753,9 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend //$$ respawn.getGeneratorType(), //$$ GameMode.SPECTATOR //#endif + //#if MC>=11900 + //$$ , java.util.Optional.empty() + //#endif ); //#else //#if MC>=10809 diff --git a/src/main/java/com/replaymod/replay/camera/CameraEntity.java b/src/main/java/com/replaymod/replay/camera/CameraEntity.java index d990240e..797c0ed9 100644 --- a/src/main/java/com/replaymod/replay/camera/CameraEntity.java +++ b/src/main/java/com/replaymod/replay/camera/CameraEntity.java @@ -31,10 +31,6 @@ import net.minecraft.stat.StatHandler; import net.minecraft.util.Identifier; import net.minecraft.util.math.Box; -//#if MC>=11802 -//$$ import net.minecraft.tag.TagKey; -//#endif - //#if FABRIC>=1 //#else //$$ import net.minecraftforge.client.event.EntityViewRenderEvent; @@ -47,7 +43,11 @@ import net.minecraft.util.math.Box; //#if MC>=11400 import net.minecraft.client.world.ClientWorld; import net.minecraft.fluid.Fluid; +//#if MC>=11802 +//$$ import net.minecraft.tag.TagKey; +//#else import net.minecraft.tag.Tag; +//#endif import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.HitResult; //#else @@ -547,7 +547,11 @@ public class CameraEntity //#if MC>=11400 @Override + //#if MC>=11900 + //$$ public void onEquipStack(EquipmentSlot slot, ItemStack stack, ItemStack itemStack) { + //#else protected void onEquipStack(ItemStack itemStack_1) { + //#endif // Suppress equip sounds } //#endif diff --git a/src/main/java/com/replaymod/replay/handler/GuiHandler.java b/src/main/java/com/replaymod/replay/handler/GuiHandler.java index 2bc2f79d..00bb3d9f 100644 --- a/src/main/java/com/replaymod/replay/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/replay/handler/GuiHandler.java @@ -64,11 +64,11 @@ public class GuiHandler extends EventRegistrations { mod.getReplayHandler().getReplaySender().setReplaySpeed(0); //#if MC>=11600 - final TranslatableText BUTTON_OPTIONS = new TranslatableText("menu.options"); - final TranslatableText BUTTON_EXIT_SERVER = new TranslatableText("menu.disconnect"); - final TranslatableText BUTTON_ADVANCEMENTS = new TranslatableText("gui.advancements"); - final TranslatableText BUTTON_STATS = new TranslatableText("gui.stats"); - final TranslatableText BUTTON_OPEN_TO_LAN = new TranslatableText("menu.shareToLan"); + final Text BUTTON_OPTIONS = new TranslatableText("menu.options"); + final Text BUTTON_EXIT_SERVER = new TranslatableText("menu.disconnect"); + final Text BUTTON_ADVANCEMENTS = new TranslatableText("gui.advancements"); + final Text BUTTON_STATS = new TranslatableText("gui.stats"); + final Text BUTTON_OPEN_TO_LAN = new TranslatableText("menu.shareToLan"); //#else //#if MC>=11400 //$$ final String BUTTON_OPTIONS = I18n.translate("menu.options"); diff --git a/src/main/resources/mixins.core.replaymod.json b/src/main/resources/mixins.core.replaymod.json index d1232a20..a326dc8d 100644 --- a/src/main/resources/mixins.core.replaymod.json +++ b/src/main/resources/mixins.core.replaymod.json @@ -22,6 +22,9 @@ "GuiScreenAccessor", "KeyBindingAccessor", "MinecraftAccessor", + //#if MC>=11900 + //$$ "SimpleOptionAccessor", + //#endif "TimerAccessor" ], "compatibilityLevel": "JAVA_8", diff --git a/src/main/resources/mixins.recording.replaymod.json b/src/main/resources/mixins.recording.replaymod.json index 09545afc..4d8edc84 100644 --- a/src/main/resources/mixins.recording.replaymod.json +++ b/src/main/resources/mixins.recording.replaymod.json @@ -8,8 +8,10 @@ "EntityLivingBaseAccessor", "IntegratedServerAccessor", "NetworkManagerAccessor", - "SPacketSpawnMobAccessor", - "SPacketSpawnPlayerAccessor", + //#if MC<11500 + //$$ "SPacketSpawnMobAccessor", + //$$ "SPacketSpawnPlayerAccessor", + //#endif "MixinServerInfo", //#if MC>=10800 "MixinDownloadingPackFinder", diff --git a/src/main/resources/mixins.render.blend.replaymod.json b/src/main/resources/mixins.render.blend.replaymod.json index abf980ae..156da80c 100644 --- a/src/main/resources/mixins.render.blend.replaymod.json +++ b/src/main/resources/mixins.render.blend.replaymod.json @@ -20,11 +20,13 @@ "ItemRendererAccessor", //#endif "ParticleAccessor", + //#if MC<11900 "MixinRenderGlobal", "MixinRenderItem", "MixinRenderLivingBase", "MixinRenderManager" //#endif + //#endif ], "compatibilityLevel": "JAVA_8", "minVersion": "0.6.11", diff --git a/versions/1.14.4-forge/mapping.txt b/versions/1.14.4-forge/mapping.txt index 52a22ceb..3bd9a84e 100644 --- a/versions/1.14.4-forge/mapping.txt +++ b/versions/1.14.4-forge/mapping.txt @@ -3,6 +3,8 @@ net.minecraft.potion.EffectInstance net.minecraft.potion.PotionEffect net.minecraft.client.gui.screen.AddServerScreen net.minecraft.client.gui.GuiScreenAddServer net.minecraft.resources.AbstractResourcePack net.minecraft.client.resources.AbstractResourcePack net.minecraft.resources.FolderPack net.minecraft.client.resources.FolderResourcePack +net.minecraft.resources.IResource net.minecraft.client.resources.IResource +net.minecraft.resources.IResourceManager net.minecraft.client.resources.IResourceManager net.minecraft.client.resources.DownloadingPackFinder net.minecraft.client.resources.ResourcePackRepository net.minecraft.client.renderer.chunk.ChunkRenderTask net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator net.minecraft.client.settings.AbstractOption net.minecraft.client.settings.GameSettings.Options diff --git a/versions/1.19/.gitkeep b/versions/1.19/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/versions/1.19/src/main/java/com/replaymod/core/mixin/SimpleOptionAccessor.java b/versions/1.19/src/main/java/com/replaymod/core/mixin/SimpleOptionAccessor.java new file mode 100644 index 00000000..e31c2de9 --- /dev/null +++ b/versions/1.19/src/main/java/com/replaymod/core/mixin/SimpleOptionAccessor.java @@ -0,0 +1,11 @@ +package com.replaymod.core.mixin; + +import net.minecraft.client.option.SimpleOption; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(SimpleOption.class) +public interface SimpleOptionAccessor { + @Accessor("value") + void setRawValue(T value); +} diff --git a/versions/mapping-fabric-1.19-1.18.2.txt b/versions/mapping-fabric-1.19-1.18.2.txt new file mode 100644 index 00000000..7ac37640 --- /dev/null +++ b/versions/mapping-fabric-1.19-1.18.2.txt @@ -0,0 +1,4 @@ +# FIXME remap should be able to map these without us explicitly declaring them +net.minecraft.client.render.WorldRenderer fullUpdateFuture field_34808 +net.minecraft.client.render.WorldRenderer updateFinished field_34809 +net.minecraft.client.render.WorldRenderer shouldUpdate field_34810