Update 1.14.4 yarn
This commit is contained in:
@@ -27,31 +27,31 @@ import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.network.NetworkState;
|
||||
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.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.network.packet.s2c.play.ChatMessageS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.DisconnectS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.EntitiesDestroyS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.EntitySpawnGlobalS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.EntitySpawnS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.ExperienceBarUpdateS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.ExperienceOrbSpawnS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.GameJoinS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.GameStateChangeS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.CloseContainerS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.OpenHorseContainerS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.ContainerSlotUpdateS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.ContainerPropertyUpdateS2CPacket;
|
||||
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;
|
||||
import net.minecraft.network.packet.s2c.play.PlayerRespawnS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.SignEditorOpenS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.StatisticsS2CPacket;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.chunk.ChunkProvider;
|
||||
@@ -66,9 +66,9 @@ import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
|
||||
//#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.network.packet.s2c.play.PlayerActionResponseS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.OpenContainerS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.OpenWrittenBookS2CPacket;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.text.TranslatableText;
|
||||
//#else
|
||||
@@ -92,9 +92,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;
|
||||
import net.minecraft.network.packet.s2c.play.AdvancementUpdateS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.SelectAdvancementTabS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.SynchronizeRecipesS2CPacket;
|
||||
//#endif
|
||||
//#if MC>=11002
|
||||
import net.minecraft.world.GameMode;
|
||||
@@ -103,15 +103,15 @@ import net.minecraft.world.GameMode;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10904
|
||||
import net.minecraft.client.network.packet.UnloadChunkS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.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.packet.s2c.play.ResourcePackSendS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.SetCameraEntityS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.TitleS2CPacket;
|
||||
import net.minecraft.network.NetworkSide;
|
||||
//#else
|
||||
//$$ import org.apache.commons.io.Charsets;
|
||||
@@ -137,11 +137,11 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
*/
|
||||
private static final List<Class> BAD_PACKETS = Arrays.<Class>asList(
|
||||
//#if MC>=11404
|
||||
class_4463.class, // PlayerActionAckPacket
|
||||
PlayerActionResponseS2CPacket.class,
|
||||
//#endif
|
||||
//#if MC>=11400
|
||||
OpenWrittenBookS2CPacket.class,
|
||||
OpenContainerPacket.class,
|
||||
OpenContainerS2CPacket.class,
|
||||
//#endif
|
||||
//#if MC>=11200
|
||||
SynchronizeRecipesS2CPacket.class,
|
||||
@@ -153,10 +153,10 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
TitleS2CPacket.class,
|
||||
//#endif
|
||||
HealthUpdateS2CPacket.class,
|
||||
GuiOpenS2CPacket.class,
|
||||
GuiCloseS2CPacket.class,
|
||||
GuiSlotUpdateS2CPacket.class,
|
||||
GuiUpdateS2CPacket.class,
|
||||
OpenHorseContainerS2CPacket.class,
|
||||
CloseContainerS2CPacket.class,
|
||||
ContainerSlotUpdateS2CPacket.class,
|
||||
ContainerPropertyUpdateS2CPacket.class,
|
||||
SignEditorOpenS2CPacket.class,
|
||||
StatisticsS2CPacket.class,
|
||||
ExperienceBarUpdateS2CPacket.class,
|
||||
|
||||
@@ -69,7 +69,7 @@ public class InputReplayTimer extends WrappedTimer {
|
||||
//#endif
|
||||
|
||||
//#if MC>=11400
|
||||
ReplayMod.instance.executor.executeTaskQueue();
|
||||
ReplayMod.instance.executor.runTasks();
|
||||
//#endif
|
||||
|
||||
// If we are in a replay, we have to manually process key and mouse events as the
|
||||
|
||||
@@ -18,8 +18,8 @@ import io.netty.channel.ChannelHandler;
|
||||
import io.netty.channel.ChannelHandlerAdapter;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.network.packet.PlayerPositionLookS2CPacket;
|
||||
import net.minecraft.client.network.packet.PlayerRespawnS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket;
|
||||
import net.minecraft.network.packet.s2c.play.PlayerRespawnS2CPacket;
|
||||
import net.minecraft.network.NetworkState;
|
||||
import net.minecraft.network.NetworkSide;
|
||||
import net.minecraft.network.Packet;
|
||||
|
||||
14
src/main/java/com/replaymod/replay/ReplayHandler.java
Executable file → Normal file
14
src/main/java/com/replaymod/replay/ReplayHandler.java
Executable file → Normal file
@@ -538,9 +538,9 @@ public class ReplayHandler {
|
||||
// Update all entity positions (especially prev/lastTick values)
|
||||
for (Entity entity : loadedEntityList(mc.world)) {
|
||||
skipTeleportInterpolation(entity);
|
||||
entity.prevRenderX = entity.prevX = Entity_getX(entity);
|
||||
entity.prevRenderY = entity.prevY = Entity_getY(entity);
|
||||
entity.prevRenderZ = entity.prevZ = Entity_getZ(entity);
|
||||
entity.lastRenderX = entity.prevX = Entity_getX(entity);
|
||||
entity.lastRenderY = entity.prevY = Entity_getY(entity);
|
||||
entity.lastRenderZ = entity.prevZ = Entity_getZ(entity);
|
||||
entity.prevYaw = entity.yaw;
|
||||
entity.prevPitch = entity.pitch;
|
||||
}
|
||||
@@ -694,9 +694,9 @@ public class ReplayHandler {
|
||||
//#endif
|
||||
for (Entity entity : loadedEntityList(mc.world)) {
|
||||
skipTeleportInterpolation(entity);
|
||||
entity.prevRenderX = entity.prevX = Entity_getX(entity);
|
||||
entity.prevRenderY = entity.prevY = Entity_getY(entity);
|
||||
entity.prevRenderZ = entity.prevZ = Entity_getZ(entity);
|
||||
entity.lastRenderX = entity.prevX = Entity_getX(entity);
|
||||
entity.lastRenderY = entity.prevY = Entity_getY(entity);
|
||||
entity.lastRenderZ = entity.prevZ = Entity_getZ(entity);
|
||||
entity.prevYaw = entity.yaw;
|
||||
entity.prevPitch = entity.pitch;
|
||||
}
|
||||
@@ -724,7 +724,7 @@ public class ReplayHandler {
|
||||
if (entity instanceof LivingEntity && !(entity instanceof CameraEntity)) {
|
||||
LivingEntity e = (LivingEntity) entity;
|
||||
EntityLivingBaseAccessor ea = (EntityLivingBaseAccessor) e;
|
||||
e.setPosition(ea.getInterpTargetX(), ea.getInterpTargetY(), ea.getInterpTargetZ());
|
||||
e.updatePosition(ea.getInterpTargetX(), ea.getInterpTargetY(), ea.getInterpTargetZ());
|
||||
e.yaw = (float) ea.getInterpTargetYaw();
|
||||
e.pitch = (float) ea.getInterpTargetPitch();
|
||||
}
|
||||
|
||||
@@ -179,9 +179,9 @@ public class CameraEntity
|
||||
* @param z Z coordinate
|
||||
*/
|
||||
public void setCameraPosition(double x, double y, double z) {
|
||||
this.prevRenderX = this.prevX = x;
|
||||
this.prevRenderY = this.prevY = y;
|
||||
this.prevRenderZ = this.prevZ = z;
|
||||
this.lastRenderX = this.prevX = x;
|
||||
this.lastRenderY = this.prevY = y;
|
||||
this.lastRenderZ = this.prevZ = z;
|
||||
Entity_setPos(this, x, y, z);
|
||||
updateBoundingBox();
|
||||
}
|
||||
@@ -226,9 +226,9 @@ public class CameraEntity
|
||||
Entity_setPos(this, Entity_getX(to), Entity_getY(to), Entity_getZ(to));
|
||||
this.yaw = to.yaw;
|
||||
this.pitch = to.pitch;
|
||||
this.prevRenderX = to.prevRenderX;
|
||||
this.prevRenderY = to.prevRenderY + yOffset;
|
||||
this.prevRenderZ = to.prevRenderZ;
|
||||
this.lastRenderX = to.lastRenderX;
|
||||
this.lastRenderY = to.lastRenderY + yOffset;
|
||||
this.lastRenderZ = to.lastRenderZ;
|
||||
updateBoundingBox();
|
||||
}
|
||||
|
||||
@@ -375,7 +375,7 @@ public class CameraEntity
|
||||
|
||||
//#if MC>=11400
|
||||
@Override
|
||||
public boolean shouldRenderFrom(double double_1, double double_2, double double_3) {
|
||||
public boolean shouldRender(double double_1, double double_2, double double_3) {
|
||||
return false; // never render the camera otherwise it'd be visible e.g. in 3rd-person or with shaders
|
||||
}
|
||||
//#else
|
||||
|
||||
@@ -57,9 +57,9 @@ public class SpectatorCameraController implements CameraController {
|
||||
if (view instanceof PlayerEntity) {
|
||||
PlayerEntity viewPlayer = (PlayerEntity) view;
|
||||
//#if MC>=11400
|
||||
camera.setEquippedStack(EquipmentSlot.HEAD, viewPlayer.getEquippedStack(EquipmentSlot.HEAD));
|
||||
camera.setEquippedStack(EquipmentSlot.MAINHAND, viewPlayer.getEquippedStack(EquipmentSlot.MAINHAND));
|
||||
camera.setEquippedStack(EquipmentSlot.OFFHAND, viewPlayer.getEquippedStack(EquipmentSlot.OFFHAND));
|
||||
camera.equipStack(EquipmentSlot.HEAD, viewPlayer.getEquippedStack(EquipmentSlot.HEAD));
|
||||
camera.equipStack(EquipmentSlot.MAINHAND, viewPlayer.getEquippedStack(EquipmentSlot.MAINHAND));
|
||||
camera.equipStack(EquipmentSlot.OFFHAND, viewPlayer.getEquippedStack(EquipmentSlot.OFFHAND));
|
||||
//#else
|
||||
//$$ camera.inventory = viewPlayer.inventory;
|
||||
//#endif
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.replaymod.replay.mixin;
|
||||
|
||||
import net.minecraft.client.render.FirstPersonRenderer;
|
||||
import net.minecraft.client.render.item.HeldItemRenderer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(FirstPersonRenderer.class)
|
||||
@Mixin(HeldItemRenderer.class)
|
||||
public interface FirstPersonRendererAccessor {
|
||||
//#if MC>=10904
|
||||
@Accessor("mainHand")
|
||||
|
||||
@@ -28,7 +28,7 @@ public abstract class MixinKeyboardListener {
|
||||
at = @At(
|
||||
value = "INVOKE",
|
||||
//#if MC>=11400
|
||||
target = "Lnet/minecraft/client/util/ScreenshotUtils;method_1659(Ljava/io/File;IILnet/minecraft/client/gl/GlFramebuffer;Ljava/util/function/Consumer;)V"
|
||||
target = "Lnet/minecraft/client/util/ScreenshotUtils;method_1659(Ljava/io/File;IILnet/minecraft/client/gl/Framebuffer;Ljava/util/function/Consumer;)V"
|
||||
//#else
|
||||
//#if MC>=11400
|
||||
//$$ target = "Lnet/minecraft/util/ScreenShotHelper;saveScreenshot(Ljava/io/File;IILnet/minecraft/client/shader/Framebuffer;Ljava/util/function/Consumer;)V"
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
//#if MC>=11400
|
||||
import net.minecraft.util.SystemUtil;
|
||||
import net.minecraft.util.Util;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.Minecraft;
|
||||
//#endif
|
||||
@@ -17,7 +17,7 @@ import net.minecraft.util.SystemUtil;
|
||||
public class MixinRenderItem {
|
||||
//#if MC>=11400
|
||||
//#if MC>=11400
|
||||
@Redirect(method = "renderGlint", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/SystemUtil;getMeasuringTimeMs()J"))
|
||||
@Redirect(method = "renderGlint", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;getMeasuringTimeMs()J"))
|
||||
//#else
|
||||
//$$ @Redirect(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;milliTime()J"))
|
||||
//#endif
|
||||
@@ -31,7 +31,7 @@ public class MixinRenderItem {
|
||||
return replayHandler.getReplaySender().currentTimeStamp();
|
||||
}
|
||||
//#if MC>=11400
|
||||
return SystemUtil.getMeasuringTimeMs();
|
||||
return Util.getMeasuringTimeMs();
|
||||
//#else
|
||||
//$$ return Minecraft.getSystemTime();
|
||||
//#endif
|
||||
|
||||
@@ -24,7 +24,7 @@ import static com.replaymod.core.versions.MCVer.*;
|
||||
//#endif
|
||||
public abstract class MixinRenderLivingBase {
|
||||
//#if FABRIC>=1
|
||||
@Inject(method = "method_4055", at = @At("HEAD"), cancellable = true)
|
||||
@Inject(method = "hasLabel", at = @At("HEAD"), cancellable = true)
|
||||
//#else
|
||||
//$$ @Inject(method = "canRenderName(Lnet/minecraft/entity/LivingEntity;)Z", at = @At("HEAD"), cancellable = true)
|
||||
//#endif
|
||||
@@ -36,17 +36,17 @@ public abstract class MixinRenderLivingBase {
|
||||
}
|
||||
|
||||
@Redirect(
|
||||
method = "render",
|
||||
method = "render(Lnet/minecraft/entity/LivingEntity;FFFFFF)V",
|
||||
at = @At(
|
||||
value = "INVOKE",
|
||||
//#if MC>=11400
|
||||
target = "Lnet/minecraft/entity/LivingEntity;canSeePlayer(Lnet/minecraft/entity/player/PlayerEntity;)Z"
|
||||
target = "Lnet/minecraft/entity/LivingEntity;isInvisibleTo(Lnet/minecraft/entity/player/PlayerEntity;)Z"
|
||||
//#else
|
||||
//$$ target = "Lnet/minecraft/entity/EntityLivingBase;isInvisibleToPlayer(Lnet/minecraft/entity/player/EntityPlayer;)Z"
|
||||
//#endif
|
||||
)
|
||||
)
|
||||
private boolean replayModReplay_shouldInvisibleNotBeRendered(LivingEntity entity, PlayerEntity thePlayer) {
|
||||
return thePlayer instanceof CameraEntity || entity.canSeePlayer(thePlayer);
|
||||
return thePlayer instanceof CameraEntity || entity.isInvisibleTo(thePlayer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
//#if MC>=11400
|
||||
import net.minecraft.util.SystemUtil;
|
||||
import net.minecraft.util.Util;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.Minecraft;
|
||||
//#endif
|
||||
@@ -16,7 +16,7 @@ import net.minecraft.util.SystemUtil;
|
||||
@Mixin(EndPortalBlockEntityRenderer.class)
|
||||
public class MixinTileEntityEndPortalRenderer {
|
||||
//#if MC>=11400
|
||||
@Redirect(method = "method_3591", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/SystemUtil;getMeasuringTimeMs()J"))
|
||||
@Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;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"))
|
||||
@@ -38,7 +38,7 @@ public class MixinTileEntityEndPortalRenderer {
|
||||
return replayHandler.getReplaySender().currentTimeStamp();
|
||||
}
|
||||
//#if MC>=11400
|
||||
return SystemUtil.getMeasuringTimeMs();
|
||||
return Util.getMeasuringTimeMs();
|
||||
//#else
|
||||
//$$ return Minecraft.getSystemTime();
|
||||
//#endif
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
//#if MC>=10800
|
||||
package com.replaymod.replay.mixin;
|
||||
|
||||
import net.minecraft.client.render.ChunkRenderDispatcher;
|
||||
import net.minecraft.client.render.BuiltChunkStorage;
|
||||
import net.minecraft.client.render.chunk.ChunkRenderer;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
@Mixin(ChunkRenderDispatcher.class)
|
||||
@Mixin(BuiltChunkStorage.class)
|
||||
public abstract class MixinViewFrustum {
|
||||
@Redirect(
|
||||
method = "updateCameraPosition",
|
||||
|
||||
Reference in New Issue
Block a user