Update to MC 1.14.1
The ReplayStudio update also fixes an issue with reading the PlayerListEntryPacket leading to NPEs during Quick Mode.
This commit is contained in:
@@ -21,8 +21,8 @@ import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelPromise;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.network.OtherClientPlayerEntity;
|
||||
import net.minecraft.client.gui.menu.DownloadingTerrainScreen;
|
||||
import net.minecraft.client.gui.menu.NoticeScreen;
|
||||
import net.minecraft.client.gui.screen.DownloadingTerrainScreen;
|
||||
import net.minecraft.client.gui.screen.NoticeScreen;
|
||||
import net.minecraft.client.world.ClientWorld;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.network.NetworkState;
|
||||
@@ -31,7 +31,7 @@ import net.minecraft.network.Packet;
|
||||
import net.minecraft.util.PacketByteBuf;
|
||||
import net.minecraft.client.network.packet.LoginSuccessS2CPacket;
|
||||
import net.minecraft.client.network.packet.*;
|
||||
import net.minecraft.text.TextComponent;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.chunk.ChunkProvider;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
@@ -40,7 +40,7 @@ import org.apache.commons.io.IOUtils;
|
||||
//#if MC>=11400
|
||||
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.text.TranslatableTextComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.resources.I18n;
|
||||
//$$ import net.minecraft.entity.Entity;
|
||||
@@ -343,7 +343,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
for (PlayerEntity playerEntity : playerEntities(mc.world)) {
|
||||
if (!playerEntity.field_6016 && playerEntity instanceof OtherClientPlayerEntity) {
|
||||
//#if MC>=11300
|
||||
playerEntity.updateState();
|
||||
playerEntity.tickMovement();
|
||||
//#else
|
||||
//$$ playerEntity.onLivingUpdate();
|
||||
//#endif
|
||||
@@ -436,7 +436,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
|
||||
NetworkState state = loginPhase ? NetworkState.LOGIN : NetworkState.PLAY;
|
||||
//#if MC>=10800
|
||||
Packet p = state.getPacketHandler(NetworkSide.CLIENT, i);
|
||||
Packet p = state.getPacketHandler(NetworkSide.CLIENTBOUND, i);
|
||||
//#else
|
||||
//$$ Packet p = Packet.generatePacket(state.func_150755_b(), i);
|
||||
//#endif
|
||||
@@ -475,8 +475,8 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
mc.openScreen(new NoticeScreen(
|
||||
//#if MC>=11400
|
||||
() -> {},
|
||||
new TranslatableTextComponent("replaymod.error.unknownrestriction1"),
|
||||
new TranslatableTextComponent("replaymod.error.unknownrestriction2", unknown)
|
||||
new TranslatableComponent("replaymod.error.unknownrestriction1"),
|
||||
new TranslatableComponent("replaymod.error.unknownrestriction2", unknown)
|
||||
//#else
|
||||
//$$ I18n.format("replaymod.error.unknownrestriction1"),
|
||||
//$$ I18n.format("replaymod.error.unknownrestriction2", unknown)
|
||||
@@ -487,7 +487,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
||||
}
|
||||
}
|
||||
if (p instanceof DisconnectS2CPacket) {
|
||||
TextComponent reason = ((DisconnectS2CPacket) p).getReason();
|
||||
Component reason = ((DisconnectS2CPacket) p).getReason();
|
||||
String message = reason.getString();
|
||||
if ("Please update to view this replay.".equals(message)) {
|
||||
// This version of the mod supports replay restrictions so we are allowed
|
||||
|
||||
@@ -676,7 +676,7 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe
|
||||
byteBuf.skipBytes(8); // Skip packet length & timestamp
|
||||
|
||||
int packetId = packetBuf.readVarInt();
|
||||
Packet<?> mcPacket = state.getPacketHandler(NetworkSide.CLIENT, packetId);
|
||||
Packet<?> mcPacket = state.getPacketHandler(NetworkSide.CLIENTBOUND, packetId);
|
||||
mcPacket.read(packetBuf);
|
||||
return mcPacket;
|
||||
} catch (Exception e) {
|
||||
@@ -710,7 +710,7 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe
|
||||
}
|
||||
|
||||
int packetId = packetBuf.readVarInt();
|
||||
Packet<?> mcPacket = NetworkState.PLAY.getPacketHandler(NetworkSide.CLIENT, packetId);
|
||||
Packet<?> mcPacket = NetworkState.PLAY.getPacketHandler(NetworkSide.CLIENTBOUND, packetId);
|
||||
mcPacket.read(packetBuf);
|
||||
return mcPacket;
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -25,7 +25,7 @@ import de.johni0702.minecraft.gui.popup.AbstractGuiPopup;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.embedded.EmbeddedChannel;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.Screen;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.network.ClientLoginNetworkHandler;
|
||||
import net.minecraft.client.resource.language.I18n;
|
||||
import net.minecraft.util.crash.CrashReport;
|
||||
@@ -229,7 +229,7 @@ public class ReplayHandler {
|
||||
//#endif
|
||||
|
||||
//#if MC>=10800
|
||||
ClientConnection networkManager = new ClientConnection(NetworkSide.CLIENT) {
|
||||
ClientConnection networkManager = new ClientConnection(NetworkSide.CLIENTBOUND) {
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable t) {
|
||||
t.printStackTrace();
|
||||
|
||||
@@ -284,12 +284,12 @@ public class CameraEntity
|
||||
}
|
||||
|
||||
@Override
|
||||
public void method_5823() {
|
||||
public void afterSpawn() {
|
||||
// Make sure our world is up-to-date in case of world changes
|
||||
if (this.client.world != null) {
|
||||
this.world = this.client.world;
|
||||
}
|
||||
super.method_5823();
|
||||
super.afterSpawn();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -428,19 +428,19 @@ public class CameraEntity
|
||||
|
||||
//#if MC>=10904
|
||||
@Override
|
||||
public float method_7279() {
|
||||
public float getAttackCooldownProgressPerTick() {
|
||||
Entity view = this.client.getCameraEntity();
|
||||
if (view != this && view instanceof PlayerEntity) {
|
||||
return ((PlayerEntity) view).method_7279();
|
||||
return ((PlayerEntity) view).getAttackCooldownProgressPerTick();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float method_7261(float adjustTicks) {
|
||||
public float getAttackCooldownProgress(float adjustTicks) {
|
||||
Entity view = this.client.getCameraEntity();
|
||||
if (view != this && view instanceof PlayerEntity) {
|
||||
return ((PlayerEntity) view).method_7261(adjustTicks);
|
||||
return ((PlayerEntity) view).getAttackCooldownProgress(adjustTicks);
|
||||
}
|
||||
// Default to 1 as to not render the cooldown indicator (renders for < 1)
|
||||
return 1;
|
||||
@@ -707,8 +707,8 @@ public class CameraEntity
|
||||
acc.setPrevEquippedProgressOffHand(1);
|
||||
acc.setEquippedProgressMainHand(1);
|
||||
acc.setEquippedProgressOffHand(1);
|
||||
acc.setItemStackMainHand(player.getEquippedStack(EquipmentSlot.HAND_MAIN));
|
||||
acc.setItemStackOffHand(player.getEquippedStack(EquipmentSlot.HAND_OFF));
|
||||
acc.setItemStackMainHand(player.getEquippedStack(EquipmentSlot.MAINHAND));
|
||||
acc.setItemStackOffHand(player.getEquippedStack(EquipmentSlot.OFFHAND));
|
||||
//#else
|
||||
//$$ acc.setPrevEquippedProgress(1);
|
||||
//$$ acc.setEquippedProgress(1);
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.google.common.base.Supplier;
|
||||
import com.google.common.util.concurrent.FutureCallback;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.SettableFuture;
|
||||
import net.minecraft.text.TextFormat;
|
||||
import net.minecraft.ChatFormat;
|
||||
import com.replaymod.core.ReplayMod;
|
||||
import com.replaymod.core.SettingsRegistry;
|
||||
import com.replaymod.core.gui.GuiReplaySettings;
|
||||
@@ -36,7 +36,7 @@ import de.johni0702.minecraft.gui.utils.lwjgl.Dimension;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.ReadablePoint;
|
||||
import lombok.Getter;
|
||||
import net.minecraft.client.gui.menu.NoticeScreen;
|
||||
import net.minecraft.client.gui.screen.NoticeScreen;
|
||||
import net.minecraft.util.crash.CrashReport;
|
||||
import net.minecraft.util.crash.CrashException;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
@@ -57,7 +57,7 @@ import java.util.List;
|
||||
import static com.replaymod.replay.ReplayModReplay.LOGGER;
|
||||
|
||||
//#if MC>=11400
|
||||
import net.minecraft.text.TranslatableTextComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.resources.I18n;
|
||||
//#endif
|
||||
@@ -144,8 +144,8 @@ public class GuiReplayViewer extends GuiScreen {
|
||||
getMinecraft().openScreen(new NoticeScreen(
|
||||
//#if MC>=11400
|
||||
() -> {},
|
||||
new TranslatableTextComponent("replaymod.gui.viewer.delete.failed1"),
|
||||
new TranslatableTextComponent("replaymod.gui.viewer.delete.failed2")
|
||||
new TranslatableComponent("replaymod.gui.viewer.delete.failed1"),
|
||||
new TranslatableComponent("replaymod.gui.viewer.delete.failed2")
|
||||
//#else
|
||||
//$$ I18n.format("replaymod.gui.viewer.delete.failed1"),
|
||||
//$$ I18n.format("replaymod.gui.viewer.delete.failed2")
|
||||
@@ -170,7 +170,7 @@ public class GuiReplayViewer extends GuiScreen {
|
||||
String name = list.getSelected().name.getText();
|
||||
GuiYesNoPopup popup = GuiYesNoPopup.open(GuiReplayViewer.this,
|
||||
new GuiLabel().setI18nText("replaymod.gui.viewer.delete.linea").setColor(Colors.BLACK),
|
||||
new GuiLabel().setI18nText("replaymod.gui.viewer.delete.lineb", name + TextFormat.RESET).setColor(Colors.BLACK)
|
||||
new GuiLabel().setI18nText("replaymod.gui.viewer.delete.lineb", name + ChatFormat.RESET).setColor(Colors.BLACK)
|
||||
).setYesI18nLabel("replaymod.gui.delete").setNoI18nLabel("replaymod.gui.cancel");
|
||||
Futures.addCallback(popup.getFuture(), new FutureCallback<Boolean>() {
|
||||
@Override
|
||||
@@ -404,7 +404,7 @@ public class GuiReplayViewer extends GuiScreen {
|
||||
public GuiReplayEntry(File file, ReplayMetaData metaData, BufferedImage thumbImage) {
|
||||
this.file = file;
|
||||
|
||||
name.setText(TextFormat.UNDERLINE + Utils.fileNameToReplayName(file.getName()));
|
||||
name.setText(ChatFormat.UNDERLINE + Utils.fileNameToReplayName(file.getName()));
|
||||
if (StringUtils.isEmpty(metaData.getServerName())
|
||||
|| !ReplayMod.instance.getSettingsRegistry().get(Setting.SHOW_SERVER_IPS)) {
|
||||
server.setI18nText("replaymod.gui.iphidden").setColor(Colors.DARK_RED);
|
||||
|
||||
@@ -4,10 +4,10 @@ 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.menu.PauseMenuScreen;
|
||||
import net.minecraft.client.gui.MainMenuScreen;
|
||||
import net.minecraft.client.gui.menu.MultiplayerScreen;
|
||||
import net.minecraft.client.gui.Screen;
|
||||
import net.minecraft.client.gui.screen.PauseScreen;
|
||||
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.resource.language.I18n;
|
||||
|
||||
//#if MC>=11400
|
||||
@@ -45,7 +45,7 @@ public class GuiHandler extends EventRegistrations {
|
||||
//$$ GuiScreen guiScreen = getGui(event);
|
||||
//$$ List<GuiButton> buttonList = getButtonList(event);
|
||||
//#endif
|
||||
if (!(guiScreen instanceof PauseMenuScreen)) {
|
||||
if (!(guiScreen instanceof PauseScreen)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ public class GuiHandler extends EventRegistrations {
|
||||
//$$ public void ensureReplayStopped(GuiScreenEvent.InitGuiEvent event) {
|
||||
//$$ GuiScreen guiScreen = getGui(event);
|
||||
//#endif
|
||||
if (!(guiScreen instanceof MainMenuScreen || guiScreen instanceof MultiplayerScreen)) {
|
||||
if (!(guiScreen instanceof TitleScreen || guiScreen instanceof MultiplayerScreen)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ public class GuiHandler extends EventRegistrations {
|
||||
//$$ public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) {
|
||||
//$$ GuiScreen guiScreen = getGui(event);
|
||||
//#endif
|
||||
if (!(guiScreen instanceof MainMenuScreen)) {
|
||||
if (!(guiScreen instanceof TitleScreen)) {
|
||||
return;
|
||||
}
|
||||
ButtonWidget button = new InjectedButton(
|
||||
@@ -225,13 +225,13 @@ public class GuiHandler extends EventRegistrations {
|
||||
//#endif
|
||||
if(!button.active) return;
|
||||
|
||||
if (guiScreen instanceof MainMenuScreen) {
|
||||
if (guiScreen instanceof TitleScreen) {
|
||||
if (button.id == BUTTON_REPLAY_VIEWER) {
|
||||
new GuiReplayViewer(mod).display();
|
||||
}
|
||||
}
|
||||
|
||||
if (guiScreen instanceof PauseMenuScreen && mod.getReplayHandler() != null) {
|
||||
if (guiScreen instanceof PauseScreen && mod.getReplayHandler() != null) {
|
||||
if (button.id == BUTTON_EXIT_REPLAY) {
|
||||
button.active = false;
|
||||
try {
|
||||
|
||||
@@ -8,9 +8,9 @@ import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
@Mixin(PlayerEntity.class)
|
||||
public interface EntityPlayerAccessor extends EntityLivingBaseAccessor {
|
||||
//#if MC>=10904
|
||||
@Accessor("field_7525")
|
||||
@Accessor("selectedItem")
|
||||
ItemStack getItemStackMainHand();
|
||||
@Accessor("field_7525")
|
||||
@Accessor("selectedItem")
|
||||
void setItemStackMainHand(ItemStack value);
|
||||
//#else
|
||||
//$$ @Accessor
|
||||
|
||||
@@ -15,7 +15,7 @@ public abstract class MixinViewFrustum {
|
||||
at = @At(
|
||||
value = "INVOKE",
|
||||
//#if MC>=10904
|
||||
target = "Lnet/minecraft/client/render/chunk/ChunkRenderer;method_3653(III)V"
|
||||
target = "Lnet/minecraft/client/render/chunk/ChunkRenderer;setOrigin(III)V"
|
||||
//#else
|
||||
//$$ target = "Lnet/minecraft/client/renderer/chunk/RenderChunk;setPosition(Lnet/minecraft/util/BlockPos;)V"
|
||||
//#endif
|
||||
@@ -34,8 +34,8 @@ public abstract class MixinViewFrustum {
|
||||
//#endif
|
||||
if (!pos.equals(renderChunk.getOrigin())) {
|
||||
//#if MC>=10904
|
||||
renderChunk.method_3653(x, y, z);
|
||||
renderChunk.scheduleRender(false);
|
||||
renderChunk.setOrigin(x, y, z);
|
||||
renderChunk.scheduleRebuild(false);
|
||||
//#else
|
||||
//$$ renderChunk.setPosition(pos);
|
||||
//$$ renderChunk.setNeedsUpdate(true);
|
||||
|
||||
Reference in New Issue
Block a user