From e1012cfefc28c8eb3dedca8b7ae3715a1a6d7e2a Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Sun, 31 May 2015 11:46:14 +0200 Subject: [PATCH] Fixed NPE in GuiReplayEditor when no Replays are available (returns to main menu) Renamed .gui.replaystudio package to resemble the new GUI name (.gui.replayeditor) --- src/main/java/eu/crushedpixel/replaymod/ReplayMod.java | 3 ++- .../eu/crushedpixel/replaymod/events/GuiEventHandler.java | 5 ++--- .../{replaystudio => replayeditor}/GuiConnectPart.java | 2 +- .../{replaystudio => replayeditor}/GuiReplayEditor.java | 8 +++++++- .../gui/{replaystudio => replayeditor}/GuiStudioPart.java | 2 +- .../gui/{replaystudio => replayeditor}/GuiTrimPart.java | 2 +- 6 files changed, 14 insertions(+), 8 deletions(-) rename src/main/java/eu/crushedpixel/replaymod/gui/{replaystudio => replayeditor}/GuiConnectPart.java (99%) rename src/main/java/eu/crushedpixel/replaymod/gui/{replaystudio => replayeditor}/GuiReplayEditor.java (96%) rename src/main/java/eu/crushedpixel/replaymod/gui/{replaystudio => replayeditor}/GuiStudioPart.java (92%) rename src/main/java/eu/crushedpixel/replaymod/gui/{replaystudio => replayeditor}/GuiTrimPart.java (99%) diff --git a/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java b/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java index becb184e..41b0cb0e 100755 --- a/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java +++ b/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java @@ -62,6 +62,7 @@ public class ReplayMod { public static final String VERSION = "0.0.1"; public static final ApiClient apiClient = new ApiClient(); private static final Minecraft mc = Minecraft.getMinecraft(); + public static GuiEventHandler guiEventHandler; public static GuiReplayOverlay overlay = new GuiReplayOverlay(); public static ReplaySettings replaySettings; public static Configuration config; @@ -104,7 +105,7 @@ public class ReplayMod { @EventHandler public void init(FMLInitializationEvent event) { FMLCommonHandler.instance().bus().register(new ConnectionEventHandler()); - MinecraftForge.EVENT_BUS.register(new GuiEventHandler()); + MinecraftForge.EVENT_BUS.register(guiEventHandler = new GuiEventHandler()); FMLCommonHandler.instance().bus().register(keyInputHandler); MinecraftForge.EVENT_BUS.register(new MouseInputHandler()); diff --git a/src/main/java/eu/crushedpixel/replaymod/events/GuiEventHandler.java b/src/main/java/eu/crushedpixel/replaymod/events/GuiEventHandler.java index 3b618302..339fab50 100755 --- a/src/main/java/eu/crushedpixel/replaymod/events/GuiEventHandler.java +++ b/src/main/java/eu/crushedpixel/replaymod/events/GuiEventHandler.java @@ -1,13 +1,12 @@ package eu.crushedpixel.replaymod.events; -import de.johni0702.replaystudio.replay.Replay; import eu.crushedpixel.replaymod.ReplayMod; import eu.crushedpixel.replaymod.gui.GuiConstants; import eu.crushedpixel.replaymod.gui.GuiReplaySaving; import eu.crushedpixel.replaymod.gui.GuiReplaySettings; import eu.crushedpixel.replaymod.gui.online.GuiLoginPrompt; import eu.crushedpixel.replaymod.gui.online.GuiReplayCenter; -import eu.crushedpixel.replaymod.gui.replaystudio.GuiReplayEditor; +import eu.crushedpixel.replaymod.gui.replayeditor.GuiReplayEditor; import eu.crushedpixel.replaymod.gui.replayviewer.GuiReplayViewer; import eu.crushedpixel.replaymod.online.authentication.AuthenticationHandler; import eu.crushedpixel.replaymod.registry.LightingHandler; @@ -47,7 +46,7 @@ public class GuiEventHandler { add(GuiVideoSettings.class); } }; - private int replayCount = 0; + public int replayCount = 0; private GuiButton editorButton; @SubscribeEvent diff --git a/src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiConnectPart.java b/src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiConnectPart.java similarity index 99% rename from src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiConnectPart.java rename to src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiConnectPart.java index 3d7055a8..34ea1b9c 100755 --- a/src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiConnectPart.java +++ b/src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiConnectPart.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.gui.replaystudio; +package eu.crushedpixel.replaymod.gui.replayeditor; import eu.crushedpixel.replaymod.gui.GuiConstants; import eu.crushedpixel.replaymod.gui.elements.GuiArrowButton; diff --git a/src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiReplayEditor.java b/src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiReplayEditor.java similarity index 96% rename from src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiReplayEditor.java rename to src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiReplayEditor.java index 5da7045c..07b4c885 100755 --- a/src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiReplayEditor.java +++ b/src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiReplayEditor.java @@ -1,5 +1,6 @@ -package eu.crushedpixel.replaymod.gui.replaystudio; +package eu.crushedpixel.replaymod.gui.replayeditor; +import eu.crushedpixel.replaymod.ReplayMod; import eu.crushedpixel.replaymod.gui.GuiConstants; import eu.crushedpixel.replaymod.gui.elements.GuiDropdown; import eu.crushedpixel.replaymod.utils.ReplayFileIO; @@ -41,6 +42,11 @@ public class GuiReplayEditor extends GuiScreen { private void refreshReplayDropdown() { replayDropdown.clearElements(); replayFiles = ReplayFileIO.getAllReplayFiles(); + if(replayFiles.size() == 0) { + mc.displayGuiScreen(null); + ReplayMod.guiEventHandler.replayCount = 0; + return; + } for(File file : replayFiles) { String name = FilenameUtils.getBaseName(file.getAbsolutePath()); replayDropdown.addElement(name); diff --git a/src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiStudioPart.java b/src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiStudioPart.java similarity index 92% rename from src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiStudioPart.java rename to src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiStudioPart.java index 5b657bc4..997c5fae 100755 --- a/src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiStudioPart.java +++ b/src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiStudioPart.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.gui.replaystudio; +package eu.crushedpixel.replaymod.gui.replayeditor; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiTrimPart.java b/src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiTrimPart.java similarity index 99% rename from src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiTrimPart.java rename to src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiTrimPart.java index 9c72b27b..d95cb727 100755 --- a/src/main/java/eu/crushedpixel/replaymod/gui/replaystudio/GuiTrimPart.java +++ b/src/main/java/eu/crushedpixel/replaymod/gui/replayeditor/GuiTrimPart.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.gui.replaystudio; +package eu.crushedpixel.replaymod.gui.replayeditor; import eu.crushedpixel.replaymod.gui.elements.GuiNumberInput; import eu.crushedpixel.replaymod.studio.StudioImplementation;