From 72a8325a152fa17778ace0471dcfd6330f1245c6 Mon Sep 17 00:00:00 2001 From: Gravit Date: Sat, 12 Sep 2020 16:12:39 +0700 Subject: [PATCH] =?UTF-8?q?[FEATURE][EXPERIMENTAL]=20=D0=9A=D0=BE=D0=BD?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=D0=BF?= =?UTF-8?q?=D1=86=D0=B8=D0=BE=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=BE=D0=B2=20=D0=B2=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D0=B9=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/hash/SaveProfilesCommand.java | 36 +++++++++++++++++++ .../launcher/profiles/ClientProfile.java | 9 ++++- .../profiles/optional/OptionalView.java | 2 -- .../actions/OptionalActionClassPath.java | 14 ++++++-- .../actions/OptionalActionClientArgs.java | 7 ++++ .../optional/actions/OptionalActionFile.java | 7 ++++ .../actions/OptionalActionJvmArgs.java | 7 ++++ 7 files changed, 77 insertions(+), 5 deletions(-) diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/command/hash/SaveProfilesCommand.java b/LaunchServer/src/main/java/pro/gravit/launchserver/command/hash/SaveProfilesCommand.java index adc9bcf5..3c253ec7 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/command/hash/SaveProfilesCommand.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/command/hash/SaveProfilesCommand.java @@ -2,6 +2,8 @@ import pro.gravit.launcher.Launcher; import pro.gravit.launcher.profiles.ClientProfile; +import pro.gravit.launcher.profiles.optional.OptionalFile; +import pro.gravit.launcher.profiles.optional.actions.*; import pro.gravit.launchserver.LaunchServer; import pro.gravit.launchserver.command.Command; import pro.gravit.utils.helper.IOHelper; @@ -12,6 +14,9 @@ import java.io.Writer; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.UUID; public class SaveProfilesCommand extends Command { @@ -31,6 +36,37 @@ public static void saveProfile(ClientProfile profile, Path path) throws IOExcept serverProfile.serverPort = profile.getServerPort(); profile.getServers().add(serverProfile); } + for(OptionalFile file : profile.getOptional()) + { + if(file.list != null) + { + String[] list = file.list; + file.list = null; + if(file.actions == null) file.actions = new ArrayList<>(2); + OptionalAction action; + switch (file.type) + { + case FILE: + OptionalActionFile result = new OptionalActionFile(new HashMap<>()); + for(String s : list) result.files.put(s, ""); + action = result; + break; + case CLASSPATH: + action = new OptionalActionClassPath(list); + break; + case JVMARGS: + action = new OptionalActionJvmArgs(Arrays.asList(list)); + break; + case CLIENTARGS: + action = new OptionalActionClientArgs(Arrays.asList(list)); + break; + default: + LogHelper.warning("Not converted optional %s with type %s. Type unknown", file.name, file.type.toString()); + continue; + } + file.actions.add(action); + } + } try (Writer w = IOHelper.newWriter(path)) { Launcher.gsonManager.configGson.toJson(profile, w); } diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/ClientProfile.java b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/ClientProfile.java index 286e8cc1..e00c837f 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/ClientProfile.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/ClientProfile.java @@ -184,16 +184,23 @@ public void updateOptionalGraph() { } } } - + @Deprecated public OptionalFile getOptionalFile(String file, OptionalType type) { for (OptionalFile f : updateOptional) if (f.type.equals(type) && f.name.equals(file)) return f; return null; } + public OptionalFile getOptionalFile(String file) { + for (OptionalFile f : updateOptional) + if (f.name.equals(file)) return f; + return null; + } + public Collection getShared() { return updateShared; } + @Deprecated public void markOptional(OptionalFile file) { diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/OptionalView.java b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/OptionalView.java index 071bf9d9..7fa1cf3c 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/OptionalView.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/OptionalView.java @@ -4,8 +4,6 @@ import pro.gravit.launcher.profiles.optional.actions.OptionalAction; import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; import java.util.Set; public class OptionalView { diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionClassPath.java b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionClassPath.java index b3d592cd..a9093ff2 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionClassPath.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionClassPath.java @@ -1,8 +1,18 @@ package pro.gravit.launcher.profiles.optional.actions; -import java.util.List; - public class OptionalActionClassPath extends OptionalAction { public String[] args; public boolean useAltClasspath = false; + + public OptionalActionClassPath() { + } + + public OptionalActionClassPath(String[] args) { + this.args = args; + } + + public OptionalActionClassPath(String[] args, boolean useAltClasspath) { + this.args = args; + this.useAltClasspath = useAltClasspath; + } } diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionClientArgs.java b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionClientArgs.java index 32d907ee..90bf980d 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionClientArgs.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionClientArgs.java @@ -4,4 +4,11 @@ public class OptionalActionClientArgs extends OptionalAction { public List args; + + public OptionalActionClientArgs() { + } + + public OptionalActionClientArgs(List args) { + this.args = args; + } } diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionFile.java b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionFile.java index 7551c82b..1d58b053 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionFile.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionFile.java @@ -29,4 +29,11 @@ public void disableInHashedDir(HashedDir dir) firstPath.parent.remove(firstPath.name); }); } + + public OptionalActionFile() { + } + + public OptionalActionFile(Map files) { + this.files = files; + } } diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionJvmArgs.java b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionJvmArgs.java index a5e5150e..328a224c 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionJvmArgs.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/profiles/optional/actions/OptionalActionJvmArgs.java @@ -4,4 +4,11 @@ public class OptionalActionJvmArgs extends OptionalAction { public List args; + + public OptionalActionJvmArgs() { + } + + public OptionalActionJvmArgs(List args) { + this.args = args; + } }