clean up
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -25,6 +25,7 @@ import org.jackhuang.hmcl.setting.Settings;
|
|||||||
import org.jackhuang.hmcl.task.Schedulers;
|
import org.jackhuang.hmcl.task.Schedulers;
|
||||||
import org.jackhuang.hmcl.task.Task;
|
import org.jackhuang.hmcl.task.Task;
|
||||||
import org.jackhuang.hmcl.ui.Controllers;
|
import org.jackhuang.hmcl.ui.Controllers;
|
||||||
|
import org.jackhuang.hmcl.upgrade.AppDataUpgrader;
|
||||||
import org.jackhuang.hmcl.upgrade.IUpgrader;
|
import org.jackhuang.hmcl.upgrade.IUpgrader;
|
||||||
import org.jackhuang.hmcl.upgrade.UpdateChecker;
|
import org.jackhuang.hmcl.upgrade.UpdateChecker;
|
||||||
import org.jackhuang.hmcl.util.*;
|
import org.jackhuang.hmcl.util.*;
|
||||||
@@ -60,7 +61,7 @@ public final class Main extends Application {
|
|||||||
try {
|
try {
|
||||||
// NetworkUtils.setUserAgentSupplier(() -> "Hello Minecraft! Launcher");
|
// NetworkUtils.setUserAgentSupplier(() -> "Hello Minecraft! Launcher");
|
||||||
Constants.UI_THREAD_SCHEDULER = Constants.JAVAFX_UI_THREAD_SCHEDULER;
|
Constants.UI_THREAD_SCHEDULER = Constants.JAVAFX_UI_THREAD_SCHEDULER;
|
||||||
IUpgrader.NOW_UPGRADER.parseArguments(VersionNumber.asVersion(VERSION), Arrays.asList(args));
|
UPGRADER.parseArguments(VersionNumber.asVersion(VERSION), Arrays.asList(args));
|
||||||
|
|
||||||
Logging.LOG.info("*** " + TITLE + " ***");
|
Logging.LOG.info("*** " + TITLE + " ***");
|
||||||
|
|
||||||
@@ -133,6 +134,7 @@ public final class Main extends Application {
|
|||||||
public static final String TITLE = NAME + " " + VERSION;
|
public static final String TITLE = NAME + " " + VERSION;
|
||||||
public static final ResourceBundle RESOURCE_BUNDLE = Settings.INSTANCE.getLocale().getResourceBundle();
|
public static final ResourceBundle RESOURCE_BUNDLE = Settings.INSTANCE.getLocale().getResourceBundle();
|
||||||
public static final UpdateChecker UPDATE_CHECKER = new UpdateChecker(VersionNumber.asVersion(VERSION));
|
public static final UpdateChecker UPDATE_CHECKER = new UpdateChecker(VersionNumber.asVersion(VERSION));
|
||||||
|
public static final IUpgrader UPGRADER = new AppDataUpgrader();
|
||||||
public static final CrashReporter CRASH_REPORTER = new CrashReporter();
|
public static final CrashReporter CRASH_REPORTER = new CrashReporter();
|
||||||
|
|
||||||
public static final String CONTACT = "http://huangyuhui.duapp.com/hmcl.php";
|
public static final String CONTACT = "http://huangyuhui.duapp.com/hmcl.php";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -54,7 +54,7 @@ public class HMCLGameDownloadTask extends Task {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute() throws IOException {
|
public void execute() {
|
||||||
File jar = profile.getRepository().getVersionJar(version);
|
File jar = profile.getRepository().getVersionJar(version);
|
||||||
|
|
||||||
File cache = new File(Settings.INSTANCE.getCommonPath(), "jars/" + gameVersion + ".jar");
|
File cache = new File(Settings.INSTANCE.getCommonPath(), "jars/" + gameVersion + ".jar");
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -59,7 +59,7 @@ public final class HMCLModpackManager {
|
|||||||
return ModAdviser.ModSuggestion.NORMAL;
|
return ModAdviser.ModSuggestion.NORMAL;
|
||||||
else
|
else
|
||||||
return ModAdviser.ModSuggestion.SUGGESTED;
|
return ModAdviser.ModSuggestion.SUGGESTED;
|
||||||
};
|
}
|
||||||
|
|
||||||
private static boolean match(List<String> l, String fileName, boolean isDirectory) {
|
private static boolean match(List<String> l, String fileName, boolean isDirectory) {
|
||||||
for (String s : l)
|
for (String s : l)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -108,7 +108,7 @@ public final class LauncherHelper {
|
|||||||
));
|
));
|
||||||
}))
|
}))
|
||||||
.then(variables -> {
|
.then(variables -> {
|
||||||
DefaultLauncher launcher = variables.<DefaultLauncher>get("launcher");
|
DefaultLauncher launcher = variables.get("launcher");
|
||||||
if (scriptFile == null) {
|
if (scriptFile == null) {
|
||||||
return new LaunchTask<>(launcher::launch).setName(Main.i18n("version.launch"));
|
return new LaunchTask<>(launcher::launch).setName(Main.i18n("version.launch"));
|
||||||
} else {
|
} else {
|
||||||
@@ -138,7 +138,7 @@ public final class LauncherHelper {
|
|||||||
|
|
||||||
launchingStepsPane.setExecutor(executor);
|
launchingStepsPane.setExecutor(executor);
|
||||||
executor.addTaskListener(new TaskListener() {
|
executor.addTaskListener(new TaskListener() {
|
||||||
AtomicInteger finished = new AtomicInteger(0);
|
final AtomicInteger finished = new AtomicInteger(0);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFinished(Task task) {
|
public void onFinished(Task task) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -106,7 +106,7 @@ public final class ModpackHelper {
|
|||||||
else throw new IllegalStateException("Unrecognized modpack: " + modpack);
|
else throw new IllegalStateException("Unrecognized modpack: " + modpack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Task getUpdateTask(Profile profile, File zipFile, String name, ModpackConfiguration<?> configuration) throws UnsupportedModpackException, MismatchedModpackTypeException, IOException {
|
public static Task getUpdateTask(Profile profile, File zipFile, String name, ModpackConfiguration<?> configuration) throws UnsupportedModpackException, MismatchedModpackTypeException {
|
||||||
Modpack modpack = ModpackHelper.readModpackManifest(zipFile);
|
Modpack modpack = ModpackHelper.readModpackManifest(zipFile);
|
||||||
|
|
||||||
switch (configuration.getType()) {
|
switch (configuration.getType()) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2013 huangyuhui
|
* Copyright (C) 2018 huangyuhui
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -97,14 +97,10 @@ public class Settings {
|
|||||||
for (Map.Entry<String, Profile> entry2 : getProfileMap().entrySet()) {
|
for (Map.Entry<String, Profile> entry2 : getProfileMap().entrySet()) {
|
||||||
entry2.getValue().setName(entry2.getKey());
|
entry2.getValue().setName(entry2.getKey());
|
||||||
entry2.getValue().nameProperty().setChangedListener(this::profileNameChanged);
|
entry2.getValue().nameProperty().setChangedListener(this::profileNameChanged);
|
||||||
entry2.getValue().addPropertyChangedListener(e -> {
|
entry2.getValue().addPropertyChangedListener(e -> save());
|
||||||
save();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Lang.ignoringException(() -> {
|
Lang.ignoringException(() -> Runtime.getRuntime().addShutdownHook(new Thread(this::save)));
|
||||||
Runtime.getRuntime().addShutdownHook(new Thread(this::save));
|
|
||||||
});
|
|
||||||
|
|
||||||
loadProxy();
|
loadProxy();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2013 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -88,9 +88,7 @@ public final class AccountItem extends StackPane {
|
|||||||
|
|
||||||
if (account instanceof AuthlibInjectorAccount) {
|
if (account instanceof AuthlibInjectorAccount) {
|
||||||
Task.ofResult("serverName", () -> Accounts.getAuthlibInjectorServerName(((AuthlibInjectorAccount) account).getServerBaseURL()))
|
Task.ofResult("serverName", () -> Accounts.getAuthlibInjectorServerName(((AuthlibInjectorAccount) account).getServerBaseURL()))
|
||||||
.subscribe(Schedulers.javafx(), variables -> {
|
.subscribe(Schedulers.javafx(), variables -> lblServer.setText(variables.get("serverName")));
|
||||||
lblServer.setText(variables.get("serverName"));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (account instanceof YggdrasilAccount) {
|
if (account instanceof YggdrasilAccount) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -169,7 +169,6 @@ public final class AccountsPage extends StackPane implements DecoratorPage {
|
|||||||
progressBar.setVisible(true);
|
progressBar.setVisible(true);
|
||||||
lblCreationWarning.setText("");
|
lblCreationWarning.setText("");
|
||||||
Task.ofResult("create_account", () -> {
|
Task.ofResult("create_account", () -> {
|
||||||
try {
|
|
||||||
Account account;
|
Account account;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 0: account = Accounts.ACCOUNT_FACTORY.get(Accounts.OFFLINE_ACCOUNT_KEY).fromUsername(username); break;
|
case 0: account = Accounts.ACCOUNT_FACTORY.get(Accounts.OFFLINE_ACCOUNT_KEY).fromUsername(username); break;
|
||||||
@@ -181,22 +180,19 @@ public final class AccountsPage extends StackPane implements DecoratorPage {
|
|||||||
AuthInfo info = account.logIn(new CharacterSelector(), Settings.INSTANCE.getProxy());
|
AuthInfo info = account.logIn(new CharacterSelector(), Settings.INSTANCE.getProxy());
|
||||||
Accounts.setCurrentCharacter(account, info.getUsername());
|
Accounts.setCurrentCharacter(account, info.getUsername());
|
||||||
return account;
|
return account;
|
||||||
} catch (Exception e) {
|
}).finalized(Schedulers.javafx(), variables -> {
|
||||||
return e;
|
Settings.INSTANCE.addAccount(variables.get("create_account"));
|
||||||
}
|
dialog.close();
|
||||||
}).subscribe(Schedulers.javafx(), variables -> {
|
loadAccounts();
|
||||||
Object account = variables.get("create_account");
|
progressBar.setVisible(false);
|
||||||
if (account instanceof Account) {
|
}, exception -> {
|
||||||
Settings.INSTANCE.addAccount((Account) account);
|
if (exception instanceof NoSelectedCharacterException) {
|
||||||
dialog.close();
|
dialog.close();
|
||||||
loadAccounts();
|
} else {
|
||||||
} else if (account instanceof NoSelectedCharacterException) {
|
lblCreationWarning.setText(accountException(exception));
|
||||||
dialog.close();
|
|
||||||
} else if (account instanceof Exception) {
|
|
||||||
lblCreationWarning.setText(accountException((Exception) account));
|
|
||||||
}
|
}
|
||||||
progressBar.setVisible(false);
|
progressBar.setVisible(false);
|
||||||
});
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -241,10 +237,10 @@ public final class AccountsPage extends StackPane implements DecoratorPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static class CharacterSelector extends BorderPane implements MultiCharacterSelector {
|
private static class CharacterSelector extends BorderPane implements MultiCharacterSelector {
|
||||||
private AdvancedListBox listBox = new AdvancedListBox();
|
private final AdvancedListBox listBox = new AdvancedListBox();
|
||||||
private JFXButton cancel = new JFXButton();
|
private final JFXButton cancel = new JFXButton();
|
||||||
|
|
||||||
private CountDownLatch latch = new CountDownLatch(1);
|
private final CountDownLatch latch = new CountDownLatch(1);
|
||||||
private GameProfile selectedProfile = null;
|
private GameProfile selectedProfile = null;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class AuthlibInjectorServersPage extends StackPane implements DecoratorPa
|
|||||||
@FXML private JFXProgressBar progressBar;
|
@FXML private JFXProgressBar progressBar;
|
||||||
@FXML private JFXButton btnAddNext;
|
@FXML private JFXButton btnAddNext;
|
||||||
|
|
||||||
private TransitionHandler transitionHandler;
|
private final TransitionHandler transitionHandler;
|
||||||
|
|
||||||
{
|
{
|
||||||
FXUtils.loadFXML(this, "/assets/fxml/authlib-injector-servers.fxml");
|
FXUtils.loadFXML(this, "/assets/fxml/authlib-injector-servers.fxml");
|
||||||
@@ -53,9 +53,8 @@ public class AuthlibInjectorServersPage extends StackPane implements DecoratorPa
|
|||||||
getChildren().remove(dialog);
|
getChildren().remove(dialog);
|
||||||
dialog.setDialogContainer(this);
|
dialog.setDialogContainer(this);
|
||||||
|
|
||||||
txtServerIp.textProperty().addListener((a, b, newValue) -> {
|
txtServerIp.textProperty().addListener((a, b, newValue) ->
|
||||||
btnAddNext.setDisable(!txtServerIp.validate());
|
btnAddNext.setDisable(!txtServerIp.validate()));
|
||||||
});
|
|
||||||
|
|
||||||
loading();
|
loading();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -34,20 +34,19 @@ import org.jackhuang.hmcl.Main;
|
|||||||
*/
|
*/
|
||||||
public class CrashWindow extends Stage {
|
public class CrashWindow extends Stage {
|
||||||
|
|
||||||
private Label lblCrash = new Label();
|
|
||||||
private Button btnContact = new Button();
|
|
||||||
private TextArea textArea = new TextArea();
|
|
||||||
|
|
||||||
public CrashWindow(String text) {
|
public CrashWindow(String text) {
|
||||||
|
Label lblCrash = new Label();
|
||||||
if (Main.UPDATE_CHECKER.isOutOfDate())
|
if (Main.UPDATE_CHECKER.isOutOfDate())
|
||||||
lblCrash.setText(Main.i18n("launcher.crash_out_dated"));
|
lblCrash.setText(Main.i18n("launcher.crash_out_dated"));
|
||||||
else
|
else
|
||||||
lblCrash.setText(Main.i18n("launcher.crash"));
|
lblCrash.setText(Main.i18n("launcher.crash"));
|
||||||
lblCrash.setWrapText(true);
|
lblCrash.setWrapText(true);
|
||||||
|
|
||||||
|
TextArea textArea = new TextArea();
|
||||||
textArea.setText(text);
|
textArea.setText(text);
|
||||||
textArea.setEditable(false);
|
textArea.setEditable(false);
|
||||||
|
|
||||||
|
Button btnContact = new Button();
|
||||||
btnContact.setText(Main.i18n("launcher.contact"));
|
btnContact.setText(Main.i18n("launcher.contact"));
|
||||||
btnContact.setOnMouseClicked(event -> FXUtils.openLink(Main.CONTACT));
|
btnContact.setOnMouseClicked(event -> FXUtils.openLink(Main.CONTACT));
|
||||||
HBox box = new HBox();
|
HBox box = new HBox();
|
||||||
@@ -68,9 +67,7 @@ public class CrashWindow extends Stage {
|
|||||||
getIcons().add(new Image("/assets/img/icon.png"));
|
getIcons().add(new Image("/assets/img/icon.png"));
|
||||||
setTitle(Main.i18n("message.error"));
|
setTitle(Main.i18n("message.error"));
|
||||||
|
|
||||||
setOnCloseRequest(e -> {
|
setOnCloseRequest(e -> System.exit(1));
|
||||||
System.exit(1);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -85,7 +85,7 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza
|
|||||||
private double xOffset, yOffset, newX, newY, initX, initY;
|
private double xOffset, yOffset, newX, newY, initX, initY;
|
||||||
private boolean allowMove, isDragging, dialogShown, maximized;
|
private boolean allowMove, isDragging, dialogShown, maximized;
|
||||||
private BoundingBox originalBox, maximizedBox;
|
private BoundingBox originalBox, maximizedBox;
|
||||||
private TransitionHandler animationHandler;
|
private final TransitionHandler animationHandler;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private StackPane contentPlaceHolder;
|
private StackPane contentPlaceHolder;
|
||||||
@@ -205,7 +205,7 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// bgskin
|
// images in ./bg
|
||||||
if (!loaded) {
|
if (!loaded) {
|
||||||
File backgroundImageFile = new File("bg");
|
File backgroundImageFile = new File("bg");
|
||||||
if (backgroundImageFile.isDirectory()) {
|
if (backgroundImageFile.isDirectory()) {
|
||||||
@@ -302,52 +302,52 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza
|
|||||||
if (!this.primaryStage.isFullScreen() && !mouseEvent.isStillSincePress() && !this.primaryStage.isMaximized() && !this.maximized) {
|
if (!this.primaryStage.isFullScreen() && !mouseEvent.isStillSincePress() && !this.primaryStage.isMaximized() && !this.maximized) {
|
||||||
this.newX = mouseEvent.getScreenX();
|
this.newX = mouseEvent.getScreenX();
|
||||||
this.newY = mouseEvent.getScreenY();
|
this.newY = mouseEvent.getScreenY();
|
||||||
double deltax = this.newX - this.initX;
|
double deltaX = this.newX - this.initX;
|
||||||
double deltay = this.newY - this.initY;
|
double deltaY = this.newY - this.initY;
|
||||||
Cursor cursor = this.getCursor();
|
Cursor cursor = this.getCursor();
|
||||||
if (Cursor.E_RESIZE == cursor) {
|
if (Cursor.E_RESIZE == cursor) {
|
||||||
this.setStageWidth(this.primaryStage.getWidth() + deltax);
|
this.setStageWidth(this.primaryStage.getWidth() + deltaX);
|
||||||
mouseEvent.consume();
|
mouseEvent.consume();
|
||||||
} else if (Cursor.NE_RESIZE == cursor) {
|
} else if (Cursor.NE_RESIZE == cursor) {
|
||||||
if (this.setStageHeight(this.primaryStage.getHeight() - deltay)) {
|
if (this.setStageHeight(this.primaryStage.getHeight() - deltaY)) {
|
||||||
this.primaryStage.setY(this.primaryStage.getY() + deltay);
|
this.primaryStage.setY(this.primaryStage.getY() + deltaY);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setStageWidth(this.primaryStage.getWidth() + deltax);
|
this.setStageWidth(this.primaryStage.getWidth() + deltaX);
|
||||||
mouseEvent.consume();
|
mouseEvent.consume();
|
||||||
} else if (Cursor.SE_RESIZE == cursor) {
|
} else if (Cursor.SE_RESIZE == cursor) {
|
||||||
this.setStageWidth(this.primaryStage.getWidth() + deltax);
|
this.setStageWidth(this.primaryStage.getWidth() + deltaX);
|
||||||
this.setStageHeight(this.primaryStage.getHeight() + deltay);
|
this.setStageHeight(this.primaryStage.getHeight() + deltaY);
|
||||||
mouseEvent.consume();
|
mouseEvent.consume();
|
||||||
} else if (Cursor.S_RESIZE == cursor) {
|
} else if (Cursor.S_RESIZE == cursor) {
|
||||||
this.setStageHeight(this.primaryStage.getHeight() + deltay);
|
this.setStageHeight(this.primaryStage.getHeight() + deltaY);
|
||||||
mouseEvent.consume();
|
mouseEvent.consume();
|
||||||
} else if (Cursor.W_RESIZE == cursor) {
|
} else if (Cursor.W_RESIZE == cursor) {
|
||||||
if (this.setStageWidth(this.primaryStage.getWidth() - deltax)) {
|
if (this.setStageWidth(this.primaryStage.getWidth() - deltaX)) {
|
||||||
this.primaryStage.setX(this.primaryStage.getX() + deltax);
|
this.primaryStage.setX(this.primaryStage.getX() + deltaX);
|
||||||
}
|
}
|
||||||
|
|
||||||
mouseEvent.consume();
|
mouseEvent.consume();
|
||||||
} else if (Cursor.SW_RESIZE == cursor) {
|
} else if (Cursor.SW_RESIZE == cursor) {
|
||||||
if (this.setStageWidth(this.primaryStage.getWidth() - deltax)) {
|
if (this.setStageWidth(this.primaryStage.getWidth() - deltaX)) {
|
||||||
this.primaryStage.setX(this.primaryStage.getX() + deltax);
|
this.primaryStage.setX(this.primaryStage.getX() + deltaX);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setStageHeight(this.primaryStage.getHeight() + deltay);
|
this.setStageHeight(this.primaryStage.getHeight() + deltaY);
|
||||||
mouseEvent.consume();
|
mouseEvent.consume();
|
||||||
} else if (Cursor.NW_RESIZE == cursor) {
|
} else if (Cursor.NW_RESIZE == cursor) {
|
||||||
if (this.setStageWidth(this.primaryStage.getWidth() - deltax)) {
|
if (this.setStageWidth(this.primaryStage.getWidth() - deltaX)) {
|
||||||
this.primaryStage.setX(this.primaryStage.getX() + deltax);
|
this.primaryStage.setX(this.primaryStage.getX() + deltaX);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.setStageHeight(this.primaryStage.getHeight() - deltay)) {
|
if (this.setStageHeight(this.primaryStage.getHeight() - deltaY)) {
|
||||||
this.primaryStage.setY(this.primaryStage.getY() + deltay);
|
this.primaryStage.setY(this.primaryStage.getY() + deltaY);
|
||||||
}
|
}
|
||||||
|
|
||||||
mouseEvent.consume();
|
mouseEvent.consume();
|
||||||
} else if (Cursor.N_RESIZE == cursor) {
|
} else if (Cursor.N_RESIZE == cursor) {
|
||||||
if (this.setStageHeight(this.primaryStage.getHeight() - deltay)) {
|
if (this.setStageHeight(this.primaryStage.getHeight() - deltaY)) {
|
||||||
this.primaryStage.setY(this.primaryStage.getY() + deltay);
|
this.primaryStage.setY(this.primaryStage.getY() + deltaY);
|
||||||
}
|
}
|
||||||
|
|
||||||
mouseEvent.consume();
|
mouseEvent.consume();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -30,7 +30,10 @@ import javafx.beans.value.WeakChangeListener;
|
|||||||
import javafx.event.EventHandler;
|
import javafx.event.EventHandler;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.ListView;
|
||||||
|
import javafx.scene.control.ScrollBar;
|
||||||
|
import javafx.scene.control.ScrollPane;
|
||||||
|
import javafx.scene.control.Tooltip;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
@@ -39,6 +42,7 @@ import javafx.scene.layout.Region;
|
|||||||
import javafx.scene.shape.Rectangle;
|
import javafx.scene.shape.Rectangle;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import org.jackhuang.hmcl.Main;
|
import org.jackhuang.hmcl.Main;
|
||||||
|
import org.jackhuang.hmcl.util.ExceptionalSupplier;
|
||||||
import org.jackhuang.hmcl.util.Lang;
|
import org.jackhuang.hmcl.util.Lang;
|
||||||
import org.jackhuang.hmcl.util.Logging;
|
import org.jackhuang.hmcl.util.Logging;
|
||||||
import org.jackhuang.hmcl.util.OperatingSystem;
|
import org.jackhuang.hmcl.util.OperatingSystem;
|
||||||
@@ -47,7 +51,6 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
@@ -90,8 +93,8 @@ public final class FXUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static class ListenerPair<T> {
|
private static class ListenerPair<T> {
|
||||||
ObservableValue<T> value;
|
private final ObservableValue<T> value;
|
||||||
ChangeListener<? super T> listener;
|
private final ChangeListener<? super T> listener;
|
||||||
|
|
||||||
ListenerPair(ObservableValue<T> value, ChangeListener<? super T> listener) {
|
ListenerPair(ObservableValue<T> value, ChangeListener<? super T> listener) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
@@ -187,7 +190,7 @@ public final class FXUtils {
|
|||||||
FXMLLoader loader = new FXMLLoader(node.getClass().getResource(absolutePath), Main.RESOURCE_BUNDLE);
|
FXMLLoader loader = new FXMLLoader(node.getClass().getResource(absolutePath), Main.RESOURCE_BUNDLE);
|
||||||
loader.setRoot(node);
|
loader.setRoot(node);
|
||||||
loader.setController(node);
|
loader.setController(node);
|
||||||
Lang.invoke(() -> loader.load());
|
Lang.invoke((ExceptionalSupplier<Object, IOException>) loader::load);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void resetChildren(JFXMasonryPane pane, List<Node> children) {
|
public static void resetChildren(JFXMasonryPane pane, List<Node> children) {
|
||||||
@@ -196,6 +199,10 @@ public final class FXUtils {
|
|||||||
pane.getChildren().setAll(children);
|
pane.getChildren().setAll(children);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void installTooltip(Node node, String tooltip) {
|
||||||
|
installTooltip(node, 0, 5000, 0, new Tooltip(tooltip));
|
||||||
|
}
|
||||||
|
|
||||||
public static void installTooltip(Node node, double openDelay, double visibleDelay, double closeDelay, Tooltip tooltip) {
|
public static void installTooltip(Node node, double openDelay, double visibleDelay, double closeDelay, Tooltip tooltip) {
|
||||||
try {
|
try {
|
||||||
// Java 8
|
// Java 8
|
||||||
@@ -215,35 +222,6 @@ public final class FXUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean alert(Alert.AlertType type, String title, String contentText) {
|
|
||||||
return alert(type, title, contentText, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean alert(Alert.AlertType type, String title, String contentText, String headerText) {
|
|
||||||
Alert alert = new Alert(type);
|
|
||||||
alert.setTitle(title);
|
|
||||||
alert.setHeaderText(headerText);
|
|
||||||
alert.setContentText(contentText);
|
|
||||||
Optional<ButtonType> result = alert.showAndWait();
|
|
||||||
return result.isPresent() && result.get() == ButtonType.OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Optional<String> inputDialog(String title, String contentText) {
|
|
||||||
return inputDialog(title, contentText, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Optional<String> inputDialog(String title, String contentText, String headerText) {
|
|
||||||
return inputDialog(title, contentText, headerText, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Optional<String> inputDialog(String title, String contentText, String headerText, String defaultValue) {
|
|
||||||
TextInputDialog dialog = new TextInputDialog(defaultValue);
|
|
||||||
dialog.setTitle(title);
|
|
||||||
dialog.setHeaderText(headerText);
|
|
||||||
dialog.setContentText(contentText);
|
|
||||||
return dialog.showAndWait();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void openFolder(File file) {
|
public static void openFolder(File file) {
|
||||||
file.mkdirs();
|
file.mkdirs();
|
||||||
String path = file.getAbsolutePath();
|
String path = file.getAbsolutePath();
|
||||||
@@ -328,9 +306,8 @@ public final class FXUtils {
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static void bindEnum(JFXComboBox<?> comboBox, Property<? extends Enum> property) {
|
public static void bindEnum(JFXComboBox<?> comboBox, Property<? extends Enum> property) {
|
||||||
unbindEnum(comboBox);
|
unbindEnum(comboBox);
|
||||||
ChangeListener<Number> listener = (a, b, newValue) -> {
|
ChangeListener<Number> listener = (a, b, newValue) ->
|
||||||
((Property) property).setValue(property.getValue().getClass().getEnumConstants()[newValue.intValue()]);
|
((Property) property).setValue(property.getValue().getClass().getEnumConstants()[newValue.intValue()]);
|
||||||
};
|
|
||||||
comboBox.getSelectionModel().select(property.getValue().ordinal());
|
comboBox.getSelectionModel().select(property.getValue().ordinal());
|
||||||
comboBox.getProperties().put("FXUtils.bindEnum.listener", listener);
|
comboBox.getProperties().put("FXUtils.bindEnum.listener", listener);
|
||||||
comboBox.getSelectionModel().selectedIndexProperty().addListener(listener);
|
comboBox.getSelectionModel().selectedIndexProperty().addListener(listener);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -47,7 +47,6 @@ import org.jackhuang.hmcl.ui.construct.ClassTitle;
|
|||||||
import org.jackhuang.hmcl.ui.construct.IconedItem;
|
import org.jackhuang.hmcl.ui.construct.IconedItem;
|
||||||
import org.jackhuang.hmcl.ui.construct.RipplerContainer;
|
import org.jackhuang.hmcl.ui.construct.RipplerContainer;
|
||||||
import org.jackhuang.hmcl.util.Lang;
|
import org.jackhuang.hmcl.util.Lang;
|
||||||
import org.jackhuang.hmcl.util.Pair;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
@@ -72,9 +71,7 @@ public final class LeftPaneController {
|
|||||||
iconedItem.setOnMouseClicked(e -> Controllers.navigate(Controllers.getSettingsPage()));
|
iconedItem.setOnMouseClicked(e -> Controllers.navigate(Controllers.getSettingsPage()));
|
||||||
}))
|
}))
|
||||||
.add(new ClassTitle(Lang.apply(new BorderPane(), borderPane -> {
|
.add(new ClassTitle(Lang.apply(new BorderPane(), borderPane -> {
|
||||||
borderPane.setLeft(Lang.apply(new VBox(), vBox -> {
|
borderPane.setLeft(Lang.apply(new VBox(), vBox -> vBox.getChildren().setAll(new Text(Main.i18n("profile.title").toUpperCase()))));
|
||||||
vBox.getChildren().setAll(new Text(Main.i18n("profile.title").toUpperCase()));
|
|
||||||
}));
|
|
||||||
JFXButton addProfileButton = new JFXButton();
|
JFXButton addProfileButton = new JFXButton();
|
||||||
addProfileButton.setGraphic(SVG.plus("black", 10, 10));
|
addProfileButton.setGraphic(SVG.plus("black", 10, 10));
|
||||||
addProfileButton.getStyleClass().add("toggle-icon-tiny");
|
addProfileButton.getStyleClass().add("toggle-icon-tiny");
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2013 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -70,9 +70,7 @@ public final class LogWindow extends Stage {
|
|||||||
public LogWindow(String text) {
|
public LogWindow(String text) {
|
||||||
this();
|
this();
|
||||||
|
|
||||||
onDone.register(() -> {
|
onDone.register(() -> logLine(text, Log4jLevel.INFO));
|
||||||
logLine(text, Log4jLevel.INFO);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReadOnlyIntegerProperty fatalProperty() {
|
public ReadOnlyIntegerProperty fatalProperty() {
|
||||||
@@ -164,7 +162,7 @@ public final class LogWindow extends Stage {
|
|||||||
@FXML
|
@FXML
|
||||||
private ComboBox<String> cboLines;
|
private ComboBox<String> cboLines;
|
||||||
|
|
||||||
WebEngine engine;
|
final WebEngine engine;
|
||||||
Node body;
|
Node body;
|
||||||
Document document;
|
Document document;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -26,7 +26,6 @@ import javafx.beans.property.SimpleStringProperty;
|
|||||||
import javafx.beans.property.StringProperty;
|
import javafx.beans.property.StringProperty;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.control.Tooltip;
|
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.input.MouseButton;
|
import javafx.scene.input.MouseButton;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
@@ -75,7 +74,7 @@ public final class MainPage extends StackPane implements DecoratorPage {
|
|||||||
@FXML
|
@FXML
|
||||||
private JFXListView versionList;
|
private JFXListView versionList;
|
||||||
|
|
||||||
private JFXPopup versionPopup;
|
private final JFXPopup versionPopup;
|
||||||
|
|
||||||
{
|
{
|
||||||
FXUtils.loadFXML(this, "/assets/fxml/main.fxml");
|
FXUtils.loadFXML(this, "/assets/fxml/main.fxml");
|
||||||
@@ -88,9 +87,9 @@ public final class MainPage extends StackPane implements DecoratorPage {
|
|||||||
getChildren().remove(versionList);
|
getChildren().remove(versionList);
|
||||||
|
|
||||||
btnAdd.setOnMouseClicked(e -> Controllers.getDecorator().startWizard(new DownloadWizardProvider(), Main.i18n("install")));
|
btnAdd.setOnMouseClicked(e -> Controllers.getDecorator().startWizard(new DownloadWizardProvider(), Main.i18n("install")));
|
||||||
FXUtils.installTooltip(btnAdd, 0, 5000, 0, new Tooltip(Main.i18n("install")));
|
FXUtils.installTooltip(btnAdd, Main.i18n("install"));
|
||||||
btnRefresh.setOnMouseClicked(e -> Settings.INSTANCE.getSelectedProfile().getRepository().refreshVersionsAsync().start());
|
btnRefresh.setOnMouseClicked(e -> Settings.INSTANCE.getSelectedProfile().getRepository().refreshVersionsAsync().start());
|
||||||
FXUtils.installTooltip(btnRefresh, 0, 5000, 0, new Tooltip(Main.i18n("button.refresh")));
|
FXUtils.installTooltip(btnRefresh, Main.i18n("button.refresh"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Node buildNode(Profile profile, String version, String game) {
|
private Node buildNode(Profile profile, String version, String game) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -127,13 +127,12 @@ public final class ModController {
|
|||||||
});
|
});
|
||||||
variables.set("list", list);
|
variables.set("list", list);
|
||||||
}
|
}
|
||||||
}).subscribe(Schedulers.javafx(), variables -> {
|
}).finalized(Schedulers.javafx(), variables -> {
|
||||||
FXUtils.onWeakChangeAndOperate(parentTab.getSelectionModel().selectedItemProperty(), newValue -> {
|
FXUtils.onWeakChangeAndOperate(parentTab.getSelectionModel().selectedItemProperty(), newValue -> {
|
||||||
if (newValue != null && newValue.getUserData() == ModController.this)
|
if (newValue != null && newValue.getUserData() == ModController.this)
|
||||||
modPane.getChildren().setAll(variables.<List<ModItem>>get("list"));
|
modPane.getChildren().setAll(variables.<List<ModItem>>get("list"));
|
||||||
});
|
});
|
||||||
});
|
}, null).start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -144,7 +143,12 @@ public final class ModController {
|
|||||||
File res = chooser.showOpenDialog(Controllers.getStage());
|
File res = chooser.showOpenDialog(Controllers.getStage());
|
||||||
if (res == null) return;
|
if (res == null) return;
|
||||||
Task.of(() -> modManager.addMod(versionId, res))
|
Task.of(() -> modManager.addMod(versionId, res))
|
||||||
.subscribe(Task.of(Schedulers.javafx(), () -> loadMods(modManager, versionId)));
|
.finalized(Schedulers.javafx(), (variables, isDependentsSucceeded) -> {
|
||||||
|
if (isDependentsSucceeded)
|
||||||
|
loadMods(modManager, versionId);
|
||||||
|
else
|
||||||
|
Controllers.dialog("mods.failed");
|
||||||
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setParentTab(JFXTabPane parentTab) {
|
public void setParentTab(JFXTabPane parentTab) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -21,39 +21,37 @@ import com.jfoenix.controls.JFXButton;
|
|||||||
import com.jfoenix.controls.JFXCheckBox;
|
import com.jfoenix.controls.JFXCheckBox;
|
||||||
import com.jfoenix.effects.JFXDepthManager;
|
import com.jfoenix.effects.JFXDepthManager;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.control.Label;
|
|
||||||
import javafx.scene.layout.BorderPane;
|
import javafx.scene.layout.BorderPane;
|
||||||
import javafx.scene.layout.VBox;
|
|
||||||
import org.jackhuang.hmcl.Main;
|
import org.jackhuang.hmcl.Main;
|
||||||
import org.jackhuang.hmcl.mod.ModInfo;
|
import org.jackhuang.hmcl.mod.ModInfo;
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public final class ModItem extends BorderPane {
|
public final class ModItem extends BorderPane {
|
||||||
private final TwoLineListItem modItem = new TwoLineListItem();
|
|
||||||
private final JFXCheckBox chkEnabled = new JFXCheckBox();
|
|
||||||
|
|
||||||
public ModItem(ModInfo info, Consumer<ModItem> deleteCallback) {
|
public ModItem(ModInfo info, Consumer<ModItem> deleteCallback) {
|
||||||
|
JFXCheckBox chkEnabled = new JFXCheckBox();
|
||||||
BorderPane.setAlignment(chkEnabled, Pos.CENTER);
|
BorderPane.setAlignment(chkEnabled, Pos.CENTER);
|
||||||
setLeft(chkEnabled);
|
setLeft(chkEnabled);
|
||||||
|
|
||||||
|
TwoLineListItem modItem = new TwoLineListItem();
|
||||||
BorderPane.setAlignment(modItem, Pos.CENTER);
|
BorderPane.setAlignment(modItem, Pos.CENTER);
|
||||||
setCenter(modItem);
|
setCenter(modItem);
|
||||||
|
|
||||||
JFXButton right = new JFXButton();
|
JFXButton btnRemove = new JFXButton();
|
||||||
right.setOnMouseClicked(e -> deleteCallback.accept(this));
|
FXUtils.installTooltip(btnRemove, Main.i18n("mods.remove"));
|
||||||
right.getStyleClass().add("toggle-icon4");
|
btnRemove.setOnMouseClicked(e -> deleteCallback.accept(this));
|
||||||
BorderPane.setAlignment(right, Pos.CENTER);
|
btnRemove.getStyleClass().add("toggle-icon4");
|
||||||
right.setGraphic(SVG.close("black", 15, 15));
|
BorderPane.setAlignment(btnRemove, Pos.CENTER);
|
||||||
setRight(right);
|
btnRemove.setGraphic(SVG.close("black", 15, 15));
|
||||||
|
setRight(btnRemove);
|
||||||
|
|
||||||
setStyle("-fx-background-radius: 2; -fx-background-color: white; -fx-padding: 8;");
|
setStyle("-fx-background-radius: 2; -fx-background-color: white; -fx-padding: 8;");
|
||||||
JFXDepthManager.setDepth(this, 1);
|
JFXDepthManager.setDepth(this, 1);
|
||||||
modItem.setTitle(info.getFileName());
|
modItem.setTitle(info.getFileName());
|
||||||
modItem.setSubtitle(info.getName() + ", " + Main.i18n("archive.version") + ": " + info.getVersion() + ", " + Main.i18n("archive.game_version") + ": " + info.getGameVersion() + ", " + Main.i18n("archive.author") + ": " + info.getAuthors());
|
modItem.setSubtitle(info.getName() + ", " + Main.i18n("archive.version") + ": " + info.getVersion() + ", " + Main.i18n("archive.game_version") + ": " + info.getGameVersion() + ", " + Main.i18n("archive.author") + ": " + info.getAuthors());
|
||||||
chkEnabled.setSelected(info.isActive());
|
chkEnabled.setSelected(info.isActive());
|
||||||
chkEnabled.selectedProperty().addListener((a, b, newValue) -> {
|
chkEnabled.selectedProperty().addListener((a, b, newValue) ->
|
||||||
info.activeProperty().set(newValue);
|
info.activeProperty().set(newValue));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -23,7 +23,10 @@ import javafx.beans.property.StringProperty;
|
|||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.control.ScrollPane;
|
||||||
|
import javafx.scene.control.Toggle;
|
||||||
|
import javafx.scene.control.ToggleGroup;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
@@ -158,13 +161,11 @@ public final class SettingsPage extends StackPane implements DecoratorPage {
|
|||||||
chkManualProxy.setSelected(true);
|
chkManualProxy.setSelected(true);
|
||||||
proxyPane.disableProperty().bind(chkNoProxy.selectedProperty());
|
proxyPane.disableProperty().bind(chkNoProxy.selectedProperty());
|
||||||
|
|
||||||
hasProxyGroup.selectedToggleProperty().addListener((a, b, newValue) -> {
|
hasProxyGroup.selectedToggleProperty().addListener((a, b, newValue) ->
|
||||||
Settings.INSTANCE.setHasProxy(newValue != chkNoProxy);
|
Settings.INSTANCE.setHasProxy(newValue != chkNoProxy));
|
||||||
});
|
|
||||||
|
|
||||||
proxyConfigurationGroup.selectedToggleProperty().addListener((a, b, newValue) -> {
|
proxyConfigurationGroup.selectedToggleProperty().addListener((a, b, newValue) ->
|
||||||
Settings.INSTANCE.setProxyType((Proxy.Type) newValue.getUserData());
|
Settings.INSTANCE.setProxyType((Proxy.Type) newValue.getUserData()));
|
||||||
});
|
|
||||||
|
|
||||||
chkProxyAuthentication.setSelected(Settings.INSTANCE.hasProxyAuth());
|
chkProxyAuthentication.setSelected(Settings.INSTANCE.hasProxyAuth());
|
||||||
chkProxyAuthentication.selectedProperty().addListener((a, b, newValue) -> Settings.INSTANCE.setHasProxyAuth(newValue));
|
chkProxyAuthentication.selectedProperty().addListener((a, b, newValue) -> Settings.INSTANCE.setHasProxyAuth(newValue));
|
||||||
@@ -172,7 +173,7 @@ public final class SettingsPage extends StackPane implements DecoratorPage {
|
|||||||
|
|
||||||
fileCommonLocation.setProperty(Settings.INSTANCE.commonPathProperty());
|
fileCommonLocation.setProperty(Settings.INSTANCE.commonPathProperty());
|
||||||
|
|
||||||
FXUtils.installTooltip(btnUpdate, 0, 5000, 0, new Tooltip(Main.i18n("update.tooltip")));
|
FXUtils.installTooltip(btnUpdate, Main.i18n("update.tooltip"));
|
||||||
checkUpdate();
|
checkUpdate();
|
||||||
|
|
||||||
// background
|
// background
|
||||||
@@ -189,9 +190,8 @@ public final class SettingsPage extends StackPane implements DecoratorPage {
|
|||||||
Settings.INSTANCE.backgroundImageTypeProperty().setChangedListener(it -> initBackgroundItemSubtitle());
|
Settings.INSTANCE.backgroundImageTypeProperty().setChangedListener(it -> initBackgroundItemSubtitle());
|
||||||
initBackgroundItemSubtitle();
|
initBackgroundItemSubtitle();
|
||||||
|
|
||||||
backgroundItem.setToggleSelectedListener(newValue -> {
|
backgroundItem.setToggleSelectedListener(newValue ->
|
||||||
Settings.INSTANCE.setBackgroundImageType((EnumBackgroundImage) newValue.getUserData());
|
Settings.INSTANCE.setBackgroundImageType((EnumBackgroundImage) newValue.getUserData()));
|
||||||
});
|
|
||||||
|
|
||||||
// theme
|
// theme
|
||||||
themeItem.loadChildren(Arrays.asList(
|
themeItem.loadChildren(Arrays.asList(
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.jackhuang.hmcl.ui;
|
package org.jackhuang.hmcl.ui;
|
||||||
|
|
||||||
import javafx.beans.property.*;
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
|
import javafx.beans.property.StringProperty;
|
||||||
import javafx.css.*;
|
import javafx.css.*;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
@@ -9,8 +10,6 @@ import javafx.scene.layout.VBox;
|
|||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.scene.paint.Paint;
|
import javafx.scene.paint.Paint;
|
||||||
import javafx.scene.text.Font;
|
import javafx.scene.text.Font;
|
||||||
import org.jackhuang.hmcl.ui.construct.RipplerContainer;
|
|
||||||
import org.jackhuang.hmcl.util.Pair;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -22,7 +22,6 @@ import javafx.beans.binding.Bindings;
|
|||||||
import javafx.event.EventHandler;
|
import javafx.event.EventHandler;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.Tooltip;
|
|
||||||
import javafx.scene.effect.BlurType;
|
import javafx.scene.effect.BlurType;
|
||||||
import javafx.scene.effect.DropShadow;
|
import javafx.scene.effect.DropShadow;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
@@ -73,10 +72,10 @@ public final class VersionItem extends StackPane {
|
|||||||
btnLaunch.setGraphic(SVG.launch("black", 15, 15));
|
btnLaunch.setGraphic(SVG.launch("black", 15, 15));
|
||||||
btnScript.setGraphic(SVG.script("black", 15, 15));
|
btnScript.setGraphic(SVG.script("black", 15, 15));
|
||||||
|
|
||||||
FXUtils.installTooltip(btnSettings, 0, 5000, 0, new Tooltip(Main.i18n("version.settings")));
|
FXUtils.installTooltip(btnSettings, Main.i18n("version.settings"));
|
||||||
FXUtils.installTooltip(btnUpdate, 0, 5000, 0, new Tooltip(Main.i18n("version.update")));
|
FXUtils.installTooltip(btnUpdate, Main.i18n("version.update"));
|
||||||
FXUtils.installTooltip(btnLaunch, 0, 5000, 0, new Tooltip(Main.i18n("version.launch")));
|
FXUtils.installTooltip(btnLaunch, Main.i18n("version.launch"));
|
||||||
FXUtils.installTooltip(btnScript, 0, 5000, 0, new Tooltip(Main.i18n("version.launch_script")));
|
FXUtils.installTooltip(btnScript, Main.i18n("version.launch_script"));
|
||||||
|
|
||||||
icon.translateYProperty().bind(Bindings.createDoubleBinding(() -> header.getBoundsInParent().getHeight() - icon.getHeight() / 2 - 16, header.boundsInParentProperty(), icon.heightProperty()));
|
icon.translateYProperty().bind(Bindings.createDoubleBinding(() -> header.getBoundsInParent().getHeight() - icon.getHeight() / 2 - 16, header.boundsInParentProperty(), icon.heightProperty()));
|
||||||
FXUtils.limitSize(iconView, 32, 32);
|
FXUtils.limitSize(iconView, 32, 32);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -25,7 +25,6 @@ import javafx.beans.property.SimpleStringProperty;
|
|||||||
import javafx.beans.property.StringProperty;
|
import javafx.beans.property.StringProperty;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
import javafx.scene.control.Tooltip;
|
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
import org.jackhuang.hmcl.Main;
|
import org.jackhuang.hmcl.Main;
|
||||||
import org.jackhuang.hmcl.download.game.GameAssetIndexDownloadTask;
|
import org.jackhuang.hmcl.download.game.GameAssetIndexDownloadTask;
|
||||||
@@ -66,8 +65,8 @@ public final class VersionPage extends StackPane implements DecoratorPage {
|
|||||||
@FXML
|
@FXML
|
||||||
private JFXTabPane tabPane;
|
private JFXTabPane tabPane;
|
||||||
|
|
||||||
private JFXPopup browsePopup;
|
private final JFXPopup browsePopup;
|
||||||
private JFXPopup managementPopup;
|
private final JFXPopup managementPopup;
|
||||||
|
|
||||||
private Profile profile;
|
private Profile profile;
|
||||||
private String version;
|
private String version;
|
||||||
@@ -80,10 +79,10 @@ public final class VersionPage extends StackPane implements DecoratorPage {
|
|||||||
browsePopup = new JFXPopup(browseList);
|
browsePopup = new JFXPopup(browseList);
|
||||||
managementPopup = new JFXPopup(managementList);
|
managementPopup = new JFXPopup(managementList);
|
||||||
|
|
||||||
FXUtils.installTooltip(btnDelete, 0, 5000, 0, new Tooltip(Main.i18n("version.manage.remove")));
|
FXUtils.installTooltip(btnDelete, Main.i18n("version.manage.remove"));
|
||||||
FXUtils.installTooltip(btnBrowseMenu, 0, 5000, 0, new Tooltip(Main.i18n("settings.game.exploration")));
|
FXUtils.installTooltip(btnBrowseMenu, Main.i18n("settings.game.exploration"));
|
||||||
FXUtils.installTooltip(btnManagementMenu, 0, 5000, 0, new Tooltip(Main.i18n("settings.game.management")));
|
FXUtils.installTooltip(btnManagementMenu, Main.i18n("settings.game.management"));
|
||||||
FXUtils.installTooltip(btnExport, 0, 5000, 0, new Tooltip(Main.i18n("modpack.export")));
|
FXUtils.installTooltip(btnExport, Main.i18n("modpack.export"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void load(String id, Profile profile) {
|
public void load(String id, Profile profile) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -24,7 +24,6 @@ import javafx.scene.Node;
|
|||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.ScrollPane;
|
import javafx.scene.control.ScrollPane;
|
||||||
import javafx.scene.control.Toggle;
|
import javafx.scene.control.Toggle;
|
||||||
import javafx.scene.control.Tooltip;
|
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
@@ -83,11 +82,9 @@ public final class VersionSettingsController {
|
|||||||
|
|
||||||
FXUtils.smoothScrolling(scroll);
|
FXUtils.smoothScrolling(scroll);
|
||||||
|
|
||||||
Task.of(variables -> {
|
Task.of(variables -> variables.set("list", JavaVersion.getJREs().values().stream().map(javaVersion ->
|
||||||
variables.set("list", JavaVersion.getJREs().values().stream().map(javaVersion ->
|
javaItem.createChildren(javaVersion.getVersion(), javaVersion.getBinary().getAbsolutePath(), javaVersion)
|
||||||
javaItem.createChildren(javaVersion.getVersion(), javaVersion.getBinary().getAbsolutePath(), javaVersion)
|
).collect(Collectors.toList()))).subscribe(Schedulers.javafx(), variables ->
|
||||||
).collect(Collectors.toList()));
|
|
||||||
}).subscribe(Schedulers.javafx(), variables ->
|
|
||||||
javaItem.loadChildren(variables.<Collection<Node>>get("list"))
|
javaItem.loadChildren(variables.<Collection<Node>>get("list"))
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -104,7 +101,7 @@ public final class VersionSettingsController {
|
|||||||
globalItem.createChildren(Main.i18n("settings.type.special"), false)
|
globalItem.createChildren(Main.i18n("settings.type.special"), false)
|
||||||
));
|
));
|
||||||
|
|
||||||
FXUtils.installTooltip(btnIconSelection, 0, 5000, 0, new Tooltip(Main.i18n("button.edit")));
|
FXUtils.installTooltip(btnIconSelection, Main.i18n("button.edit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadVersionSetting(Profile profile, String versionId) {
|
public void loadVersionSetting(Profile profile, String versionId) {
|
||||||
@@ -202,9 +199,7 @@ public final class VersionSettingsController {
|
|||||||
.findFirst().ifPresent(toggle -> toggle.setSelected(true));
|
.findFirst().ifPresent(toggle -> toggle.setSelected(true));
|
||||||
|
|
||||||
gameDirItem.setCustomUserData(EnumGameDirectory.CUSTOM);
|
gameDirItem.setCustomUserData(EnumGameDirectory.CUSTOM);
|
||||||
gameDirItem.setToggleSelectedListener(newValue -> {
|
gameDirItem.setToggleSelectedListener(newValue -> versionSetting.setGameDirType((EnumGameDirectory) newValue.getUserData()));
|
||||||
versionSetting.setGameDirType((EnumGameDirectory) newValue.getUserData());
|
|
||||||
});
|
|
||||||
|
|
||||||
versionSetting.gameDirProperty().setChangedListener(it -> initGameDirSubtitle(versionSetting));
|
versionSetting.gameDirProperty().setChangedListener(it -> initGameDirSubtitle(versionSetting));
|
||||||
versionSetting.gameDirTypeProperty().setChangedListener(it -> initGameDirSubtitle(versionSetting));
|
versionSetting.gameDirTypeProperty().setChangedListener(it -> initGameDirSubtitle(versionSetting));
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright c 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright c 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -83,7 +83,7 @@ public enum ContainerAnimations {
|
|||||||
new KeyValue(c.getCurrentNode().translateXProperty(), 0, Interpolator.EASE_BOTH),
|
new KeyValue(c.getCurrentNode().translateXProperty(), 0, Interpolator.EASE_BOTH),
|
||||||
new KeyValue(c.getPreviousNode().translateXProperty(), c.getCurrentRoot().getWidth(), Interpolator.EASE_BOTH))));
|
new KeyValue(c.getPreviousNode().translateXProperty(), c.getCurrentRoot().getWidth(), Interpolator.EASE_BOTH))));
|
||||||
|
|
||||||
private AnimationProducer animationProducer;
|
private final AnimationProducer animationProducer;
|
||||||
|
|
||||||
ContainerAnimations(AnimationProducer animationProducer) {
|
ContainerAnimations(AnimationProducer animationProducer) {
|
||||||
this.animationProducer = animationProducer;
|
this.animationProducer = animationProducer;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -73,9 +73,7 @@ public final class TransitionHandler implements AnimationHandler {
|
|||||||
|
|
||||||
Timeline nowAnimation = new Timeline();
|
Timeline nowAnimation = new Timeline();
|
||||||
nowAnimation.getKeyFrames().addAll(transition.animate(this));
|
nowAnimation.getKeyFrames().addAll(transition.animate(this));
|
||||||
nowAnimation.getKeyFrames().add(new KeyFrame(duration, e -> {
|
nowAnimation.getKeyFrames().add(new KeyFrame(duration, e -> view.getChildren().remove(previousNode)));
|
||||||
view.getChildren().remove(previousNode);
|
|
||||||
}));
|
|
||||||
nowAnimation.play();
|
nowAnimation.play();
|
||||||
animation = nowAnimation;
|
animation = nowAnimation;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -35,7 +35,7 @@ import org.jackhuang.hmcl.ui.FXUtils;
|
|||||||
import org.jackhuang.hmcl.ui.SVG;
|
import org.jackhuang.hmcl.ui.SVG;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author
|
* @author huangyuhui
|
||||||
*/
|
*/
|
||||||
public class ComponentListCell extends StackPane {
|
public class ComponentListCell extends StackPane {
|
||||||
private final Node content;
|
private final Node content;
|
||||||
@@ -146,9 +146,8 @@ public class ComponentListCell extends StackPane {
|
|||||||
expandAnimation.play();
|
expandAnimation.play();
|
||||||
});
|
});
|
||||||
|
|
||||||
expandedProperty().addListener((a, b, newValue) -> {
|
expandedProperty().addListener((a, b, newValue) ->
|
||||||
expandIcon.setRotate(newValue ? 180 : 0);
|
expandIcon.setRotate(newValue ? 180 : 0));
|
||||||
});
|
|
||||||
|
|
||||||
getChildren().setAll(holder);
|
getChildren().setAll(holder);
|
||||||
} else
|
} else
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -53,7 +53,7 @@ public class FileItem extends BorderPane {
|
|||||||
right.setGraphic(SVG.pencil("black", 15, 15));
|
right.setGraphic(SVG.pencil("black", 15, 15));
|
||||||
right.getStyleClass().add("toggle-icon4");
|
right.getStyleClass().add("toggle-icon4");
|
||||||
right.setOnMouseClicked(e -> onExplore());
|
right.setOnMouseClicked(e -> onExplore());
|
||||||
FXUtils.installTooltip(right, 0, 5000, 0, new Tooltip(Main.i18n("button.edit")));
|
FXUtils.installTooltip(right, Main.i18n("button.edit"));
|
||||||
setRight(right);
|
setRight(right);
|
||||||
|
|
||||||
Tooltip tip = new Tooltip();
|
Tooltip tip = new Tooltip();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -106,12 +106,12 @@ public final class MessageBox {
|
|||||||
* @param title The title of MsgBox.
|
* @param title The title of MsgBox.
|
||||||
* @return user operation.
|
* @return user operation.
|
||||||
*/
|
*/
|
||||||
public static void show(String message, String title) {
|
public static Optional<ButtonType> show(String message, String title) {
|
||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||||
alert.setTitle(title);
|
alert.setTitle(title);
|
||||||
alert.setHeaderText(title);
|
alert.setHeaderText(title);
|
||||||
alert.setContentText(message);
|
alert.setContentText(message);
|
||||||
alert.showAndWait();
|
return alert.showAndWait();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int confirm(String message, String title) {
|
public static int confirm(String message, String title) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 4017 huangyuhui <huanghongxun4008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun4008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -52,7 +52,7 @@ public class MultiFileItem extends ComponentList {
|
|||||||
private final StringProperty chooserTitle = new SimpleStringProperty(this, "chooserTitle", Main.i18n("selector.choose_file"));
|
private final StringProperty chooserTitle = new SimpleStringProperty(this, "chooserTitle", Main.i18n("selector.choose_file"));
|
||||||
private final BooleanProperty directory = new SimpleBooleanProperty(this, "directory", false);
|
private final BooleanProperty directory = new SimpleBooleanProperty(this, "directory", false);
|
||||||
private final SimpleStringProperty tooltip = new SimpleStringProperty(this, "tooltip");
|
private final SimpleStringProperty tooltip = new SimpleStringProperty(this, "tooltip");
|
||||||
private ObservableList<FileChooser.ExtensionFilter> extensionFilters = FXCollections.observableArrayList();
|
private final ObservableList<FileChooser.ExtensionFilter> extensionFilters = FXCollections.observableArrayList();
|
||||||
|
|
||||||
private final ToggleGroup group = new ToggleGroup();
|
private final ToggleGroup group = new ToggleGroup();
|
||||||
private final JFXTextField txtCustom = new JFXTextField();
|
private final JFXTextField txtCustom = new JFXTextField();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -23,7 +23,7 @@ import javafx.scene.control.TextInputControl;
|
|||||||
import org.jackhuang.hmcl.util.StringUtils;
|
import org.jackhuang.hmcl.util.StringUtils;
|
||||||
|
|
||||||
public class NumberValidator extends ValidatorBase {
|
public class NumberValidator extends ValidatorBase {
|
||||||
private boolean nullable;
|
private final boolean nullable;
|
||||||
|
|
||||||
public NumberValidator() {
|
public NumberValidator() {
|
||||||
this(false);
|
this(false);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -52,7 +52,7 @@ public final class ModpackFileSelectionPage extends StackPane implements WizardP
|
|||||||
private final ModAdviser adviser;
|
private final ModAdviser adviser;
|
||||||
@FXML
|
@FXML
|
||||||
private JFXTreeView<String> treeView;
|
private JFXTreeView<String> treeView;
|
||||||
private CheckBoxTreeItem<String> rootNode;
|
private final CheckBoxTreeItem<String> rootNode;
|
||||||
|
|
||||||
public ModpackFileSelectionPage(WizardController controller, Profile profile, String version, ModAdviser adviser) {
|
public ModpackFileSelectionPage(WizardController controller, Profile profile, String version, ModAdviser adviser) {
|
||||||
this.controller = controller;
|
this.controller = controller;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Hello Minecraft! Launcher.
|
* Hello Minecraft! Launcher.
|
||||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
* Copyright (C) 2018 huangyuhui <huanghongxun2008@126.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user