From c4fbe48055df1017a65001cbaf539bdde769c484 Mon Sep 17 00:00:00 2001 From: Gurkengewuerz Date: Sun, 29 Mar 2020 23:37:39 +0200 Subject: [PATCH] created modules and added patcher --- .gitignore | 4 +- gui/pom.xml | 129 ++++++++++++ .../mc8051/arma3launcher/ArmA3Launcher.java | 0 .../de/mc8051/arma3launcher/LauncherGUI.form | 0 .../de/mc8051/arma3launcher/LauncherGUI.java | 3 +- .../de/mc8051/arma3launcher/Parameter.java | 0 .../mc8051/arma3launcher/SettingsHandler.java | 0 .../de/mc8051/arma3launcher/SteamUtils.java | 0 .../arma3launcher/interfaces/Observable.java | 0 .../arma3launcher/interfaces/Observer.java | 0 .../arma3launcher/model/JCheckBoxTree.java | 0 .../arma3launcher/model/ModListRenderer.java | 0 .../arma3launcher/model/MultiSelectModel.java | 0 .../model/PresetListRenderer.java | 0 .../arma3launcher/model/PresetTableModel.java | 0 .../model/RepositoryTreeNode.java | 0 .../arma3launcher/model/ServerTableModel.java | 0 .../arma3launcher/model/TabbedPaneUI.java | 0 .../arma3launcher/objects/AbstractMod.java | 0 .../arma3launcher/objects/Changelog.java | 0 .../de/mc8051/arma3launcher/objects/Mod.java | 0 .../mc8051/arma3launcher/objects/ModFile.java | 0 .../mc8051/arma3launcher/objects/Modset.java | 0 .../mc8051/arma3launcher/objects/Server.java | 0 .../arma3launcher/repo/DownloadStatus.java | 0 .../arma3launcher/repo/FileChecker.java | 0 .../arma3launcher/repo/RepositoryManger.java | 0 .../mc8051/arma3launcher/repo/Response.java | 0 .../mc8051/arma3launcher/repo/SyncList.java | 0 .../arma3launcher/repo/SyncListener.java | 0 .../arma3launcher/repo/SyncObserver.java | 0 .../de/mc8051/arma3launcher/repo/Syncer.java | 0 .../de/mc8051/arma3launcher/repo/Updater.java | 0 .../de/mc8051/arma3launcher/repo/Version.java | 0 .../arma3launcher/steam/SteamTimer.java | 0 .../mc8051/arma3launcher/utils/Callback.java | 0 .../mc8051/arma3launcher/utils/FileUtils.java | 0 .../mc8051/arma3launcher/utils/Humanize.java | 0 .../arma3launcher/utils/ImageUtils.java | 0 .../mc8051/arma3launcher/utils/LangUtils.java | 0 .../arma3launcher/utils/TaskBarUtils.java | 0 .../src}/main/resources/arma3launcher.json | 0 .../src}/main/resources/disclaimer.html | 0 .../main/resources/icons/changelog_16.png | Bin .../src}/main/resources/icons/download_16.png | Bin .../src}/main/resources/icons/github_32.png | Bin .../src}/main/resources/icons/logo_256.png | Bin .../src}/main/resources/icons/logo_32.png | Bin .../src}/main/resources/icons/play_16.png | Bin .../src}/main/resources/icons/preset_16.png | Bin .../src}/main/resources/icons/settings_16.png | Bin .../src}/main/resources/icons/twitter_32.png | Bin .../src}/main/resources/lang_de_DE.properties | 0 .../src}/main/resources/lang_en_US.properties | 0 .../src}/main/resources/project.properties | 0 .../arma3launcher/Arma3LauncherPatcher.java | 197 ++++++++++++++++++ .../java/de/mc8051/arma3launcher/Patcher.form | 27 +++ .../java/de/mc8051/arma3launcher/Patcher.java | 35 ++++ patcher/src/main/resources/icons/logo_32.png | Bin 0 -> 4691 bytes pom.xml | 115 +--------- 60 files changed, 399 insertions(+), 111 deletions(-) create mode 100644 gui/pom.xml rename {src => gui/src}/main/java/de/mc8051/arma3launcher/ArmA3Launcher.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/LauncherGUI.form (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/LauncherGUI.java (99%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/Parameter.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/SettingsHandler.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/SteamUtils.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/interfaces/Observable.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/interfaces/Observer.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/model/JCheckBoxTree.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/model/ModListRenderer.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/model/MultiSelectModel.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/model/PresetListRenderer.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/model/PresetTableModel.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/model/RepositoryTreeNode.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/model/ServerTableModel.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/model/TabbedPaneUI.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/objects/AbstractMod.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/objects/Changelog.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/objects/Mod.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/objects/ModFile.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/objects/Modset.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/objects/Server.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/DownloadStatus.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/FileChecker.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/RepositoryManger.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/Response.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/SyncList.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/SyncListener.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/SyncObserver.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/Syncer.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/Updater.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/repo/Version.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/steam/SteamTimer.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/utils/Callback.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/utils/FileUtils.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/utils/Humanize.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/utils/ImageUtils.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/utils/LangUtils.java (100%) rename {src => gui/src}/main/java/de/mc8051/arma3launcher/utils/TaskBarUtils.java (100%) rename {src => gui/src}/main/resources/arma3launcher.json (100%) rename {src => gui/src}/main/resources/disclaimer.html (100%) rename {src => gui/src}/main/resources/icons/changelog_16.png (100%) rename {src => gui/src}/main/resources/icons/download_16.png (100%) rename {src => gui/src}/main/resources/icons/github_32.png (100%) rename {src => gui/src}/main/resources/icons/logo_256.png (100%) rename {src => gui/src}/main/resources/icons/logo_32.png (100%) rename {src => gui/src}/main/resources/icons/play_16.png (100%) rename {src => gui/src}/main/resources/icons/preset_16.png (100%) rename {src => gui/src}/main/resources/icons/settings_16.png (100%) rename {src => gui/src}/main/resources/icons/twitter_32.png (100%) rename {src => gui/src}/main/resources/lang_de_DE.properties (100%) rename {src => gui/src}/main/resources/lang_en_US.properties (100%) rename {src => gui/src}/main/resources/project.properties (100%) create mode 100644 patcher/src/main/java/de/mc8051/arma3launcher/Arma3LauncherPatcher.java create mode 100644 patcher/src/main/java/de/mc8051/arma3launcher/Patcher.form create mode 100644 patcher/src/main/java/de/mc8051/arma3launcher/Patcher.java create mode 100644 patcher/src/main/resources/icons/logo_32.png diff --git a/.gitignore b/.gitignore index 19c2325..d39e785 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ .idea/ out/ META-INF/ -target/ \ No newline at end of file +target/ +gui/target/ +patcher/target/ \ No newline at end of file diff --git a/gui/pom.xml b/gui/pom.xml new file mode 100644 index 0000000..789d18a --- /dev/null +++ b/gui/pom.xml @@ -0,0 +1,129 @@ + + + 4.0.0 + + + de.mc8051 + arma3launcher + 1.0-SNAPSHOT + + + gui + 0.1.1000 + + + + jitpack.io + https://jitpack.io + + + + + + org.json + json + 20190722 + + + com.typesafe + config + 1.4.0 + + + com.formdev + flatlaf + 0.28 + + + com.github.RalleYTN + SimpleRegistry + java8-7949ac7f06-1 + + + org.ini4j + ini4j + 0.5.4 + + + com.github.Gurkengewuerz + zsyncer + 1de0d3f651 + + + com.jgoodies + jgoodies-forms + 1.9.0 + + + com.intellij + forms_rt + 7.0.3 + + + + + + + src/main/resources + true + + **/project.properties + + + + + src/main/resources + false + + **/* + + + + src/main/resources/icons + false + + **/* + + + + + + maven-compiler-plugin + 3.5.1 + + 12 + 12 + + + + maven-assembly-plugin + 2.6 + + false + ${parent.artifactId}-${project.artifactId} + + + jar-with-dependencies + + + + + ${project.groupId}.${parent.artifactId}.ArmA3Launcher + + + + + + assamble + + single + + package + + + + + + \ No newline at end of file diff --git a/src/main/java/de/mc8051/arma3launcher/ArmA3Launcher.java b/gui/src/main/java/de/mc8051/arma3launcher/ArmA3Launcher.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/ArmA3Launcher.java rename to gui/src/main/java/de/mc8051/arma3launcher/ArmA3Launcher.java diff --git a/src/main/java/de/mc8051/arma3launcher/LauncherGUI.form b/gui/src/main/java/de/mc8051/arma3launcher/LauncherGUI.form similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/LauncherGUI.form rename to gui/src/main/java/de/mc8051/arma3launcher/LauncherGUI.form diff --git a/src/main/java/de/mc8051/arma3launcher/LauncherGUI.java b/gui/src/main/java/de/mc8051/arma3launcher/LauncherGUI.java similarity index 99% rename from src/main/java/de/mc8051/arma3launcher/LauncherGUI.java rename to gui/src/main/java/de/mc8051/arma3launcher/LauncherGUI.java index fb8d11c..35f15f5 100644 --- a/src/main/java/de/mc8051/arma3launcher/LauncherGUI.java +++ b/gui/src/main/java/de/mc8051/arma3launcher/LauncherGUI.java @@ -1,5 +1,6 @@ package de.mc8051.arma3launcher; +import com.sun.management.OperatingSystemMXBean; import de.mc8051.arma3launcher.interfaces.Observer; import de.mc8051.arma3launcher.model.JCheckBoxTree; import de.mc8051.arma3launcher.model.ModListRenderer; @@ -737,7 +738,7 @@ public class LauncherGUI implements Observer { // -------------------------------- SPINNER -------------------------------- - com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); + OperatingSystemMXBean mxbean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); int memorySize = (int) (mxbean.getTotalPhysicalMemorySize() / 1024); initSpinner(settingsMaxMemSpinner, "MaxMem", Parameter.ParameterType.ARMA, -1, memorySize); diff --git a/src/main/java/de/mc8051/arma3launcher/Parameter.java b/gui/src/main/java/de/mc8051/arma3launcher/Parameter.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/Parameter.java rename to gui/src/main/java/de/mc8051/arma3launcher/Parameter.java diff --git a/src/main/java/de/mc8051/arma3launcher/SettingsHandler.java b/gui/src/main/java/de/mc8051/arma3launcher/SettingsHandler.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/SettingsHandler.java rename to gui/src/main/java/de/mc8051/arma3launcher/SettingsHandler.java diff --git a/src/main/java/de/mc8051/arma3launcher/SteamUtils.java b/gui/src/main/java/de/mc8051/arma3launcher/SteamUtils.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/SteamUtils.java rename to gui/src/main/java/de/mc8051/arma3launcher/SteamUtils.java diff --git a/src/main/java/de/mc8051/arma3launcher/interfaces/Observable.java b/gui/src/main/java/de/mc8051/arma3launcher/interfaces/Observable.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/interfaces/Observable.java rename to gui/src/main/java/de/mc8051/arma3launcher/interfaces/Observable.java diff --git a/src/main/java/de/mc8051/arma3launcher/interfaces/Observer.java b/gui/src/main/java/de/mc8051/arma3launcher/interfaces/Observer.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/interfaces/Observer.java rename to gui/src/main/java/de/mc8051/arma3launcher/interfaces/Observer.java diff --git a/src/main/java/de/mc8051/arma3launcher/model/JCheckBoxTree.java b/gui/src/main/java/de/mc8051/arma3launcher/model/JCheckBoxTree.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/model/JCheckBoxTree.java rename to gui/src/main/java/de/mc8051/arma3launcher/model/JCheckBoxTree.java diff --git a/src/main/java/de/mc8051/arma3launcher/model/ModListRenderer.java b/gui/src/main/java/de/mc8051/arma3launcher/model/ModListRenderer.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/model/ModListRenderer.java rename to gui/src/main/java/de/mc8051/arma3launcher/model/ModListRenderer.java diff --git a/src/main/java/de/mc8051/arma3launcher/model/MultiSelectModel.java b/gui/src/main/java/de/mc8051/arma3launcher/model/MultiSelectModel.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/model/MultiSelectModel.java rename to gui/src/main/java/de/mc8051/arma3launcher/model/MultiSelectModel.java diff --git a/src/main/java/de/mc8051/arma3launcher/model/PresetListRenderer.java b/gui/src/main/java/de/mc8051/arma3launcher/model/PresetListRenderer.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/model/PresetListRenderer.java rename to gui/src/main/java/de/mc8051/arma3launcher/model/PresetListRenderer.java diff --git a/src/main/java/de/mc8051/arma3launcher/model/PresetTableModel.java b/gui/src/main/java/de/mc8051/arma3launcher/model/PresetTableModel.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/model/PresetTableModel.java rename to gui/src/main/java/de/mc8051/arma3launcher/model/PresetTableModel.java diff --git a/src/main/java/de/mc8051/arma3launcher/model/RepositoryTreeNode.java b/gui/src/main/java/de/mc8051/arma3launcher/model/RepositoryTreeNode.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/model/RepositoryTreeNode.java rename to gui/src/main/java/de/mc8051/arma3launcher/model/RepositoryTreeNode.java diff --git a/src/main/java/de/mc8051/arma3launcher/model/ServerTableModel.java b/gui/src/main/java/de/mc8051/arma3launcher/model/ServerTableModel.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/model/ServerTableModel.java rename to gui/src/main/java/de/mc8051/arma3launcher/model/ServerTableModel.java diff --git a/src/main/java/de/mc8051/arma3launcher/model/TabbedPaneUI.java b/gui/src/main/java/de/mc8051/arma3launcher/model/TabbedPaneUI.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/model/TabbedPaneUI.java rename to gui/src/main/java/de/mc8051/arma3launcher/model/TabbedPaneUI.java diff --git a/src/main/java/de/mc8051/arma3launcher/objects/AbstractMod.java b/gui/src/main/java/de/mc8051/arma3launcher/objects/AbstractMod.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/objects/AbstractMod.java rename to gui/src/main/java/de/mc8051/arma3launcher/objects/AbstractMod.java diff --git a/src/main/java/de/mc8051/arma3launcher/objects/Changelog.java b/gui/src/main/java/de/mc8051/arma3launcher/objects/Changelog.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/objects/Changelog.java rename to gui/src/main/java/de/mc8051/arma3launcher/objects/Changelog.java diff --git a/src/main/java/de/mc8051/arma3launcher/objects/Mod.java b/gui/src/main/java/de/mc8051/arma3launcher/objects/Mod.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/objects/Mod.java rename to gui/src/main/java/de/mc8051/arma3launcher/objects/Mod.java diff --git a/src/main/java/de/mc8051/arma3launcher/objects/ModFile.java b/gui/src/main/java/de/mc8051/arma3launcher/objects/ModFile.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/objects/ModFile.java rename to gui/src/main/java/de/mc8051/arma3launcher/objects/ModFile.java diff --git a/src/main/java/de/mc8051/arma3launcher/objects/Modset.java b/gui/src/main/java/de/mc8051/arma3launcher/objects/Modset.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/objects/Modset.java rename to gui/src/main/java/de/mc8051/arma3launcher/objects/Modset.java diff --git a/src/main/java/de/mc8051/arma3launcher/objects/Server.java b/gui/src/main/java/de/mc8051/arma3launcher/objects/Server.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/objects/Server.java rename to gui/src/main/java/de/mc8051/arma3launcher/objects/Server.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/DownloadStatus.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/DownloadStatus.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/DownloadStatus.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/DownloadStatus.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/FileChecker.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/FileChecker.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/FileChecker.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/FileChecker.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/RepositoryManger.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/RepositoryManger.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/RepositoryManger.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/RepositoryManger.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/Response.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/Response.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/Response.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/Response.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/SyncList.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/SyncList.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/SyncList.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/SyncList.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/SyncListener.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/SyncListener.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/SyncListener.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/SyncListener.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/SyncObserver.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/SyncObserver.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/SyncObserver.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/SyncObserver.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/Syncer.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/Syncer.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/Syncer.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/Syncer.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/Updater.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/Updater.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/Updater.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/Updater.java diff --git a/src/main/java/de/mc8051/arma3launcher/repo/Version.java b/gui/src/main/java/de/mc8051/arma3launcher/repo/Version.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/repo/Version.java rename to gui/src/main/java/de/mc8051/arma3launcher/repo/Version.java diff --git a/src/main/java/de/mc8051/arma3launcher/steam/SteamTimer.java b/gui/src/main/java/de/mc8051/arma3launcher/steam/SteamTimer.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/steam/SteamTimer.java rename to gui/src/main/java/de/mc8051/arma3launcher/steam/SteamTimer.java diff --git a/src/main/java/de/mc8051/arma3launcher/utils/Callback.java b/gui/src/main/java/de/mc8051/arma3launcher/utils/Callback.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/utils/Callback.java rename to gui/src/main/java/de/mc8051/arma3launcher/utils/Callback.java diff --git a/src/main/java/de/mc8051/arma3launcher/utils/FileUtils.java b/gui/src/main/java/de/mc8051/arma3launcher/utils/FileUtils.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/utils/FileUtils.java rename to gui/src/main/java/de/mc8051/arma3launcher/utils/FileUtils.java diff --git a/src/main/java/de/mc8051/arma3launcher/utils/Humanize.java b/gui/src/main/java/de/mc8051/arma3launcher/utils/Humanize.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/utils/Humanize.java rename to gui/src/main/java/de/mc8051/arma3launcher/utils/Humanize.java diff --git a/src/main/java/de/mc8051/arma3launcher/utils/ImageUtils.java b/gui/src/main/java/de/mc8051/arma3launcher/utils/ImageUtils.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/utils/ImageUtils.java rename to gui/src/main/java/de/mc8051/arma3launcher/utils/ImageUtils.java diff --git a/src/main/java/de/mc8051/arma3launcher/utils/LangUtils.java b/gui/src/main/java/de/mc8051/arma3launcher/utils/LangUtils.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/utils/LangUtils.java rename to gui/src/main/java/de/mc8051/arma3launcher/utils/LangUtils.java diff --git a/src/main/java/de/mc8051/arma3launcher/utils/TaskBarUtils.java b/gui/src/main/java/de/mc8051/arma3launcher/utils/TaskBarUtils.java similarity index 100% rename from src/main/java/de/mc8051/arma3launcher/utils/TaskBarUtils.java rename to gui/src/main/java/de/mc8051/arma3launcher/utils/TaskBarUtils.java diff --git a/src/main/resources/arma3launcher.json b/gui/src/main/resources/arma3launcher.json similarity index 100% rename from src/main/resources/arma3launcher.json rename to gui/src/main/resources/arma3launcher.json diff --git a/src/main/resources/disclaimer.html b/gui/src/main/resources/disclaimer.html similarity index 100% rename from src/main/resources/disclaimer.html rename to gui/src/main/resources/disclaimer.html diff --git a/src/main/resources/icons/changelog_16.png b/gui/src/main/resources/icons/changelog_16.png similarity index 100% rename from src/main/resources/icons/changelog_16.png rename to gui/src/main/resources/icons/changelog_16.png diff --git a/src/main/resources/icons/download_16.png b/gui/src/main/resources/icons/download_16.png similarity index 100% rename from src/main/resources/icons/download_16.png rename to gui/src/main/resources/icons/download_16.png diff --git a/src/main/resources/icons/github_32.png b/gui/src/main/resources/icons/github_32.png similarity index 100% rename from src/main/resources/icons/github_32.png rename to gui/src/main/resources/icons/github_32.png diff --git a/src/main/resources/icons/logo_256.png b/gui/src/main/resources/icons/logo_256.png similarity index 100% rename from src/main/resources/icons/logo_256.png rename to gui/src/main/resources/icons/logo_256.png diff --git a/src/main/resources/icons/logo_32.png b/gui/src/main/resources/icons/logo_32.png similarity index 100% rename from src/main/resources/icons/logo_32.png rename to gui/src/main/resources/icons/logo_32.png diff --git a/src/main/resources/icons/play_16.png b/gui/src/main/resources/icons/play_16.png similarity index 100% rename from src/main/resources/icons/play_16.png rename to gui/src/main/resources/icons/play_16.png diff --git a/src/main/resources/icons/preset_16.png b/gui/src/main/resources/icons/preset_16.png similarity index 100% rename from src/main/resources/icons/preset_16.png rename to gui/src/main/resources/icons/preset_16.png diff --git a/src/main/resources/icons/settings_16.png b/gui/src/main/resources/icons/settings_16.png similarity index 100% rename from src/main/resources/icons/settings_16.png rename to gui/src/main/resources/icons/settings_16.png diff --git a/src/main/resources/icons/twitter_32.png b/gui/src/main/resources/icons/twitter_32.png similarity index 100% rename from src/main/resources/icons/twitter_32.png rename to gui/src/main/resources/icons/twitter_32.png diff --git a/src/main/resources/lang_de_DE.properties b/gui/src/main/resources/lang_de_DE.properties similarity index 100% rename from src/main/resources/lang_de_DE.properties rename to gui/src/main/resources/lang_de_DE.properties diff --git a/src/main/resources/lang_en_US.properties b/gui/src/main/resources/lang_en_US.properties similarity index 100% rename from src/main/resources/lang_en_US.properties rename to gui/src/main/resources/lang_en_US.properties diff --git a/src/main/resources/project.properties b/gui/src/main/resources/project.properties similarity index 100% rename from src/main/resources/project.properties rename to gui/src/main/resources/project.properties diff --git a/patcher/src/main/java/de/mc8051/arma3launcher/Arma3LauncherPatcher.java b/patcher/src/main/java/de/mc8051/arma3launcher/Arma3LauncherPatcher.java new file mode 100644 index 0000000..c5bfcfa --- /dev/null +++ b/patcher/src/main/java/de/mc8051/arma3launcher/Arma3LauncherPatcher.java @@ -0,0 +1,197 @@ +/* + * MIT License + * + * Copyright (c) 2020-2020 Niklas Schütrumpf (Gurkengewuerz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package de.mc8051.arma3launcher; + +import javax.imageio.ImageIO; +import javax.swing.*; +import java.awt.*; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.ByteBuffer; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.List; +import java.util.concurrent.CompletionStage; +import java.util.concurrent.Flow; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Created by gurkengewuerz.de on 29.03.2020. + */ +public class Arma3LauncherPatcher { + + public static void main(String[] args) { + if (args.length != 2) { + Logger.getLogger(Arma3LauncherPatcher.class.getName()).log(Level.SEVERE, " "); + return; + } + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ignored) { + } + + JFrame frame = new JFrame("Auto Patcher"); + Patcher patcher = new Patcher(); + frame.setContentPane(patcher.mainpanel); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + frame.setMinimumSize(new Dimension(500, 100)); + frame.setResizable(false); + + frame.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + + frame.dispose(); + } + }); + + frame.pack(); + frame.setIconImage(createIcon()); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + + HttpClient client = HttpClient.newHttpClient(); + try { + HttpRequest request = HttpRequest.newBuilder() + .uri(new URI(args[0])) + .GET() + .build(); + + File f = new File(args[1]); + + String fileName = Paths.get(f.getPath()).getFileName().toString(); + String fileExt = ""; + if (fileName.indexOf(".") > 0) { + fileExt = fileName.substring(fileName.lastIndexOf(".") + 1); + fileName = fileName.substring(0, fileName.lastIndexOf(".")); + } + + Path tempFile = Files.createTempFile(fileName, fileExt); + + HttpResponse response = client.send(request, responseInfo -> { + HttpResponse.BodyHandler bodyHandler = HttpResponse.BodyHandlers.ofFile(tempFile); + final String s = responseInfo.headers().firstValue("content-length").get(); + long contentSize = Long.parseLong(s); + return new DownloadObserver(bodyHandler.apply(responseInfo), contentSize, patcher.progressBar1); + }); + + if (response.statusCode() != 200) + throw new IllegalStateException("Download file is invalid. Got response code " + response.statusCode()); + + Files.copy(tempFile, f.toPath(), StandardCopyOption.REPLACE_EXISTING); + + run(f.getAbsolutePath()); + + JOptionPane.showMessageDialog( + frame, + "Launcher has been successfully updated.", + "Update", JOptionPane.INFORMATION_MESSAGE); + System.exit(0); + } catch (IOException | URISyntaxException | InterruptedException | IllegalStateException e) { + Logger.getLogger(Arma3LauncherPatcher.class.getName()).log(Level.SEVERE, null, e); + JOptionPane.showMessageDialog( + null, + "An error occured.\n" + e.getMessage() + "\nUpdate process aborded.", + "Update failed", JOptionPane.ERROR_MESSAGE); + System.exit(1); + } + } + + public static void run(String path) { + try { + Runtime.getRuntime().exec("\"" + System.getProperty("java.home") + File.separator + "bin" + File.separator + "java\" -jar \"" + path + "\""); + } catch (IOException ignored) { + } + } + + static BufferedImage createIcon() { + try { + return ImageIO.read(Arma3LauncherPatcher.class.getResourceAsStream("/icons/logo_32.png")); + } catch (IOException e) { + Logger.getLogger(Arma3LauncherPatcher.class.getName()).log(Level.SEVERE, null, e); + return null; + } + } + + private static class DownloadObserver implements HttpResponse.BodySubscriber { + + private int counter = 0; + private long total = 0L; + private long contentSize = 0L; + private HttpResponse.BodySubscriber subscriber; + private JProgressBar progressBar; + + public DownloadObserver(HttpResponse.BodySubscriber subscriber, long contentSize, JProgressBar progressBar) { + this.subscriber = subscriber; + this.contentSize = contentSize; + this.progressBar = progressBar; + } + + @Override + public void onSubscribe(Flow.Subscription subscription) { + subscriber.onSubscribe(subscription); + } + + @Override + public void onNext(List item) { + item.forEach((size) -> { + total += size.remaining(); + }); + + int progress = (int) (((double) total / (double) contentSize) * 100); + SwingUtilities.invokeLater(() -> progressBar.setValue(progress)); + + counter++; + subscriber.onNext(item); + } + + @Override + public void onError(Throwable throwable) { + subscriber.onError(throwable); + } + + @Override + public void onComplete() { + subscriber.onComplete(); + } + + @Override + public CompletionStage getBody() { + return subscriber.getBody(); + } + } +} diff --git a/patcher/src/main/java/de/mc8051/arma3launcher/Patcher.form b/patcher/src/main/java/de/mc8051/arma3launcher/Patcher.form new file mode 100644 index 0000000..3763fc0 --- /dev/null +++ b/patcher/src/main/java/de/mc8051/arma3launcher/Patcher.form @@ -0,0 +1,27 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/patcher/src/main/java/de/mc8051/arma3launcher/Patcher.java b/patcher/src/main/java/de/mc8051/arma3launcher/Patcher.java new file mode 100644 index 0000000..125a519 --- /dev/null +++ b/patcher/src/main/java/de/mc8051/arma3launcher/Patcher.java @@ -0,0 +1,35 @@ +/* + * MIT License + * + * Copyright (c) 2020-2020 Niklas Schütrumpf (Gurkengewuerz) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package de.mc8051.arma3launcher; + +import javax.swing.*; + +/** + * Created by gurkengewuerz.de on 29.03.2020. + */ +public class Patcher { + public JPanel mainpanel; + public JProgressBar progressBar1; +} diff --git a/patcher/src/main/resources/icons/logo_32.png b/patcher/src/main/resources/icons/logo_32.png new file mode 100644 index 0000000000000000000000000000000000000000..446dca9d79819e6f942b7b327f104e6e4fb60eb3 GIT binary patch literal 4691 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.mc8051 arma3launcher - 0.1.1000 + 1.0-SNAPSHOT + pom - - - jitpack.io - https://jitpack.io - - - - - - org.json - json - 20190722 - - - com.typesafe - config - 1.4.0 - - - com.formdev - flatlaf - 0.28 - - - com.github.RalleYTN - SimpleRegistry - java8-7949ac7f06-1 - - - org.ini4j - ini4j - 0.5.4 - - - com.github.Gurkengewuerz - zsyncer - 1de0d3f651 - - - com.jgoodies - jgoodies-forms - 1.9.0 - - - - - - - src/main/resources - true - - **/project.properties - - - - - src/main/resources - false - - **/* - - - - src/main/resources/icons - false - - **/* - - - - - - maven-compiler-plugin - 3.5.1 - - 12 - 12 - - - - maven-assembly-plugin - 2.6 - - false - ${project.artifactId} - - - jar-with-dependencies - - - - - ${project.groupId}.${project.artifactId}.ArmA3Launcher - - - - - - assamble - - single - - package - - - - - + + gui + patcher + \ No newline at end of file