From 09be37791950c2303c97020430a10b7e8c4e96f3 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 28 Jun 2023 20:33:48 +0300 Subject: [PATCH] Fix Forge installer for 1.7.10 --- .../forge_installer/forge_installer.jar | Bin 78455 -> 79269 bytes .../assets/components/forge_installer/version | 2 +- .../git/artdeell/forgeinstaller/Agent.java | 19 ++++++++++++++---- .../forgeinstaller/ComponentTimeoutTask.java | 11 ++++++++++ .../artdeell/forgeinstaller/DialogFilter.java | 3 ++- 5 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 forge_installer/src/main/java/git/artdeell/forgeinstaller/ComponentTimeoutTask.java diff --git a/app_pojavlauncher/src/main/assets/components/forge_installer/forge_installer.jar b/app_pojavlauncher/src/main/assets/components/forge_installer/forge_installer.jar index b1cf6365f22846abded9531d44542c4db8df7109..c9475cb38271b27679b12466a8868948e9ab903d 100644 GIT binary patch delta 4283 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 delta 3533 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 components = new ArrayList<>(); insertAllComponents(components, window, new MainWindowFilter()); AbstractButton okButton = null; @@ -56,11 +64,13 @@ public class Agent implements AWTEventListener { } } if(okButton == null) { - System.out.println("Failed to set all the UI components."); + System.out.println("Failed to set all the UI components, wil try again in the next window"); System.exit(17); + return false; }else{ ProfileFixer.storeProfile(); EventQueue.invokeLater(okButton::doClick); // do that after forge actually builds its window, otherwise we set the path too fast + return true; } } @@ -70,6 +80,7 @@ public class Agent implements AWTEventListener { if(components.size() == 1) { // another common trait of them - they only have one option pane in them, // so we can discard the rest of the dialog structure + // also allows us to discard dialogs with progress bars which older installers use JOptionPane optionPane = (JOptionPane) components.get(0); if(optionPane.getMessageType() == JOptionPane.INFORMATION_MESSAGE) { // forge doesn't emit information messages for other reasons yet System.out.println("The install was successful!"); diff --git a/forge_installer/src/main/java/git/artdeell/forgeinstaller/ComponentTimeoutTask.java b/forge_installer/src/main/java/git/artdeell/forgeinstaller/ComponentTimeoutTask.java new file mode 100644 index 000000000..a24c2ad89 --- /dev/null +++ b/forge_installer/src/main/java/git/artdeell/forgeinstaller/ComponentTimeoutTask.java @@ -0,0 +1,11 @@ +package git.artdeell.forgeinstaller; + +import java.util.TimerTask; + +public class ComponentTimeoutTask extends TimerTask { + @Override + public void run() { + System.out.println("Initialization timed out!"); + System.exit(17); + } +} diff --git a/forge_installer/src/main/java/git/artdeell/forgeinstaller/DialogFilter.java b/forge_installer/src/main/java/git/artdeell/forgeinstaller/DialogFilter.java index d528b6946..8771b84a6 100644 --- a/forge_installer/src/main/java/git/artdeell/forgeinstaller/DialogFilter.java +++ b/forge_installer/src/main/java/git/artdeell/forgeinstaller/DialogFilter.java @@ -6,6 +6,7 @@ import java.awt.*; public class DialogFilter implements ComponentFilter{ @Override public boolean checkComponent(Component component) { - return component instanceof JOptionPane; + return component instanceof JOptionPane + || component instanceof JProgressBar; } }