From 2351698b665adc8622b9b279a099223af9a938b6 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Fri, 28 Jun 2019 16:43:13 +0200 Subject: [PATCH] Show popup when replay saving/postprocessing fails MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit because asking people for logs turned out to not be a viable strategy when they can figure out how to get back their replay on their own… --- .../com/replaymod/recording/packet/PacketListener.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/replaymod/recording/packet/PacketListener.java b/src/main/java/com/replaymod/recording/packet/PacketListener.java index 04d34028..11457ecd 100755 --- a/src/main/java/com/replaymod/recording/packet/PacketListener.java +++ b/src/main/java/com/replaymod/recording/packet/PacketListener.java @@ -3,6 +3,7 @@ package com.replaymod.recording.packet; import com.google.gson.Gson; import com.replaymod.core.ReplayMod; import com.replaymod.core.utils.Restrictions; +import com.replaymod.core.utils.Utils; import com.replaymod.core.versions.MCVer; import com.replaymod.editor.gui.MarkerProcessor; import com.replaymod.recording.ReplayModRecording; @@ -13,6 +14,7 @@ import com.replaymod.recording.mixin.SPacketSpawnPlayerAccessor; import com.replaymod.replaystudio.data.Marker; import com.replaymod.replaystudio.replay.ReplayFile; import com.replaymod.replaystudio.replay.ReplayMetaData; +import de.johni0702.minecraft.gui.container.VanillaGuiScreen; import de.johni0702.minecraft.gui.element.GuiLabel; import de.johni0702.minecraft.gui.utils.Colors; import io.netty.buffer.ByteBuf; @@ -27,6 +29,7 @@ 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; import org.apache.logging.log4j.Logger; @@ -215,8 +218,10 @@ public class PacketListener extends ChannelInboundHandlerAdapter { if (core.getSettingsRegistry().get(Setting.AUTO_POST_PROCESS) && !ReplayMod.isMinimalMode()) { MarkerProcessor.apply(outputPath, progress -> {}); } - } catch (IOException e) { + } catch (Exception e) { logger.error("Saving replay file:", e); + CrashReport crashReport = CrashReport.create(e, "Saving replay file"); + core.runLater(() -> Utils.error(logger, VanillaGuiScreen.setup(mc.currentScreen), crashReport, () -> {})); } }