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:
Jonas Herzig
2019-05-20 13:38:38 +02:00
parent 0e086d91a6
commit e5ee6a3d94
49 changed files with 198 additions and 208 deletions

View File

@@ -11,7 +11,7 @@ import de.johni0702.minecraft.gui.element.GuiButton;
import de.johni0702.minecraft.gui.layout.CustomLayout;
import de.johni0702.minecraft.gui.layout.HorizontalLayout;
import de.johni0702.minecraft.gui.utils.EventRegistrations;
import net.minecraft.client.gui.menu.PauseMenuScreen;
import net.minecraft.client.gui.screen.PauseScreen;
//#if MC>=11400
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
@@ -68,8 +68,8 @@ public class GuiRecordingControls extends EventRegistrations {
//#if MC>=11400
{ on(InitScreenCallback.EVENT, (screen, buttons) -> {
if (screen instanceof PauseMenuScreen) {
show((PauseMenuScreen) screen);
if (screen instanceof PauseScreen) {
show((PauseScreen) screen);
}
}); }
//#else
@@ -88,7 +88,7 @@ public class GuiRecordingControls extends EventRegistrations {
buttonPauseResume.setEnabled(!stopped);
}
public void show(PauseMenuScreen gui) {
public void show(PauseScreen gui) {
VanillaGuiScreen.setup(gui).setLayout(new CustomLayout<GuiScreen>() {
@Override
protected void layout(GuiScreen container, int width, int height) {

View File

@@ -8,12 +8,12 @@ import de.johni0702.minecraft.gui.container.VanillaGuiScreen;
import de.johni0702.minecraft.gui.element.GuiCheckbox;
import de.johni0702.minecraft.gui.layout.CustomLayout;
import de.johni0702.minecraft.gui.utils.EventRegistrations;
import net.minecraft.client.gui.menu.MultiplayerScreen;
import net.minecraft.client.gui.menu.LevelSelectScreen;
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;
import net.minecraft.client.gui.screen.world.SelectWorldScreen;
//#if MC>=11400
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.Screen;
import net.minecraft.client.gui.screen.Screen;
//#else
//$$ import net.minecraftforge.client.event.GuiScreenEvent;
//$$ import net.minecraftforge.common.MinecraftForge;
@@ -38,8 +38,8 @@ public class GuiHandler extends EventRegistrations {
//$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ net.minecraft.client.gui.GuiScreen gui = getGui(event);
//#endif
if (gui instanceof LevelSelectScreen || gui instanceof MultiplayerScreen) {
boolean sp = gui instanceof LevelSelectScreen;
if (gui instanceof SelectWorldScreen || gui instanceof MultiplayerScreen) {
boolean sp = gui instanceof SelectWorldScreen;
SettingsRegistry settingsRegistry = mod.getSettingsRegistry();
Setting<Boolean> setting = sp ? Setting.RECORD_SINGLEPLAYER : Setting.RECORD_SERVER;

View File

@@ -219,7 +219,7 @@ public class RecordingEventHandler extends EventRegistrations {
packetListener.save(new EntityAnimationS2CPacket(
player,
//#if MC>=10904
player.preferredHand == Hand.MAIN ? 0 : 3
player.preferredHand == Hand.MAIN_HAND ? 0 : 3
//#else
//$$ 0
//#endif
@@ -248,14 +248,14 @@ public class RecordingEventHandler extends EventRegistrations {
//Inventory Handling
//#if MC>=10904
if (playerItems[0] != player.getStackInHand(Hand.MAIN)) {
playerItems[0] = player.getStackInHand(Hand.MAIN);
packetListener.save(new EntityEquipmentUpdateS2CPacket(player.getEntityId(), EquipmentSlot.HAND_MAIN, playerItems[0]));
if (playerItems[0] != player.getStackInHand(Hand.MAIN_HAND)) {
playerItems[0] = player.getStackInHand(Hand.MAIN_HAND);
packetListener.save(new EntityEquipmentUpdateS2CPacket(player.getEntityId(), EquipmentSlot.MAINHAND, playerItems[0]));
}
if (playerItems[1] != player.getStackInHand(Hand.OFF)) {
playerItems[1] = player.getStackInHand(Hand.OFF);
packetListener.save(new EntityEquipmentUpdateS2CPacket(player.getEntityId(), EquipmentSlot.HAND_OFF, playerItems[1]));
if (playerItems[1] != player.getStackInHand(Hand.OFF_HAND)) {
playerItems[1] = player.getStackInHand(Hand.OFF_HAND);
packetListener.save(new EntityEquipmentUpdateS2CPacket(player.getEntityId(), EquipmentSlot.OFFHAND, playerItems[1]));
}
if (playerItems[2] != player.getEquippedStack(EquipmentSlot.FEET)) {
@@ -338,7 +338,7 @@ public class RecordingEventHandler extends EventRegistrations {
wasHandActive = player.isUsingItem();
lastActiveHand = player.getActiveHand();
DataTracker dataManager = new DataTracker(null);
int state = (wasHandActive ? 1 : 0) | (lastActiveHand == Hand.OFF ? 2 : 0);
int state = (wasHandActive ? 1 : 0) | (lastActiveHand == Hand.OFF_HAND ? 2 : 0);
//#if MC>=11300
dataManager.startTracking(EntityLivingBaseAccessor.getLivingFlags(), (byte) state);
//#else

View File

@@ -53,7 +53,7 @@ public abstract class MixinNetHandlerPlayClient {
if (gameController.player == null) return;
RecordingEventHandler handler = getRecordingEventHandler();
if (handler != null && packet.getAction() == PlayerListS2CPacket.Action.ADD) {
if (handler != null && packet.getAction() == PlayerListS2CPacket.Action.ADD_PLAYER) {
// We cannot reference SPacketPlayerListItem.AddPlayerData directly for complicated (and yet to be
// resolved) reasons (see https://github.com/MinecraftForge/ForgeGradle/issues/472), so we "simply" convert
// the back to the MCProtocolLib equivalent and deal with that one.

View File

@@ -23,7 +23,7 @@ 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.StringTextComponent;
import net.minecraft.network.chat.TextComponent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -279,7 +279,7 @@ public class PacketListener extends ChannelInboundHandlerAdapter {
if (packet instanceof CustomPayloadS2CPacket) {
CustomPayloadS2CPacket p = (CustomPayloadS2CPacket) packet;
if (Restrictions.PLUGIN_CHANNEL.equals(p.getChannel())) {
packet = new DisconnectS2CPacket(new StringTextComponent("Please update to view this replay."));
packet = new DisconnectS2CPacket(new TextComponent("Please update to view this replay."));
save(packet);
}
}
@@ -339,7 +339,7 @@ public class PacketListener extends ChannelInboundHandlerAdapter {
}
//#if MC>=10800
Integer packetId = connectionState.getPacketId(NetworkSide.CLIENT, packet);
Integer packetId = connectionState.getPacketId(NetworkSide.CLIENTBOUND, packet);
//#else
//$$ Integer packetId = (Integer) connectionState.func_150755_b().inverse().get(packet.getClass());
//#endif

View File

@@ -4,7 +4,7 @@ import com.google.common.hash.Hashing;
import com.google.common.io.Files;
import com.replaymod.replaystudio.replay.ReplayFile;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.menu.YesNoScreen;
import net.minecraft.client.gui.screen.ConfirmScreen;
import net.minecraft.client.options.ServerEntry;
import net.minecraft.client.options.ServerList;
import net.minecraft.client.resource.ClientResourcePackCreator;
@@ -12,7 +12,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
//#if MC>=11400
import net.minecraft.text.TranslatableTextComponent;
import net.minecraft.network.chat.TranslatableComponent;
//#else
//$$ import net.minecraft.client.gui.GuiYesNoCallback;
//$$ import net.minecraft.client.resources.I18n;
@@ -144,7 +144,7 @@ public class ResourcePackRecorder {
} else {
// Lambdas MUST NOT be used with methods that need re-obfuscation in FG prior to 2.2 (will result in AbstractMethodError)
//#if MC>=11400
mc.execute(() -> mc.openScreen(new YesNoScreen(result -> {
mc.execute(() -> mc.openScreen(new ConfirmScreen(result -> {
//#else
//$$ //noinspection Convert2Lambda
//$$ mc.addScheduledTask(() -> mc.displayGuiScreen(new GuiYesNo(new GuiYesNoCallback() {
@@ -169,7 +169,7 @@ public class ResourcePackRecorder {
mc.openScreen(null);
}
//#if MC>=11400
, new TranslatableTextComponent("multiplayer.texturePrompt.line1"), new TranslatableTextComponent("multiplayer.texturePrompt.line2"))));
, new TranslatableComponent("multiplayer.texturePrompt.line1"), new TranslatableComponent("multiplayer.texturePrompt.line2"))));
//#else
//$$ }, I18n.format("multiplayer.texturePrompt.line1"), I18n.format("multiplayer.texturePrompt.line2"), 0)));
//#endif