From 5e407cc9aa0d672346a3437e21dd3d673c46600d Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Wed, 22 May 2019 10:41:41 +0200 Subject: [PATCH] Fix translations in replay recovery gui --- .../java/com/replaymod/core/ReplayMod.java | 23 ++++++++++++++++++- .../com/replaymod/online/ReplayModOnline.java | 16 +++---------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/replaymod/core/ReplayMod.java b/src/main/java/com/replaymod/core/ReplayMod.java index 28879196..9184362d 100755 --- a/src/main/java/com/replaymod/core/ReplayMod.java +++ b/src/main/java/com/replaymod/core/ReplayMod.java @@ -344,7 +344,7 @@ public class ReplayMod implements testIfMoeshAndExitMinecraft(); - runLater(() -> { + runPostStartup(() -> { // Cleanup deleted corrupted replays try { File[] files = getReplayFolder().listFiles(); @@ -390,6 +390,27 @@ public class ReplayMod implements } } + /** + * Execute the given runnable after game has started (once the overlay has been closed). + * Most importantly, it will run after resources (including language keys!) have been loaded. + * Below 1.14, this is equivalent to {@link #runLater(Runnable)}. + */ + public void runPostStartup(Runnable runnable) { + runLater(new Runnable() { + @Override + public void run() { + //#if MC>=11400 + if (getMinecraft().overlay != null) { + // delay until after resources have been loaded + runLater(this); + return; + } + //#endif + runnable.run(); + } + }); + } + /** * Set when the currently running code has been scheduled by runLater. * If this is the case, subsequent calls to runLater have to be delayed until all scheduled tasks have been diff --git a/src/main/java/com/replaymod/online/ReplayModOnline.java b/src/main/java/com/replaymod/online/ReplayModOnline.java index d431f131..491f9c1f 100644 --- a/src/main/java/com/replaymod/online/ReplayModOnline.java +++ b/src/main/java/com/replaymod/online/ReplayModOnline.java @@ -86,19 +86,9 @@ public class ReplayModOnline extends EventRegistrations implements Module { // Initial login prompt if (!core.getSettingsRegistry().get(Setting.SKIP_LOGIN_PROMPT)) { if (!isLoggedIn()) { - core.runLater(new Runnable() { - @Override - public void run() { - //#if MC>=11400 - if (getMinecraft().overlay != null) { - // delay until after resources have been loaded - core.runLater(this); - return; - } - //#endif - GuiScreen parent = GuiScreen.wrap(getMinecraft().currentScreen); - new GuiLoginPrompt(apiClient, parent, parent, false).display(); - } + core.runPostStartup(() -> { + GuiScreen parent = GuiScreen.wrap(getMinecraft().currentScreen); + new GuiLoginPrompt(apiClient, parent, parent, false).display(); }); } }