diff --git a/HMCL/build.gradle b/HMCL/build.gradle index 2f286c450..11fb43bae 100644 --- a/HMCL/build.gradle +++ b/HMCL/build.gradle @@ -2,7 +2,6 @@ import java.security.MessageDigest import java.util.jar.JarFile import java.util.jar.Pack200 import java.util.zip.GZIPOutputStream -import java.io.File if (!hasProperty('mainClass')) { ext.mainClass = 'org.jackhuang.hmcl.Main' @@ -61,7 +60,7 @@ jar { def messageDigest = MessageDigest.getInstance("SHA1") archivePath.eachByte 1024 * 1024, { byte[] buf, int bytesRead -> - messageDigest.update(buf, 0, bytesRead); + messageDigest.update(buf, 0, bytesRead) } def sha1Hex = new BigInteger(1, messageDigest.digest()).toString(16).padLeft(40, '0') def fileEx = new File(project.buildDir, "libs/" + archivePath.getName() + ".sha1") @@ -90,11 +89,11 @@ task makeExecutable(dependsOn: jar) doLast { int read def bytes = new byte[8192] while((read = is.read(bytes)) != -1) - fos.write(bytes, 0, read); + fos.write(bytes, 0, read) is.close() is = new FileInputStream(makeExecutableoutjar) while((read = is.read(bytes)) != -1) - fos.write(bytes, 0, read); + fos.write(bytes, 0, read) is.close() fos.close() @@ -115,7 +114,7 @@ task makePackGZ(dependsOn: jar) doLast { def messageDigest = MessageDigest.getInstance("SHA1") loc.eachByte 1024 * 1024, { byte[] buf, int bytesRead -> - messageDigest.update(buf, 0, bytesRead); + messageDigest.update(buf, 0, bytesRead) } def sha1Hex = new BigInteger(1, messageDigest.digest()).toString(16).padLeft(40, '0') def fileEx = new File(project.buildDir, "libs/" + makeExecutableoutjar.getName().substring(0, makeExecutableoutjar.getName().length()-4)+".pack.gz.sha1") @@ -160,5 +159,4 @@ task combineMETA_INF(type: Jar) { } build.dependsOn makeExecutable -//build.dependsOn makePackGZ -//Kotlin classes will be ignored by Pack200 due to class unrecognized attribute \ No newline at end of file +build.dependsOn makePackGZ \ No newline at end of file diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/Main.java b/HMCL/src/main/java/org/jackhuang/hmcl/Main.java index 439bef307..52bc84a5f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/Main.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/Main.java @@ -73,6 +73,10 @@ public final class Main extends Application { } } + public static String i18n(String key, Object... formatArgs) { + return String.format(i18n(key), formatArgs); + } + public static File getWorkingDirectory(String folder) { String home = System.getProperty("user.home", "."); switch (OperatingSystem.CURRENT_OS) { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLModpackManager.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLModpackManager.java index 7b6ab1eaa..4efbfccdb 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLModpackManager.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLModpackManager.java @@ -19,16 +19,14 @@ package org.jackhuang.hmcl.game; import com.google.gson.JsonParseException; import org.jackhuang.hmcl.mod.Modpack; -import org.jackhuang.hmcl.task.TaskResult; -import org.jackhuang.hmcl.util.*; -import sun.rmi.runtime.Log; +import org.jackhuang.hmcl.util.CompressingUtils; +import org.jackhuang.hmcl.util.Constants; +import org.jackhuang.hmcl.util.StringUtils; import java.io.File; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; /** * @author huangyuhui diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/MultiMCInstallVersionSettingTask.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/MultiMCInstallVersionSettingTask.java index d4edf3306..4d48a6e4a 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/MultiMCInstallVersionSettingTask.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/MultiMCInstallVersionSettingTask.java @@ -41,7 +41,7 @@ public final class MultiMCInstallVersionSettingTask extends Task { } @Override - public void execute() throws Exception { + public void execute() { VersionSetting vs = profile.specializeVersionSetting(version); ModpackHelper.toVersionSetting(manifest, vs); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profile.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profile.java index cef51a4ff..f48107f46 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profile.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profile.java @@ -17,17 +17,7 @@ */ package org.jackhuang.hmcl.setting; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonNull; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import java.io.File; -import java.lang.reflect.Type; -import java.util.Optional; +import com.google.gson.*; import javafx.beans.InvalidationListener; import org.jackhuang.hmcl.download.DefaultDependencyManager; import org.jackhuang.hmcl.game.HMCLGameRepository; @@ -35,6 +25,10 @@ import org.jackhuang.hmcl.mod.ModManager; import org.jackhuang.hmcl.util.ImmediateObjectProperty; import org.jackhuang.hmcl.util.ImmediateStringProperty; +import java.io.File; +import java.lang.reflect.Type; +import java.util.Optional; + /** * * @author huangyuhui diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java index 13fca2e8a..a0fb74e28 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/VersionSetting.java @@ -17,17 +17,17 @@ */ package org.jackhuang.hmcl.setting; -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Type; -import java.util.Optional; - import com.google.gson.*; import javafx.beans.InvalidationListener; import org.jackhuang.hmcl.Main; import org.jackhuang.hmcl.game.LaunchOptions; import org.jackhuang.hmcl.util.*; +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.Optional; + /** * * @author huangyuhui diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountsPage.java index f51380687..75a35c4ac 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountsPage.java @@ -147,7 +147,7 @@ public final class AccountsPage extends StackPane implements DecoratorPage { dialog.close(); loadAccounts(); } else if (account instanceof InvalidCredentialsException) { - lblCreationWarning.setText(Main.i18n("login.wrong_password")); + lblCreationWarning.setText(Main.i18n("account.failed.wrong_password")); } else if (account instanceof Exception) { lblCreationWarning.setText(((Exception) account).getLocalizedMessage()); } @@ -173,8 +173,8 @@ public final class AccountsPage extends StackPane implements DecoratorPage { } public static String accountType(Account account) { - if (account instanceof OfflineAccount) return Main.i18n("login.methods.offline"); - else if (account instanceof YggdrasilAccount) return Main.i18n("login.methods.yggdrasil"); - else throw new Error(Main.i18n("login.methods.no_method") + ": " + account); + if (account instanceof OfflineAccount) return Main.i18n("account.methods.offline"); + else if (account instanceof YggdrasilAccount) return Main.i18n("account.methods.yggdrasil"); + else throw new Error(Main.i18n("account.methods.no_method") + ": " + account); } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java index 88cdfa33b..31761de4a 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Decorator.java @@ -23,7 +23,6 @@ import com.jfoenix.controls.JFXDrawer; import com.jfoenix.controls.JFXHamburger; import com.jfoenix.effects.JFXDepthManager; import com.jfoenix.svg.SVGGlyph; -import javafx.animation.Timeline; import javafx.application.Platform; import javafx.beans.property.BooleanProperty; import javafx.beans.property.ObjectProperty; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/DialogController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/DialogController.java index 6527dcbe9..706bb750c 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/DialogController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/DialogController.java @@ -18,7 +18,6 @@ package org.jackhuang.hmcl.ui; import com.jfoenix.concurrency.JFXUtilities; -import kotlin.Unit; import org.jackhuang.hmcl.auth.Account; import org.jackhuang.hmcl.auth.AuthInfo; import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java index e3f2a2f19..ea9592038 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java @@ -42,7 +42,6 @@ import javafx.scene.layout.Region; import javafx.scene.shape.Rectangle; import javafx.util.Duration; import org.jackhuang.hmcl.Main; -import org.jackhuang.hmcl.Main; import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.Logging; import org.jackhuang.hmcl.util.OperatingSystem; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java index a66ae0f69..f30c6a8c8 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java @@ -45,17 +45,17 @@ public final class LeftPaneController { public LeftPaneController(AdvancedListBox leftPane) { this.leftPane = leftPane; - leftPane.startCategory("ACCOUNTS") + leftPane.startCategory(Main.i18n("account").toUpperCase()) .add(Lang.apply(new RipplerContainer(accountItem), rippler -> { rippler.setOnMouseClicked(e -> Controllers.navigate(new AccountsPage())); accountItem.setOnSettingsButtonClicked(() -> Controllers.navigate(new AccountsPage())); })) - .startCategory("LAUNCHER") - .add(Lang.apply(new IconedItem(SVG.gear("black", 20, 20), Main.i18n("launcher.title.launcher")), iconedItem -> { + .startCategory(Main.i18n("launcher").toUpperCase()) + .add(Lang.apply(new IconedItem(SVG.gear("black", 20, 20), Main.i18n("launcher_settings")), iconedItem -> { iconedItem.prefWidthProperty().bind(leftPane.widthProperty()); iconedItem.setOnMouseClicked(e -> Controllers.navigate(Controllers.getSettingsPage())); })) - .startCategory(Main.i18n("ui.label.profile")) + .startCategory(Main.i18n("profile")) .add(profilePane); EventBus.EVENT_BUS.channel(ProfileLoadingEvent.class).register(this::onProfilesLoading); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java index cf5b4bba4..8c8dc9234 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java @@ -17,7 +17,6 @@ */ package org.jackhuang.hmcl.ui; -import java.util.concurrent.CountDownLatch; import javafx.beans.binding.Bindings; import javafx.beans.property.ReadOnlyIntegerProperty; import javafx.beans.property.ReadOnlyIntegerWrapper; @@ -44,6 +43,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; +import java.util.concurrent.CountDownLatch; + /** * * @author huangyuhui diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java index 185d326d2..ed38274c8 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPage.java @@ -46,7 +46,7 @@ import java.util.List; public final class MainPage extends StackPane implements DecoratorPage { - private final StringProperty title = new SimpleStringProperty(this, "title", Main.i18n("launcher.title.main")); + private final StringProperty title = new SimpleStringProperty(this, "title", Main.i18n("main_page")); @FXML private JFXButton btnRefresh; @@ -64,7 +64,7 @@ public final class MainPage extends StackPane implements DecoratorPage { EventBus.EVENT_BUS.channel(ProfileLoadingEvent.class).register(this::onProfilesLoading); EventBus.EVENT_BUS.channel(ProfileChangedEvent.class).register(this::onProfileChanged); - btnAdd.setOnMouseClicked(e -> Controllers.getDecorator().startWizard(new DownloadWizardProvider(), "Install New Game")); + btnAdd.setOnMouseClicked(e -> Controllers.getDecorator().startWizard(new DownloadWizardProvider(), Main.i18n("install"))); btnRefresh.setOnMouseClicked(e -> Settings.INSTANCE.getSelectedProfile().getRepository().refreshVersions()); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/ModController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/ModController.java index 777a11e5e..dfc3e098b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/ModController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/ModController.java @@ -20,7 +20,6 @@ package org.jackhuang.hmcl.ui; import com.jfoenix.controls.JFXSpinner; import com.jfoenix.controls.JFXTabPane; import javafx.application.Platform; -import javafx.beans.value.WeakChangeListener; import javafx.fxml.FXML; import javafx.scene.control.ScrollPane; import javafx.scene.input.TransferMode; @@ -33,7 +32,6 @@ import org.jackhuang.hmcl.mod.ModManager; import org.jackhuang.hmcl.task.Schedulers; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.FileUtils; -import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.Logging; import java.io.File; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/ProfilePage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/ProfilePage.java index 80a06c8a2..22b782e8e 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/ProfilePage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/ProfilePage.java @@ -52,7 +52,7 @@ public final class ProfilePage extends StackPane implements DecoratorPage { this.profile = profile; title = new SimpleStringProperty(this, "title", - profile == null ? Main.i18n("ui.newProfileWindow.title") : Main.i18n("ui.label.profile") + " - " + profile.getName()); + profile == null ? Main.i18n("ui.newProfileWindow.title") : Main.i18n("profile") + " - " + profile.getName()); location = new SimpleStringProperty(this, "location", Optional.ofNullable(profile).map(Profile::getGameDir).map(File::getAbsolutePath).orElse("")); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java index c0099c0e5..19dfbc54f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java @@ -39,7 +39,7 @@ import org.jackhuang.hmcl.ui.wizard.DecoratorPage; import org.jackhuang.hmcl.util.Lang; public final class SettingsPage extends StackPane implements DecoratorPage { - private final StringProperty title = new SimpleStringProperty(this, "title", Main.i18n("launcher.title.launcher")); + private final StringProperty title = new SimpleStringProperty(this, "title", Main.i18n("launcher_settings")); @FXML private JFXTextField txtProxyHost; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionPage.java index b16295110..af29b4d67 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionPage.java @@ -80,16 +80,16 @@ public final class VersionPage extends StackPane implements DecoratorPage { browsePopup = new JFXPopup(browseList); managementPopup = new JFXPopup(managementList); - FXUtils.installTooltip(btnBrowseMenu, 0, 5000, 0, new Tooltip(Main.i18n("settings.explore"))); - FXUtils.installTooltip(btnManagementMenu, 0, 5000, 0, new Tooltip(Main.i18n("settings.manage"))); - FXUtils.installTooltip(btnExport, 0, 5000, 0, new Tooltip(Main.i18n("settings.save"))); + FXUtils.installTooltip(btnBrowseMenu, 0, 5000, 0, new Tooltip(Main.i18n("game_settings.exploration"))); + FXUtils.installTooltip(btnManagementMenu, 0, 5000, 0, new Tooltip(Main.i18n("game_settings.management"))); + FXUtils.installTooltip(btnExport, 0, 5000, 0, new Tooltip(Main.i18n("modpack.task.save"))); } public void load(String id, Profile profile) { this.version = id; this.profile = profile; - title.set(Main.i18n("launcher.title.game") + " - " + id); + title.set(Main.i18n("game_settings") + " - " + id); versionSettingsController.loadVersionSetting(profile, id, profile.getVersionSetting(id)); modController.setParentTab(tabPane); @@ -100,13 +100,11 @@ public final class VersionPage extends StackPane implements DecoratorPage { public void onBrowseMenu() { browseList.getSelectionModel().select(-1); - ; browsePopup.show(btnBrowseMenu, JFXPopup.PopupVPosition.TOP, JFXPopup.PopupHPosition.RIGHT, -12, 15); } public void onManagementMenu() { managementList.getSelectionModel().select(-1); - ; managementPopup.show(btnManagementMenu, JFXPopup.PopupVPosition.TOP, JFXPopup.PopupHPosition.RIGHT, -12, 15); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/YggdrasilAccountLoginPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/YggdrasilAccountLoginPane.java index be44ab4bf..2411907f9 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/YggdrasilAccountLoginPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/YggdrasilAccountLoginPane.java @@ -77,7 +77,7 @@ public class YggdrasilAccountLoginPane extends StackPane { success.accept(((AuthInfo) account)); dialog.close(); } else if (account instanceof InvalidCredentialsException) { - lblCreationWarning.setText(Main.i18n("login.wrong_password")); + lblCreationWarning.setText(Main.i18n("account.failed.wrong_password")); } else if (account instanceof Exception) { lblCreationWarning.setText(account.getClass().toString() + ": " + ((Exception) account).getLocalizedMessage()); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ComponentListCell.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ComponentListCell.java index a54eedbaf..5f8c443f1 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ComponentListCell.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ComponentListCell.java @@ -18,7 +18,10 @@ package org.jackhuang.hmcl.ui.construct; import com.jfoenix.controls.JFXButton; -import javafx.animation.*; +import javafx.animation.Animation; +import javafx.animation.KeyFrame; +import javafx.animation.KeyValue; +import javafx.animation.Timeline; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import javafx.geometry.Pos; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/FontComboBox.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/FontComboBox.java index 4b3c4f84b..6d293cb7d 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/FontComboBox.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/FontComboBox.java @@ -20,7 +20,6 @@ package org.jackhuang.hmcl.ui.construct; import com.jfoenix.controls.JFXComboBox; import javafx.beans.NamedArg; import javafx.collections.FXCollections; -import javafx.collections.ObservableList; import javafx.scene.control.ListCell; import javafx.scene.text.Font; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MessageBox.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MessageBox.java index 79e0cb53a..0eefed8f8 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MessageBox.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MessageBox.java @@ -21,8 +21,8 @@ import javafx.scene.control.Alert; import javafx.scene.control.ButtonType; import javafx.scene.control.TextInputDialog; import org.jackhuang.hmcl.Main; -import javax.swing.UIManager; +import javax.swing.*; import java.util.Optional; public final class MessageBox { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/UTF8Control.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/UTF8Control.java index 34af3f5e4..f5a9d85b9 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/UTF8Control.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/UTF8Control.java @@ -17,8 +17,6 @@ */ package org.jackhuang.hmcl.ui.construct; -import kotlin.jvm.Throws; - import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -35,7 +33,7 @@ public final class UTF8Control extends ResourceBundle.Control { @Override public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) - throws IllegalAccessException, InstantiationException, IOException { + throws IOException { // The below is a copy of the default implementation. String bundleName = toBundleName(baseName, locale); String resourceName = toResourceName(bundleName, "properties"); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/AdditionalInstallersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/AdditionalInstallersPage.java index fe74f2d23..d2cc404f0 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/AdditionalInstallersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/AdditionalInstallersPage.java @@ -31,6 +31,8 @@ import org.jackhuang.hmcl.util.Lang; import java.util.Map; +import static org.jackhuang.hmcl.Main.i18n; + class AdditionalInstallersPage extends StackPane implements WizardPage { private final InstallerWizardProvider provider; private final WizardController controller; @@ -62,17 +64,17 @@ class AdditionalInstallersPage extends StackPane implements WizardPage { btnForge.setOnMouseClicked(e -> { controller.getSettings().put(INSTALLER_TYPE, 0); - controller.onNext(new VersionsPage(controller, provider.getGameVersion(), downloadProvider, "forge", () -> { controller.onPrev(false); })); + controller.onNext(new VersionsPage(controller, i18n("install.installer.choose", i18n("install.installer.forge")), provider.getGameVersion(), downloadProvider, "forge", () -> { controller.onPrev(false); })); }); btnLiteLoader.setOnMouseClicked(e -> { controller.getSettings().put(INSTALLER_TYPE, 1); - controller.onNext(new VersionsPage(controller, provider.getGameVersion(), downloadProvider, "liteloader", () -> { controller.onPrev(false); })); + controller.onNext(new VersionsPage(controller, i18n("install.installer.choose", i18n("install.installer.liteloader")), provider.getGameVersion(), downloadProvider, "liteloader", () -> { controller.onPrev(false); })); }); btnOptiFine.setOnMouseClicked(e -> { controller.getSettings().put(INSTALLER_TYPE, 2); - controller.onNext(new VersionsPage(controller, provider.getGameVersion(), downloadProvider, "optifine", () -> { controller.onPrev(false); })); + controller.onNext(new VersionsPage(controller, i18n("install.installer.choose", i18n("install.installer.optifine")), provider.getGameVersion(), downloadProvider, "optifine", () -> { controller.onPrev(false); })); }); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadWizardProvider.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadWizardProvider.java index 851bfb736..798f65419 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadWizardProvider.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/DownloadWizardProvider.java @@ -36,6 +36,8 @@ import org.jackhuang.hmcl.util.Lang; import java.io.File; import java.util.Map; +import static org.jackhuang.hmcl.Main.i18n; + public final class DownloadWizardProvider implements WizardProvider { private Profile profile; @@ -114,7 +116,7 @@ public final class DownloadWizardProvider implements WizardProvider { int subStep = Lang.parseInt(settings.get(InstallTypePage.INSTALL_TYPE), -1); switch (subStep) { case 0: - return new VersionsPage(controller, "", provider, "game", () -> controller.onNext(new InstallersPage(controller, profile.getRepository(), provider))); + return new VersionsPage(controller, i18n("install.installer.choose", i18n("install.installer.game")), "", provider, "game", () -> controller.onNext(new InstallersPage(controller, profile.getRepository(), provider))); case 1: return new ModpackPage(controller); default: diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallTypePage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallTypePage.java index 04f1bca05..e37615ee6 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallTypePage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallTypePage.java @@ -20,6 +20,7 @@ package org.jackhuang.hmcl.ui.download; import com.jfoenix.controls.JFXListView; import javafx.fxml.FXML; import javafx.scene.layout.StackPane; +import org.jackhuang.hmcl.Main; import org.jackhuang.hmcl.ui.FXUtils; import org.jackhuang.hmcl.ui.wizard.WizardController; import org.jackhuang.hmcl.ui.wizard.WizardPage; @@ -48,7 +49,7 @@ public final class InstallTypePage extends StackPane implements WizardPage { @Override public String getTitle() { - return "Select an operation"; + return Main.i18n("install.select"); } public static final String INSTALL_TYPE = "INSTALL_TYPE"; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java index 1242231a2..7eceb9950 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/InstallersPage.java @@ -78,49 +78,49 @@ public class InstallersPage extends StackPane implements WizardPage { String gameVersion = (String) controller.getSettings().get("game"); Validator hasVersion = new Validator(s -> !repository.hasVersion(s) && StringUtils.isNotBlank(s)); - hasVersion.setMessage(Main.i18n("version.already_exists")); + hasVersion.setMessage(Main.i18n("install.new_game.already_exists")); txtName.getValidators().add(hasVersion); txtName.textProperty().addListener(e -> btnInstall.setDisable(!txtName.validate())); txtName.setText(gameVersion); btnForge.setOnMouseClicked(e -> { controller.getSettings().put(INSTALLER_TYPE, 0); - controller.onNext(new VersionsPage(controller, gameVersion, downloadProvider, "forge", () -> controller.onPrev(false))); + controller.onNext(new VersionsPage(controller, Main.i18n("install.installer.choose", Main.i18n("install.installer.forge")), gameVersion, downloadProvider, "forge", () -> controller.onPrev(false))); }); btnLiteLoader.setOnMouseClicked(e -> { controller.getSettings().put(INSTALLER_TYPE, 1); - controller.onNext(new VersionsPage(controller, gameVersion, downloadProvider, "liteloader", () -> controller.onPrev(false))); + controller.onNext(new VersionsPage(controller, Main.i18n("install.installer.choose", Main.i18n("install.installer.liteloader")), gameVersion, downloadProvider, "liteloader", () -> controller.onPrev(false))); }); btnOptiFine.setOnMouseClicked(e -> { controller.getSettings().put(INSTALLER_TYPE, 2); - controller.onNext(new VersionsPage(controller, gameVersion, downloadProvider, "optifine", () -> controller.onPrev(false))); + controller.onNext(new VersionsPage(controller, Main.i18n("install.installer.choose", Main.i18n("install.installer.optifine")), gameVersion, downloadProvider, "optifine", () -> controller.onPrev(false))); }); } @Override public String getTitle() { - return "Choose a game version"; + return Main.i18n("install.new_game"); } @Override public void onNavigate(Map settings) { - lblGameVersion.setText("Current Game Version: " + controller.getSettings().get("game")); + lblGameVersion.setText(Main.i18n("install.new_game.current_game_version") + ": " + controller.getSettings().get("game")); if (controller.getSettings().containsKey("forge")) - lblForge.setText("Forge Version: " + controller.getSettings().get("forge")); + lblForge.setText(Main.i18n("install.installer.version", Main.i18n("install.installer.forge")) + ": " + controller.getSettings().get("forge")); else - lblForge.setText("Forge not installed"); + lblForge.setText(Main.i18n("install.installer.not_installed", Main.i18n("install.installer.forge"))); if (controller.getSettings().containsKey("liteloader")) - lblLiteLoader.setText("LiteLoader Version: " + controller.getSettings().get("liteloader")); + lblLiteLoader.setText(Main.i18n("install.installer.version", Main.i18n("install.installer.liteloader")) + ": " + controller.getSettings().get("liteloader")); else - lblLiteLoader.setText("LiteLoader not installed"); + lblLiteLoader.setText(Main.i18n("install.installer.not_installed", Main.i18n("install.installer.liteloader"))); if (controller.getSettings().containsKey("optifine")) - lblOptiFine.setText("OptiFine Version: " + controller.getSettings().get("optifine")); + lblOptiFine.setText(Main.i18n("install.installer.version", Main.i18n("install.installer.optifine")) + ": " + controller.getSettings().get("optifine")); else - lblOptiFine.setText("OptiFine not installed"); + lblOptiFine.setText(Main.i18n("install.installer.not_installed", Main.i18n("install.installer.optifine"))); } @Override diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java index afc568148..9e035b003 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java @@ -41,6 +41,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh private final DownloadProvider downloadProvider; private final String libraryId; private final Runnable callback; + private final String title; @FXML private JFXListView list; @@ -50,8 +51,9 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh private final VersionList versionList; private TaskExecutor executor; - public VersionsPage(WizardController controller, String gameVersion, DownloadProvider downloadProvider, String libraryId, Runnable callback) { + public VersionsPage(WizardController controller, String title, String gameVersion, DownloadProvider downloadProvider, String libraryId, Runnable callback) { this.controller = controller; + this.title = title; this.gameVersion = gameVersion; this.downloadProvider = downloadProvider; this.libraryId = libraryId; @@ -83,7 +85,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh @Override public String getTitle() { - return "Choose a game version"; + return title; } @Override diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java index 96a30769c..a0b763c70 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/export/ExportWizardProvider.java @@ -18,14 +18,11 @@ package org.jackhuang.hmcl.ui.export; import javafx.scene.Node; -import kotlin.Suppress; import org.jackhuang.hmcl.game.HMCLModpackExportTask; import org.jackhuang.hmcl.mod.Modpack; import org.jackhuang.hmcl.setting.Profile; import org.jackhuang.hmcl.ui.wizard.WizardController; import org.jackhuang.hmcl.ui.wizard.WizardProvider; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.io.File; import java.util.List; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java index 2b2f3906e..3528dc922 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java @@ -18,15 +18,19 @@ package org.jackhuang.hmcl.upgrade; import com.google.gson.JsonSyntaxException; +import com.google.gson.reflect.TypeToken; +import org.jackhuang.hmcl.Main; +import org.jackhuang.hmcl.task.FileDownloadTask; +import org.jackhuang.hmcl.task.Task; +import org.jackhuang.hmcl.ui.Controllers; +import org.jackhuang.hmcl.ui.construct.MessageBox; +import org.jackhuang.hmcl.util.*; + import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.net.Proxy; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLClassLoader; +import java.net.*; import java.security.AccessController; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; @@ -37,15 +41,6 @@ import java.util.jar.Pack200; import java.util.logging.Level; import java.util.zip.GZIPInputStream; -import com.google.gson.reflect.TypeToken; -import org.jackhuang.hmcl.Main; -import org.jackhuang.hmcl.Main; -import org.jackhuang.hmcl.task.FileDownloadTask; -import org.jackhuang.hmcl.task.Task; -import org.jackhuang.hmcl.ui.Controllers; -import org.jackhuang.hmcl.ui.construct.MessageBox; -import org.jackhuang.hmcl.util.*; - /** * * @author huangyuhui diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/NewFileUpgrader.java b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/NewFileUpgrader.java index 7fdd18b62..0aa1033f5 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/NewFileUpgrader.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/NewFileUpgrader.java @@ -21,14 +21,12 @@ import org.jackhuang.hmcl.Main; import org.jackhuang.hmcl.task.FileDownloadTask; import org.jackhuang.hmcl.ui.Controllers; import org.jackhuang.hmcl.util.Charsets; -import org.jackhuang.hmcl.util.FileUtils; import org.jackhuang.hmcl.util.Logging; import org.jackhuang.hmcl.util.VersionNumber; import java.io.File; import java.io.IOException; import java.net.URL; -import java.util.Arrays; import java.util.List; import java.util.logging.Level; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java index 8be37b293..00767aeff 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java @@ -111,7 +111,7 @@ public final class UpdateChecker { public synchronized TaskResult> requestDownloadLink() { return new TaskResult>() { @Override - public void execute() throws Exception { + public void execute() { if (download_link == null) try { download_link = Constants.GSON.>fromJson(NetworkUtils.doGet(NetworkUtils.toURL("http://huangyuhui.duapp.com/update_link.php?type=" + type)), Map.class); diff --git a/HMCL/src/main/resources/assets/fxml/account-item.fxml b/HMCL/src/main/resources/assets/fxml/account-item.fxml index b41ac51c0..063538463 100644 --- a/HMCL/src/main/resources/assets/fxml/account-item.fxml +++ b/HMCL/src/main/resources/assets/fxml/account-item.fxml @@ -1,14 +1,13 @@ - - - - + + - - + + + diff --git a/HMCL/src/main/resources/assets/fxml/account.fxml b/HMCL/src/main/resources/assets/fxml/account.fxml index dd6dacb6d..97e9db58b 100644 --- a/HMCL/src/main/resources/assets/fxml/account.fxml +++ b/HMCL/src/main/resources/assets/fxml/account.fxml @@ -1,19 +1,12 @@ - - - - - - - - - - - - + - + + + + + @@ -54,13 +47,13 @@ - + - + diff --git a/HMCL/src/main/resources/assets/fxml/decorator.fxml b/HMCL/src/main/resources/assets/fxml/decorator.fxml index 9318897e5..81e5e5508 100644 --- a/HMCL/src/main/resources/assets/fxml/decorator.fxml +++ b/HMCL/src/main/resources/assets/fxml/decorator.fxml @@ -7,8 +7,6 @@ - - diff --git a/HMCL/src/main/resources/assets/fxml/download/additional-installers.fxml b/HMCL/src/main/resources/assets/fxml/download/additional-installers.fxml index f0b7f9e62..e2fd0776a 100644 --- a/HMCL/src/main/resources/assets/fxml/download/additional-installers.fxml +++ b/HMCL/src/main/resources/assets/fxml/download/additional-installers.fxml @@ -1,7 +1,7 @@ - - + + - + @@ -19,7 +19,7 @@ - + diff --git a/HMCL/src/main/resources/assets/fxml/download/modpack.fxml b/HMCL/src/main/resources/assets/fxml/download/modpack.fxml index a414583fb..d4801aad3 100644 --- a/HMCL/src/main/resources/assets/fxml/download/modpack.fxml +++ b/HMCL/src/main/resources/assets/fxml/download/modpack.fxml @@ -1,12 +1,11 @@ + + + - - - - diff --git a/HMCL/src/main/resources/assets/fxml/download/versions-list-item.fxml b/HMCL/src/main/resources/assets/fxml/download/versions-list-item.fxml index 749d40b69..1281525e3 100644 --- a/HMCL/src/main/resources/assets/fxml/download/versions-list-item.fxml +++ b/HMCL/src/main/resources/assets/fxml/download/versions-list-item.fxml @@ -1,8 +1,7 @@ - + - diff --git a/HMCL/src/main/resources/assets/fxml/download/versions.fxml b/HMCL/src/main/resources/assets/fxml/download/versions.fxml index ab7abbe50..a57c3c79c 100644 --- a/HMCL/src/main/resources/assets/fxml/download/versions.fxml +++ b/HMCL/src/main/resources/assets/fxml/download/versions.fxml @@ -1,8 +1,8 @@ - + - - + + diff --git a/HMCL/src/main/resources/assets/fxml/log.fxml b/HMCL/src/main/resources/assets/fxml/log.fxml index bdb6459d2..0b8652d82 100644 --- a/HMCL/src/main/resources/assets/fxml/log.fxml +++ b/HMCL/src/main/resources/assets/fxml/log.fxml @@ -1,15 +1,12 @@ - - - - + + + - - - - + + + + - - - + + diff --git a/HMCL/src/main/resources/assets/fxml/modpack/selection.fxml b/HMCL/src/main/resources/assets/fxml/modpack/selection.fxml index 90b7cfb4b..3f3dde7ff 100644 --- a/HMCL/src/main/resources/assets/fxml/modpack/selection.fxml +++ b/HMCL/src/main/resources/assets/fxml/modpack/selection.fxml @@ -1,10 +1,10 @@ - - - - + + + + diff --git a/HMCL/src/main/resources/assets/fxml/profile.fxml b/HMCL/src/main/resources/assets/fxml/profile.fxml index a65b02a83..1e82ea284 100644 --- a/HMCL/src/main/resources/assets/fxml/profile.fxml +++ b/HMCL/src/main/resources/assets/fxml/profile.fxml @@ -19,7 +19,7 @@ - @@ -31,7 +31,7 @@ - + diff --git a/HMCL/src/main/resources/assets/fxml/setting.fxml b/HMCL/src/main/resources/assets/fxml/setting.fxml index 740c2887d..7784e13fe 100644 --- a/HMCL/src/main/resources/assets/fxml/setting.fxml +++ b/HMCL/src/main/resources/assets/fxml/setting.fxml @@ -1,11 +1,9 @@ + + - - - - @@ -17,9 +15,9 @@ fitToHeight="true" fitToWidth="true"> - + - + - - + + @@ -38,18 +36,18 @@ - - + - + diff --git a/HMCL/src/main/resources/assets/fxml/version-item.fxml b/HMCL/src/main/resources/assets/fxml/version-item.fxml index 6b84f2dc1..cc2afa521 100644 --- a/HMCL/src/main/resources/assets/fxml/version-item.fxml +++ b/HMCL/src/main/resources/assets/fxml/version-item.fxml @@ -1,13 +1,11 @@ - - - - - + + + diff --git a/HMCL/src/main/resources/assets/fxml/version-list-item.fxml b/HMCL/src/main/resources/assets/fxml/version-list-item.fxml index 8d442570c..01ea7e95f 100644 --- a/HMCL/src/main/resources/assets/fxml/version-list-item.fxml +++ b/HMCL/src/main/resources/assets/fxml/version-list-item.fxml @@ -1,11 +1,10 @@ - - - - - + + + + - - - + + diff --git a/HMCL/src/main/resources/assets/fxml/version/installer.fxml b/HMCL/src/main/resources/assets/fxml/version/installer.fxml index af3c3e605..127372bb5 100644 --- a/HMCL/src/main/resources/assets/fxml/version/installer.fxml +++ b/HMCL/src/main/resources/assets/fxml/version/installer.fxml @@ -1,9 +1,9 @@ - - + + diff --git a/HMCL/src/main/resources/assets/fxml/version/mod.fxml b/HMCL/src/main/resources/assets/fxml/version/mod.fxml index 48421dbaf..cb922f8b2 100644 --- a/HMCL/src/main/resources/assets/fxml/version/mod.fxml +++ b/HMCL/src/main/resources/assets/fxml/version/mod.fxml @@ -1,10 +1,10 @@ + - - - @@ -76,7 +76,7 @@ - @@ -88,7 +88,7 @@ - @@ -121,7 +121,7 @@ - diff --git a/HMCL/src/main/resources/assets/fxml/yggdrasil-account-login.fxml b/HMCL/src/main/resources/assets/fxml/yggdrasil-account-login.fxml index 5b963e000..212c7b8fb 100644 --- a/HMCL/src/main/resources/assets/fxml/yggdrasil-account-login.fxml +++ b/HMCL/src/main/resources/assets/fxml/yggdrasil-account-login.fxml @@ -3,7 +3,8 @@ - + + diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index de26b8901..5ade51da1 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -37,74 +37,45 @@ launch.state.waiting_launching=Waiting for game launching install.no_version=The version is not found. install.no_version_if_intall=The required version is not found, do you wish to install the version automatically? -install.not_refreshed=The installer list is not refreshed. -install.download_list=Download List - -install.liteloader.get_list=Get LiteLoader List -install.liteloader.install=Install LiteLoader - -install.forge.get_list=Get Forge List -install.forge.install=Install Forge -install.forge.get_changelogs=Get Forge Changelogs - -install.optifine.install=Install OptiFine -install.optifine.get_list=Get OptiFine Download List -install.optifine.get_download_link=Get the Download Link of OptiFine - -install.failed_forge=Failed to install 'Forge'. -install.failed_optifine=Failed to install 'OptiFine'. -install.failed_liteloader=Failed to install 'LiteLoader'. -install.failed_download_forge=Failed to download 'Forge'. -install.failed_download_optifine=Failed to download 'OptiFine'. install.failed=Failed to install install.success=Install successfully -install.no_forge=No Forge -install.choose_forge=Choose the version you want to install Forge +install.installer.not_installed=%s not Installed install.version=Version -install.mcversion=Game Version +install.installer.version=%s Version install.time=Time install.release_time=Release Time install.type=Type -install.please_refresh=If you want to install something please click "Refresh" button. - crash.launcher=Launcher has crashed! crash.minecraft=Minecraft has crashed! login.choose_charactor=Please choose the character you want -login.no_charactor=No character in this account. -login.your_password=Your password +account.failed.no_charactor=No character in this account. login.failed=Failed to login login.no_Player007=You have not set a username! -login.wrong_password=Incorrect password or username +account.failed.wrong_password=Incorrect password or username login.invalid_username=Invalid username login.invalid_uuid_and_username=Invalid UUID and username -login.invalid_password=Invalid password -login.invalid_access_token=Invalid Access Token +account.failed.invalid_password=Invalid password +account.failed.invalid_access_token=Invalid Access Token login.changed_client_token=The server response has changed the client token. -login.not_email=The username must be an e-mail. -login.type=Login -login.username=Name +input.email=The username must be an e-mail. +account.methods=Login +account.username=Name login.account=Email -login.invalid_token=Please log out and re-input your password to log in. +account.failed.invalid_token=Please log out and re-input your password to log in. login.no_valid_character=No valid character, please visit skinme.cc and create your own character. -proxy.username=Account -proxy.password=Password -proxy.host=Host -proxy.port=Port +launcher_settings.proxy.username=Account +launcher_settings.proxy.password=Password +launcher_settings.proxy.host=Host +launcher_settings.proxy.port=Port -login.failed.connect_authentication_server=Cannot connect the authentication server. Check your network. +account.failed.connect_authentication_server=Cannot connect the authentication server. Check your network. -login.profile.not_logged_in=You are not logged in, you can't modify the profile! -login.profile.selected=Can't modify the profile, logout and go retry. +account.methods.yggdrasil=Mojang +account.methods.offline=Offline +account.methods.no_method=No login method -login.methods.yggdrasil=Mojang -login.methods.offline=Offline -login.methods.no_method=No login method - -log.playername_null=The player name is empty. - -minecraft.no_selected_version=No selected Minecraft version minecraft.wrong_path=Wrong Minecraft path, the launcher could not find the path. operation.stopped=The operation was aborted. @@ -165,7 +136,7 @@ button.no=No ui.label.version=Version ui.label.password=Password -ui.label.profile=Profile +profile=Profile ui.message.first_load=Please enter your name. ui.message.enter_password=Please enter your password. @@ -184,8 +155,7 @@ ui.label.failed_set=Failed to set: download=Download download.mojang=Mojang download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/) -download.rapid_data=RapidData (https://www.rapiddata.org/) -download.not_200=Failed to download, the response code +download.not_200=Failed to download, the response code is %s. download.failed=Failed to download download.successfully=Downloaded successfully download.source=Download Source @@ -209,14 +179,14 @@ settings.tabs.installers=Installers settings.tabs.assets_downloads=Assets settings=Settings -settings.explore=Explore -settings.manage=Manage +game_settings.exploration=Explore +game_settings.management=Manage settings.cannot_remove_default_config=Cannot remove the default configution. settings.max_memory=Max Memory/MB -settings.java_dir=Java Dir -settings.game_directory=Game Directory -settings.dimension=Game Window Dimension -settings.fullscreen=Fullscreen +game_settings.java_directory=Java Dir +profile.instance_directory=Game Directory +game_settings.dimension=Game Window Dimension +game_settings.fullscreen=Fullscreen settings.update_version=Update version json. settings.run_directory=Run Directory(Version Isolation) settings.physical_memory=Physical Memory Size @@ -286,10 +256,9 @@ mods.default_information=Please ensure that you have installed Forge or LiteLoad advancedsettings=Advanced advancedsettings.launcher_visible=Launcher Visibility -advancedsettings.debug_mode=Debug Mode advancedsettings.java_permanent_generation_space=PermGen Space/MB advancedsettings.jvm_args=Java VM Arguments -advancedsettings.Minecraft_arguments=Minecraft Arguments +advancedsettings.minecraft_arguments=Minecraft Arguments advancedsettings.launcher_visibility.close=Close the launcher when the game launched. advancedsettings.launcher_visibility.hide=Hide the launcher when the game launched. advancedsettings.launcher_visibility.keep=Keep the launcher visible. @@ -302,7 +271,6 @@ advancedsettings.java_args_default=Default java args: -XX:+UseConcMarkSweepGC -X advancedsettings.wrapper_launcher=Wrapper Launcher(i.e. optirun...) advancedsettings.precall_command=Precalling command(will be executed before game launching) advancedsettings.server_ip=Server Host -advancedsettings.cancel_wrapper_launcher=Cancel Wrapper Launcher advancedsettings.dont_check_game_completeness=Don't check game completeness mainwindow.show_log=Show Logs @@ -313,7 +281,7 @@ mainwindow.make_launch_succeed=Finished script creation. mainwindow.no_version=No version found. Switch to Game Downloads Tab? launcher.about=About Author\nMinecraft Forum ID: klkl6523\nCopyright (c) 2013 huangyuhui\nOpened source under GPL v3 license:http://github.com/huanghongxun/HMCL/\nThis software used project Gson which is under Apache License 2.0, thanks contributors. -launcher.download_source=Download Source +launcher_settings.download_source=Download Source launcher.background_location=Background Location launcher.common_location=Common Location launcher.exit_failed=Failed to shutdown. @@ -322,26 +290,23 @@ launcher.versions_json_not_matched_cannot_auto_completion=The version %s lost ve launcher.versions_json_not_formatted=The version information of %s is malformed! Redownload it? launcher.choose_bgpath=Choose background path. launcher.choose_commonpath=Choose common path. -launcher.commpath_tooltip=This app will save all game libraries and assets here unless there are existant files in game folder. +launcher_settings.common_path.tooltip=This app will save all game libraries and assets here unless there are existant files in game folder. launcher.background_tooltip=The laucher uses a default background.\nIf you use custom background.png, link it and it will be used.\nIf there is "bg" subdirectory, this app will chooses one picture in "bgskin" randomly.\nIf you set the background setting, this app will use it. launcher.update_launcher=Check for update -launcher.enable_shadow=Enable Window Shadow -launcher.enable_animation=Enable Animation -launcher.enable_blur=Enable Blur -launcher.theme=Theme -launcher.proxy=Proxy -launcher.decorated=Enable system window border(in order to fix the problem that the ui become all gray in Linux OS) +launcher_settings.theme=Theme +launcher_settings.proxy=Proxy +launcher_settings.decorated=Enable system window border(in order to fix the problem that the ui become all gray in Linux OS) launcher.modpack=Documentations for modpacks. -launcher.lang=Language +launcher_settings.language=Language launcher.restart=Options will be in operations only if restart this app. -launcher.log_font=Log Font +launcher_settings.log_font=Log Font launcher.tab.general=General launcher.tab.ui=UI launcher.tab.about=About -launcher.title.game=Games -launcher.title.main=Home -launcher.title.launcher=Launcher +game_settings=Games +main_page=Home +launcher_settings=Launcher versions.release=Release versions.snapshot=Snapshot @@ -360,18 +325,10 @@ advice.os64butjdk32=Your OS is 64-Bit but your Java is 32-Bit. The 64-Bit Java i advice.java8=Java 8 is suggested, which can make game run more fluently. And many mods and Minecraft 1.12 and newer versions requires Java 8. assets.download_all=Download Assets Files -assets.not_refreshed=The assets list is not refreshed, please refresh it once. assets.failed=Failed to get the list, try again. -assets.list.1_7_3_after=1.7.3 And higher -assets.list.1_6=1.6(BMCLAPI) -assets.unkown_type_select_one=Unknown game version: %s, please choose an asset type. -assets.type=Asset Type assets.download=Download Assets -assets.no_assets=Assets are not complete, complete them? assets.failed_download=Failed to download assets, may cause no sounds and language files. -gamedownload.not_refreshed=The game list is not refreshed, please refresh it once. - taskwindow.title=Tasks taskwindow.single_progress=Single progress taskwindow.total_progress=Total progress @@ -401,12 +358,6 @@ logwindow.search=Search selector.choose=Choose -serverlistview.title=Choose a server -serverlistview.name=Name -serverlistview.type=Type -serverlistview.version=Version -serverlistview.info=Information - minecraft.invalid=Invalid minecraft.invalid_jar=Invalid Jar minecraft.not_a_file=Not a file @@ -439,3 +390,20 @@ wizard.steps=Steps lang=English lang.default=Belong to OS language. +account.create= +input.not_empty=Input Requrired! +account=Accounts +install.new_game=Install a New Game +install.new_game.current_game_version=Current Game Version +install.installer.choose=Choose a %s version +install.installer.forge=Forge +install.installer.optifine=OptiFine +install.installer.liteloader=LiteLoader +install.installer.failed=Unable to install %s. +install.new_game.already_exists=This version has already been existing. +install.installer.game=Game +install.modpack=Install a modpack (CurseForge supported) +install.select=Select an operation +install=Install New Game +settings.icon=Game Icon +launcher=Launcher diff --git a/HMCL/src/main/resources/assets/lang/I18N_ru.properties b/HMCL/src/main/resources/assets/lang/I18N_ru.properties deleted file mode 100644 index 16aaa89e8..000000000 --- a/HMCL/src/main/resources/assets/lang/I18N_ru.properties +++ /dev/null @@ -1,440 +0,0 @@ -# Hello Minecraft! Launcher. -# Copyright (C) 2013 huangyuhui -# -# 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 -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see {http://www.gnu.org/licenses/}. -# -#author: malyha2014@yandex.ru -launch.failed=Не удалось запустить. -launch.failed_creating_process=Не удалось создать процесс, возможно, ваш путь java - указан не верно, пожалуйста, измените свой путь java. -launch.failed_sh_permission=Не удалось добавить разрешение на запуск скрипта. -launch.failed_packing_jar=Не удалось упаковать в jar. -launch.unsupported_launcher_version=Извините, Launcher не может запустить minecraft, но он повторяет попытку запуска. -launch.too_big_memory_alloc_64bit=Вы выделили слишком много памяти для 32-разрядной ОС java игра скорее всего приведет к крашу. Максимальный объем памяти 1024МБ. Лаунчер будет пытаться запустить его. -launch.too_big_memory_alloc_free_space_too_low=Вы выделили слишком много памяти, потому что размер физической памяти составляет %dMB, ваша игра скорее всего приведет к крашу. Лаунчер будет пытаться запустить его. -launch.cannot_create_jvm=Мы видим, что он не может создать java виртуальная машина. В Java аргументах могут возникнуть проблемы. Вы можете включить режим No args в настройках. -launch.circular_dependency_versions=Нашли круговой версии зависимостей, пожалуйста, проверьте, если ваш клиент был изменен. -launch.not_finished_downloading_libraries=Не закончив загрузку библиотек, продолжить запуск игры? -launch.not_finished_decompressing_natives=Не закончил распаковку библиотек, продолжить запуск игры? -launch.wrong_javadir=Неправильные каталоги java, он будет сброшен по умолчанию каталог java. -launch.exited_abnormally=Игра завершилась крашем, пожалуйста, посетите журнал, или попросить кого-то о помощи. - -launch.state.logging_in=Вход -launch.state.generating_launching_codes=Генерирования стартового кода -launch.state.downloading_libraries=Загрузки зависимостей -launch.state.decompressing_natives=Туземцев распаковки -launch.state.waiting_launching=Ждем запуска игры - -install.no_version=Версия не найдена. -install.no_version_if_intall=Нужная версия не найдена, вы хотите, чтобы автоматически установилась версия? -install.not_refreshed=Список установки не обновляется. -install.download_list=Скачать список - -install.liteloader.get_list=Получить список LiteLoader -install.liteloader.install=Установить LiteLoader - -install.forge.get_list=Получить список Forge -install.forge.install=Установить Forge -install.forge.get_changelogs=Получить список изменений Forge - -install.optifine.install=Установить OptiFine -install.optifine.get_list=Получить OptiFine лист -install.optifine.get_download_link=Получить скачивание OptiFine - -install.failed_forge=Не удалось установить 'Forge'. -install.failed_optifine=Не удалось установить 'OptiFine'. -install.failed_liteloader=Не удалось установить 'LiteLoader'. -install.failed_download_forge=Не удалось скачать 'Forge'. -install.failed_download_optifine=Не удалось скачать 'OptiFine'. -install.failed=Не удалось установить -install.success=Успешная установка -install.no_forge=Нету Forge -install.choose_forge=Выберите версию, которую вы хотите установить Forge -install.version=Версия -install.mcversion=Версия игры -install.time=Время -install.release_time=Время выпуска -install.type=Тип -install.please_refresh=Если вы хотите установить что-то, пожалуйста, нажмите кнопку "Обновить". - -crash.launcher=Лаунчер крашнулся! -crash.minecraft=Minecraft крашнулся! - -login.choose_charactor=Пожалуйста, выберите символ, который вы хотите -login.no_charactor=Нет персонажа на этом аккаунте. -login.your_password=Пароль -login.failed=Не удалось войти -login.no_Player007=Не задано имя пользователя! -login.wrong_password=Неправильный пароль или имя пользователя -login.invalid_username=Неверное имя пользователя -login.invalid_uuid_and_username=Недопустимый UUID и имя пользователя -login.invalid_password=Неверный пароль -login.invalid_access_token=Недопустимый маркер доступа -login.changed_client_token=Ответ сервера был изменен маркер клиента. -login.not_email=Имя пользователя-это адрес электронной почты. -login.type=Логин -login.username=Ник -login.account=Почта -login.invalid_token=Пожалуйста, выйдите и повторно введите пароль для входа в систему. -login.no_valid_character=Не допустимый характер, пожалуйста, посетите skinme.cc и создайте своего собственного персонажа. - -proxy.username=Аккаунт -proxy.password=Пароль -proxy.host=Хост -proxy.port=Порт - -login.failed.connect_authentication_server=Не удается подключиться к серверу авторизации. Проверьте вашу сеть. - -login.profile.not_logged_in=Вы не вошли в систему, Вы не можете изменить профиль! -login.profile.selected=Не могу изменить профиль, выйдите и повторите. - -login.methods.yggdrasil=Email и пароль -login.methods.offline=Введите ваш ник -login.methods.no_method=Нет способа входа - -log.playername_null=Ник игрока пусто. - -minecraft.no_selected_version=Не выбрана Minecraft версия -minecraft.wrong_path=Неправильный путь Minecraft, лаунчер не может найти путь. - -operation.stopped=Операция была прервана. -operation.confirm_stop=Прекращать операции? - -ui.login.password=Пароль -ui.more=Больше - -crash.advice.UnsupportedClassVersionError=Может быть, ваша версия java старая, попробуйте обновить java. -crash.advice.ConcurrentModificationException=Может быть, ваш java новее, чем 1.8.0_11, вы можете понизить до версии Java 7. -crash.advice.ClassNotFoundException=Minecraft или моды, являются неполными. Повторите, если есть какие-то библиотеки, которые не скачали или обновить игру и модов! Или вы можете попробовать настройки игры -> Управление (версии) -> библиотека удалить файлы, чтобы решить проблему. -crash.advice.NoSuchFieldError=Minecraft или моды, являются неполными. Повторите, если есть какие-то библиотеки, которые не скачали или обновить игру и моды! -crash.advice.LWJGLException=Может быть, ваш видео драйвер не работает, пожалуйста, обновите ваш видео драйвер. -crash.advice.SecurityException=Может быть, вы изменили minecraft.jar но не удалили META-INF. -crash.advice.OutOfMemoryError=Максимум памяти для JVM слишком мал, пожалуйста, измените его. -crash.advice.otherwise=Может быть моды вызвали проблемы. - -crash.advice.OpenGL=Может быть драйвера вызвали проблемы. -crash.advice.no_lwjgl=Может быть драйвера вызвали проблемы. - -crash.advice.no=Никакие советы. - -crash.user_fault=Вашей операционной системы или среды Java не может быть установлен неправильно, в результате сбой этой программы, пожалуйста, проверьте вашу среду Java или компьютер! -crash.headless=Если ваша ОС Linux может использовать Oracle версии JDK вместо OpenJDK, то или добавить "-Djava.awt.headless=false" аргумент JVM, или проверить, если ваш сервер работает нормально. -crash.NoClassDefFound=Пожалуйста, проверьте "Launcher" программное обеспечение в комплекте. - -crash.error=Minecraft крашнулся. -crash.main_class_not_found=Главный Класс не найден, может быть ваш МК был нарушен. -crash.class_path_wrong=Может запустить скрипт неправильный. - -ui.label.newProfileWindow.new_profile_name=Новое Имя профиля: -ui.label.newProfileWindow.copy_from=Скопировать из: -ui.newProfileWindow.title=Новый конфиг - -ui.button.ok=OK -ui.button.refresh=Обновить -ui.button.run=Войти в игру -ui.button.settings=Настройки -ui.button.about=About -ui.button.others=Другие -ui.button.logout=Выйти -ui.button.download=Скачать -ui.button.retry=Повторить -ui.button.delete=Удалить -ui.button.install=Установить -ui.button.info=Информация -ui.button.save=Сохранить -ui.button.copy=Скопировать -ui.button.clear=Очистить -ui.button.close=Закрыть -ui.button.explore=Выбрать -ui.button.test=Тест -ui.button.preview=Показать -button.cancel=Отменить -button.ok=OK -button.yes=Да -button.no=Нет - -ui.label.version=Версия -ui.label.password=Пароль -ui.label.profile=Профиль - -ui.message.first_load=Пожалуйста, введите ваш ник. -ui.message.enter_password=Пожалуйста, введите Ваш пароль. -ui.message.launching=Запуск... -ui.message.making=Генерация... -ui.message.sure_remove=Не забудьте удалить профиль %s? -ui.message.update_java=Пожалуйста, обновите ваш Java. -ui.message.open_jdk=Мы уже выяснили, что вы начали это приложение, используя OpenJDK, который станет причиной стольких бед для рисования интерфейса. Мы предлагаем Вам вместо того, чтобы с помощью Oracle версии JDK. - -ui.label.settings=Настройки -ui.label.crashing=Launcher крашнулся! -ui.label.crashing_out_dated=Launcher крашнулся! Ваш лаунчер устарел. Обновить его -ui.label.failed_set=Не удалось установить: - -download=Скачать -download.mojang=Mojang -download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/) -download.rapid_data=RapidData (https://www.rapiddata.org/) -download.not_200=Не удалось скачать, код ответа -download.failed=Не удалось скачать -download.successfully=Успешно скачал -download.source=Скачать Исходник - -message.error=Ошибка -message.cannot_open_explorer=Не можете открыть проводник: -message.cancelled=Отменен -message.info=Информация -message.loading=Загрузка... - -folder.game=Директория -folder.mod=Моды -folder.coremod=Ядро -folder.config=Конфигурации -folder.resourcepacks=Ресурс пак -folder.screenshots=Скриншоты -folder.saves=Сохранить - -settings.tabs.game_download=Скачать игру -settings.tabs.installers=Установщик -settings.tabs.assets_downloads=Дополнения - -settings=Настройки -settings.explore=Обзор... -settings.manage=Управлять -settings.cannot_remove_default_config=Не удается удалить конфигурацию по умолчанию. -settings.max_memory=Выделение памяти -settings.java_dir=Путь к Java -settings.game_directory=Директория -settings.dimension=Разрешение -settings.fullscreen=Полноэкранный режим -settings.update_version=Обновление версии в формате json. -settings.run_directory=Выбор каталога -settings.physical_memory=Размер физической памяти -settings.choose_javapath=Выбрать каталог Java. -settings.default=По умолчанию -settings.custom=Выбрать -settings.choose_gamedir=Выбрать директорию игры -settings.failed_load=Не смог файл загрузить настройки. Удалить его? -settings.test_game=Тестовая игра - -settings.type.none=Нет версии игры, пожалуйста, откройте раздел скачать игру. -settings.type.global=Нажмите здесь, чтобы перейти в специализированных версий. Сейчас это глобальная настройка. -settings.type.special=Нажмите здесь, чтобы перейти в глобальные настройки. Не это версии специализированных условиях. - -modpack=Мод пак -modpack.choose=Выбрать zip-файл, пакет, который вы хотите импортировать. Если вы хотите обновить пакет, пожалуйста, введите версию вы хотите обновить. -modpack.export_error=Не удалось экспортировать пакет, может быть Формат вашей игровой директории некорректно или не работать с файлами. -modpack.export_finished=Экспорт произведений, готовые. Смотреть -modpack.included_launcher=В пакет входит пусковая установка, вы можете опубликовать его сразу. -modpack.not_included_launcher=Вы можете использовать пакет, нажав кнопку "Импорт произведений". -modpack.enter_name=Введите желаемое имя для этой игры. - -modpack.task.save=Эскпортировать Modpack -modpack.task.install=Импортировать Modpack -modpack.task.install.error=Не удалось установить пакет. Может быть, файлы неправильно, или возникла проблема управления. -modpack.task.install.will=Установить пакет: - -modpack.wizard=Экспорт modpack мастер -modpack.wizard.step.1=Основные варианты -modpack.wizard.step.1.title=Набор основных вариантов modpack. -modpack.wizard.step.initialization.include_launcher=Включить лаунчер -modpack.wizard.step.initialization.exported_version=Экспортируемые версии игры -modpack.wizard.step.initialization.save=Выберите папку для экспорта игровых файлов для -modpack.wizard.step.initialization.warning=Прежде чем сделать modpack, вы должны убедиться, что ваша игра сможет успешно запустить,\nи что ваш minecraft-это релиз, а не снимок.\nа что нельзя добавить модов, которые не позволили раздавать modpack. -modpack.wizard.step.2=Выбор файлов -modpack.wizard.step.2.title=Выберите файлы, которые Вы не хотите положить в modpack. -modpack.wizard.step.3=Описание -modpack.wizard.step.3.title=Опишите ваш modpack. - -modpack.desc=Опишите свою modpack, включая меры предосторожности, changlog, поддерживая уценки(также поддерживает онлайн-картинки). -modpack.incorrect_format.no_json=Формат произведений, является неверным, пакет.json-это отсутствует. -modpack.incorrect_format.no_jar=Формат modpack неправильно, пакет.json не имеет атрибут 'банку' -modpack.cannot_read_version=Не удалось собрать версии игры -modpack.not_a_valid_location=Не является допустимым modpack расположение -modpack.name=Modpack Название -modpack.not_a_valid_name=Не является допустимым modpack название - -modpack.files.servers_dat=Список многопользовательских серверов -modpack.files.saves=Сохраненные игры -modpack.files.mods=Моды -modpack.files.config=Mod конфигурации -modpack.files.liteconfig=Mod конфигурации -modpack.files.resourcepacks=Ресурс(текстур) паки -modpack.files.options_txt=Варианты игры -modpack.files.optionsshaders_txt=Варианты шейдеры -modpack.files.mods.voxelmods=VoxelMods (включая VoxelMap) функции -modpack.files.dumps=NEI отладочный вывод -modpack.files.scripts=MineTweaker конфигурации -modpack.files.blueprints=BuildCraft чертежи - -mods=Моды -mods.choose_mod=Выбрать ваши моды -mods.failed=Не удалось добавить моды -mods.add=Добавить -mods.remove=Удалить -mods.default_information=Пожалуйста, убедитесь, что у вас есть установленный Forge или LiteLoader перед установкой модов!\nВы можете оставить свой mod файл из проводника/Finder и удаление модов с помощью кнопки удалить.\nОтключить мод, оставив флажок снят; выбрать товар, чтобы получить информацию. - -advancedsettings=Расширенный -advancedsettings.launcher_visible=При запуске Minecraft -advancedsettings.debug_mode=Режим отладки -advancedsettings.java_permanent_generation_space=PermGen Space/MB -advancedsettings.jvm_args=Java VM Аргументы -advancedsettings.Minecraft_arguments=Minecraft Аргументы -advancedsettings.launcher_visibility.close=Закрыть лаунчер, если игра запущена. -advancedsettings.launcher_visibility.hide=Скрывать лаунчер, когда игра запущена. -advancedsettings.launcher_visibility.keep=Оставить лаунчер видимым. -advancedsettings.launcher_visibility.hide_reopen=Скрывать лаунчер и повторно открывать, когда выйдите из игры. -advancedsettings.game_dir.default=По умолчанию (.minecraft/) -advancedsettings.game_dir.independent=Независимые (.minecraft/версии/<номер версии>/, за исключением активов,библиотеки) -advancedsettings.no_jvm_args=No Default JVM Args -advancedsettings.no_common=Не использовать общий путь -advancedsettings.java_args_default=Default java args: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -advancedsettings.wrapper_launcher=Лаунчер-оболочку(как и optirun...) -advancedsettings.precall_command=Команда Precalling(будут выполняться до запуска игры) -advancedsettings.server_ip=Сервера -advancedsettings.cancel_wrapper_launcher=Отмена запуска оболочки -advancedsettings.dont_check_game_completeness=Не проверить полноту игры - -mainwindow.show_log=Показать Логи -mainwindow.make_launch_script=Сделать запуск скрипта. -mainwindow.make_launch_script_failed=Не удалось сделать скрипт. -mainwindow.enter_script_name=Введите имя скрипта. -mainwindow.make_launch_succeed=Закончил создание скрипта. -mainwindow.no_version=Версии Minecraft не найдены. Переключить на вкладку загрузки версии для игры в Minecraft? - -launcher.about=Об Авторе\nМайнкрафт форум ID: klkl6523\nCopyright (c) 2013 huangyuhui\nOpened source under GPL v3 license:http://github.com/huanghongxun/HMCL/\nThis software used project Gson which is under Apache License 2.0, thanks contributors. -launcher.download_source=Скачать Исходники -launcher.background_location=Фон Расположение -launcher.common_location=Общее Расположение -launcher.exit_failed=Не удалось закрыть. -launcher.versions_json_not_matched=Версия %s уродлив! Есть в формате json:%s в этой версии. Хотите ли вы решить эту проблему? -launcher.versions_json_not_matched_cannot_auto_completion=Версия %s потерянной информации версии файла, удалить его? -launcher.versions_json_not_formatted=Сведения о версии %s уродлив! Повторная загрузка? -launcher.choose_bgpath=Выберите фоновый пути. -launcher.choose_commonpath=Выбрать общий путь. -launcher.commpath_tooltip=Это приложение будет сохранять все игровые библиотеки здесь, если там нет файлов в папке с игрой. -launcher.background_tooltip=Лаучер использует по умолчанию фон.\nЕсли вы используете пользовательский фон.PNG, ссылку и оно будет использоваться.\nЕсли есть "БГ" подкаталог, это приложение выбирает одну картинку в "bgskin" случайно.\nЕсли вы установите параметр фон, это приложение будет использовать его. -launcher.update_launcher=Проверить обновления -launcher.enable_shadow=Включить тень окна -launcher.enable_animation=Включить анимацию -launcher.enable_blur=Включить размытие -launcher.theme=Тема -launcher.proxy=Прокси -launcher.decorated=Включить границы окна(для того, чтобы исправить проблему, если в пользовательском интерфейсе становится все серое в ОС Linux) -launcher.modpack=Документация по modpacks. -launcher.lang=Язык (Language) -launcher.restart=Варианты будут в операции, только если перезапустить это приложение. -launcher.log_font=Шрифт лога -launcher.tab.general=Общие -launcher.tab.ui=Интерфейс -launcher.tab.about=Версия - -launcher.title.game=Игры -launcher.title.main=Главная -launcher.title.launcher=Лаунчер - -versions.release=Release -versions.snapshot=Snapshot -versions.old_beta=Beta -versions.old_alpha=Old Alpha - -versions.manage.rename=Переименовать эту версию -versions.manage.rename.message=Пожалуйста, введите новый ник -versions.manage.remove=Удалить версию -versions.manage.remove.confirm=Не забудьте удалить версию -versions.manage.redownload_json=Повторная загрузка конфигурации в Minecraft(minecraft.json) -versions.manage.redownload_assets_index=Перекачать библиотеки -versions.manage.remove_libraries=Библиотека удалить файлы - -advice.os64butjdk32=Ваша ОС 64-битная, но ваш java является 32-разрядной. Вам рекомендуется 64-разрядная версия java. -advice.java8=Java 8 представляет предположил, что может сделать игру работать более производительной. Многие моды и Minecraft 1.12 и новые версии требуют java 8. - -assets.download_all=Скачать Файлы -assets.not_refreshed=Список библиотек не обновляется, пожалуйста, обновите его один раз. -assets.failed=Не удалось получить список, попробуйте еще раз. -assets.list.1_7_3_after=1.7.3 и выше -assets.list.1_6=1.6(BMCLAPI) -assets.unkown_type_select_one=Неизвестная версия игры: %s, пожалуйста, выберите тип библиотеки. -assets.type=Тип библиолтек -assets.download=Скачать библиотеки -assets.no_assets=Библиотеки не завершены, завершить их? -assets.failed_download=Не удалось загрузить библиотеки из-за этого может не быть никаких звуков и языковых файлов. - -gamedownload.not_refreshed=Список игр не обновляется, пожалуйста, обновите его один раз. - -taskwindow.title=Задачи -taskwindow.single_progress=Один прогресс -taskwindow.total_progress=Общий прогресс -taskwindow.cancel=Отменить -taskwindow.no_more_instance=Может быть, вы открыли больше чем одно окно задач, не открыть его снова! -taskwindow.file_name=Задача -taskwindow.download_progress=%. - -setupwindow.include_minecraft=Импорт игры -setupwindow.find_in_configurations=Завершения импорта. Вы можете найти его в панели выбора конфигурации. -setupwindow.give_a_name=Дайте название новой игры. -setupwindow.new=Новое -setupwindow.no_empty_name=Название версии не может быть пустым. -setupwindow.clean=Чистые файлы игры - -update.no_browser=Не может открыть любым браузером. Ссылка была скопирована в буфер обмена. Вставьте его в адресную строку браузера обновить. -update.should_open_link=Вы готовы обновить лаунчер? -update.newest_version=Самая новая версия: -update.failed=Не удалось проверить наличие обновлений. -update.found=(Нашел Обновление!) - -logwindow.terminate_game=Завершить игру -logwindow.title=Лог -logwindow.contact=Свяжитесь с нами -logwindow.show_lines=Показать строки -logwindow.search=Поиск - -selector.choose=Выбрать - -serverlistview.title=Выбрать сервер -serverlistview.name=Название -serverlistview.type=Тип -serverlistview.version=Версия -serverlistview.info=Информация - -minecraft.invalid=Invalid -minecraft.invalid_jar=Invalid Jar -minecraft.not_a_file=Not a file -minecraft.not_found=Not found -minecraft.not_readable=Not readable -minecraft.modified=(Modified!) - -color.red=Красный -color.blue=Голубой -color.green=Зеленый -color.orange=Оранжевый -color.dark_blue=Темно-Синий -color.purple=Фиолетовый - -wizard.next_>=Следующий > -wizard.next_mnemonic=N -wizard.<_prev=< Предыдущий -wizard.prev_mnemonic=P -wizard.finish=Завершить -wizard.finish_mnemonic=F -wizard.cancel=Отменить -wizard.cancel_mnemonic=C -wizard.help=Помощь -wizard.help_mnemonic=H -wizard.close=Закрыть -wizard.close_mnemonic=C -wizard.summary=Summary -wizard.failed=Failed -wizard.steps=Steps - -lang=Русский -lang.default=Выбран язык операционной системы. \ No newline at end of file diff --git a/HMCL/src/main/resources/assets/lang/I18N_vi.properties b/HMCL/src/main/resources/assets/lang/I18N_vi.properties deleted file mode 100644 index 477e9a4a3..000000000 --- a/HMCL/src/main/resources/assets/lang/I18N_vi.properties +++ /dev/null @@ -1,438 +0,0 @@ -# Hello Minecraft! Launcher. -# Copyright (C) 2013 huangyuhui -# -# 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 -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see {http://www.gnu.org/licenses/}. -# -#author: LADBOSSHOSS -launch.failed=Mở minecraft không thành công. -launch.failed_creating_process=Tạo tiến trình chạy thất bại, có thể nơi bạn cài java đã bị sai, vui lòng hãy chỉnh sửa lại đường dẫn cài java. -launch.failed_sh_permission=Thêm quyền vào đoạn mã chạy launcher thất bại. -launch.failed_packing_jar=Đóng gói file jar thất bại -launch.unsupported_launcher_version=Xin lỗi, launcher không mở được minecraft, nhưng launcher sẽ cố gắng để chạy. -launch.too_big_memory_alloc_64bit=Bạn đã cho minecraft dùng quá nhiều RAM, vì máy bạn dùng 32-Bit Java Runtime Environment, Minecraft có thể bị crash. Mức RAM cho minecraft dùng cao nhất là 1024MB. Launcher sẽ thử để chạy mnecraft -launch.too_big_memory_alloc_free_space_too_low=Bạn đã cho minecraft dùng quá nhiều RAM, vì ram của bạn chỉ có %dMB, minecraft có thể bị crash. Launcher sẽ thử để chạy -launch.cannot_create_jvm=Launcher không tạo được máy ảo java để chạy minecraft. Java argument có thể có vấn đề, bạn có thể bật chế độ no args trong cài đặt -launch.circular_dependency_versions=Đã tìm thấy phiên bản minecraft không phù hợp, xin hãy xem phiên bản minecraft đã được chỉnh sửa hay không. -launch.not_finished_downloading_libraries=Không download được libraries cho minecraft, có tiếp tục mở game không? -launch.not_finished_decompressing_natives=Không giải nén được libraries cho minecraft, có tiếp tục mở game không? -launch.wrong_javadir=Đường dẫn cài java bị sai, launcher sẽ reset lại đường dẫn java đúng -launch.exited_abnormally=Minecraft đã bị thoát bất thường, hãy xem file log, hoặc nói với người khác giúp. - -launch.state.logging_in=Đang đăng nhập... -launch.state.generating_launching_codes=Đang tạo code chạy minecraft -launch.state.downloading_libraries=Downloading... -launch.state.decompressing_natives=Giải nén... -launch.state.waiting_launching=Waiting for game launching - -install.no_version=Không tìm thấy phiên bản minecraft. -install.no_version_if_intall=Phiên bản cần thiết không thấy, có nên cài đặt phiên bản tự động không? -install.not_refreshed=Danh sách cài chưa được làm mới -install.download_list=Danh sách download - -install.liteloader.get_list=Lấy LiteLoader List -install.liteloader.install=Cài LiteLoader - -install.forge.get_list=Get Forge List -install.forge.install=Cài Forge -install.forge.get_changelogs=Lấy Forge Changelogs - -install.optifine.install=Cài OptiFine -install.optifine.get_list=Lấy OptiFine Download List -install.optifine.get_download_link=Lấy download link của Optifine - -install.failed_forge=Không cài được Forge -install.failed_optifine=Không cài được Optifine -install.failed_liteloader=Không cài được LiteLoader -install.failed_download_forge=Failed to Download Forge -install.failed_download_optifine=Failed to Download OptiFine -install.failed=Không cài được -install.success=Cài đặt thành công -install.no_forge=No Forge -install.choose_forge=Chọn phiên bản bạn muốn cài Forge -install.version=Phiên bản -install.mcversion=Game Version -install.time=Time -install.release_time=Thời gian phát hành -install.type=Type -install.please_refresh=Nếu bạn muốn cài một thứ gì đó, hãy ấn nút "Tải lại". - -crash.launcher=Launcher bị crash rồi! -crash.minecraft=Minecraft bị crash rồi! - -login.choose_charactor=Xin hãy chọn nhân vật bạn muốn -login.no_charactor=Không có nhân vật trong tài khoản này. -login.your_password=Mật khẩu của bạn -login.failed=Không đăng nhập được -login.no_Player007=You have not set username! -login.wrong_password=Mật khẩu hoặc username đã sai. -login.invalid_username=Username không đúng -login.invalid_uuid_and_username=UUID và username không đúng -login.invalid_password=Mật khẩu không đúng -login.invalid_access_token=Access Token bị sai -login.changed_client_token=Server đã thay đổi client token. -login.not_email=Username phải là email -login.type=Login -login.username=Username: -login.account=Email: -login.invalid_token=Hãy đăng xuất và đăng nhập lại. -login.no_valid_character=Không có nhân vật hợp lệ, hãy vào trang web skinme.cc và tạo một nhân vật cho bạn. - -proxy.username=Tài khoản -proxy.password=Mật khẩu -proxy.host=Host -proxy.port=Số cổng - -login.failed.connect_authentication_server=Không thể kết nối đến máy chủ xác thực, hãy xem lại kết nối mạng của bạn - -login.profile.not_logged_in=Không đăng nhập vào được và không thể chính sửa cấu hình. -login.profile.selected=Không chỉnh sửa được cấu hình, bạn phải đăng xuất ra rồi làm lại. - -login.methods.yggdrasil=Mojang -login.methods.offline=Offline -login.methods.no_method=Không có chế độ nào - -log.playername_null=Tên của người chơi trống. - -minecraft.no_selected_version=Bạn chưa chọn phiên bản minecraft! -minecraft.wrong_path=Đường dẫn minecraft bị sai, launcher không tìm thấy được đường dẫn - -operation.stopped=Quá trình đã được dừng lại. -operation.confirm_stop=Dừng lại quá trình không? - -ui.login.password=Mật khẩu -ui.more=Xem thêm - -crash.advice.UnsupportedClassVersionError=Phiên bản java của bạn quá cũ, hãy thử cập nhật phiên bản java -crash.advice.ConcurrentModificationException=Có thể phiên bản java của bạn mới hơn phiên bản 1.8.0_11, Bạn có thể hạ cấp java xuông phiên bản 7. -crash.advice.ClassNotFoundException=Minecraft hoặc mod chưa được hoàn thành. Hãy thử lại nếu có một số libraries chưa được tải về hoặc cập nhật phiên bản minecraft và mod. Hoặc bạn có thể chọn Game Settings -> Manage (Version) -> Xóa libraries để sửa lỗi. -crash.advice.NoSuchFieldError=Minecraft hoặc mod chưa được hoàn thành. Hãy thử lại nếu có một số libraries chưa được tải về hoặc cập nhật phiên bản minecraft và mod. -crash.advice.LWJGLException=Có thể video driver của bạn không hoạt động tốt cho lắm, hãy thử cập nhật video driver của bạn. -crash.advice.SecurityException=Có thể bạn đã chỉnh sửa file minecraft.jar nhưng bạn chưa xóa file META-INF -crash.advice.OutOfMemoryError=Lượng RAM cao nhất của máy áo java quá nhỏ, hãy chỉnh sửa nó. -crash.advice.otherwise=Có thể mods đã làm ra lỗi. -crash.advice.OpenGL=Có thể drivers đã làm ra lỗi -crash.advice.no_lwjgl=Có thể drivers đã làm ra lỗi -crash.advice.no=Không có lời khuyên. - -crash.user_fault=Hệ điều hành hoặc java của bạn có thể đã cài đặt không đúng cách dẫn đến sự crash của launcher, hãy cài lại java và xem lại máy tính của bạn! -crash.headless=Nếu hệ điều hành của bạn là Linux, hãy dùng Oracle JDK thay cho OpenJDK, hoặc thêm vào "-Djava.awt.headless=false" vào argument của máy ảo java, hoặc xem nếu Xserver có hoạt động hay không -crash.NoClassDefFound=Hãy kiểm tra phần mềm "HMCL" đã hoàn thành - -crash.error=Minecraft đã bị crash. -crash.main_class_not_found=Class chính của minecraft không tìm thấy, có lẽ phiên bản minecraft đã bị lỗi. -crash.class_path_wrong=Có lẽ đoạn mã chạy launcher đã bị lỗi - -ui.label.newProfileWindow.new_profile_name=Tên cấu hình mới: -ui.label.newProfileWindow.copy_from=Copy từ: -ui.newProfileWindow.title=Cấu hình mới - -ui.button.ok=OK -ui.button.refresh=Tải lại -ui.button.run=Play -ui.button.settings=Cài đặt -ui.button.about=About -ui.button.others=Khác -ui.button.logout=Đăng xuất -ui.button.download=Tải về -ui.button.retry=Thử lại -ui.button.delete=Xóa -ui.button.install=Cài -ui.button.info=Thông tin -ui.button.save=Lưu -ui.button.copy=Copy -ui.button.clear=Xóa -ui.button.close=Đóng -ui.button.explore=Explore -ui.button.test=Test -ui.button.preview=Xem trước -button.cancel=Thoát -button.ok=OK -button.yes=Yes -button.no=No - -ui.label.version=Phiên bản -ui.label.password=Mật khẩu -ui.label.profile=Cấu hình - -ui.message.first_load=Hãy nhập username của bạn vào. -ui.message.enter_password=Hãy nhập mật khẩu của bạn -ui.message.launching=Launching... -ui.message.making=Generating... -ui.message.sure_remove=Bạn có chắc chắn xóa cấu hình %s không? -ui.message.update_java=Hãy cập nhật phiên bản java của bạn. - -ui.label.settings=Cài đặt -ui.label.crashing=HMCL Minecraft Launcher đã bị crash! -ui.label.crashing_out_dated=HL Minecraft Launcher đã bị crash! Và launcher của bạn không phải là phiên bản mới nhất. cập nhật nó đi! -ui.label.failed_set=Failed to set: -ui.message.open_jdk=We have found that you started this application using OpenJDK, which will cause so many troubles drawing the UI. We suggest you using Oracle JDK instead. - -download=Download -download.mojang=Mojang -download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/) -download.rapid_data=RapidData (https://www.rapiddata.org/) -download.not_200=Download không thành công, the response code -download.failed=Download không thành công. -download.successfully=Download thành công. -download.source=Download Source - -message.error=Lỗi -message.cannot_open_explorer=Cannot open explorer: -message.cancelled=Đã thoảt -message.info=Thông tin -message.loading=Loading... - -folder.game=Thư mục minecraft -folder.mod=Mod -folder.coremod=Core Mod -folder.config=Cấu hình -folder.resourcepacks=Resourcepacks -folder.screenshots=Ảnh chụp màn hình -folder.saves=Thế giới - -settings.tabs.game_download=Games -settings.tabs.installers=Trình cài đặt -settings.tabs.assets_downloads=Assets - -settings=Settings -settings.explore=Explore -settings.manage=Manage -settings.cannot_remove_default_config=Không thể xóa cấu hình mặc định -settings.max_memory=RAM cao nhất(MB) -settings.java_dir=Thư mục Java -settings.game_directory=Thư mục minecraft -settings.dimension=Khu vực cửa sổ của game -settings.fullscreen=Toàn màn hình -settings.update_version=Update version json. -settings.run_directory=Run Directory(Version Isolation) -settings.physical_memory=Dung lượgg RAM vật lý -settings.choose_javapath=Chọn thư mục java -settings.default=Mặc định -settings.custom=Tùy chỉnh -settings.choose_gamedir=Chọn thư mục game -settings.failed_load=Đọc file cấu hình thất bại. Xóa nó không? -settings.test_game=Chạy thử game - -settings.type.none=No version here, please turn to game download tab. -settings.type.global=Click here to switch to version specialized setting. Now it is global setting. -settings.type.special=Click here to switch to global setting. Not it is version specialized setting. - -modpack=Mod pack -modpack.choose=Chọn modpack zip file mà bạn muốn nhập vào. Nếu bạn muốn cập nhật phiên bản của modpack, Hãy nhập vào phiên bản bạn muốn cập nhật. -modpack.export_error=Xuất modpack ra thất bại, có thể định dạng của thư mục chứa dữ liệu bị sai hoặc không thể quản lý file. -modpack.export_finished=Xuất modpack ra thành công. Xem -modpack.included_launcher=Modpack đã được tích hợp trong launcher, Bạn có thể publish nó. -modpack.not_included_launcher=Dùng nút "Cài Modpack" để cài modpack. -modpack.enter_name=Hãy cho một cái tên mà bạn thích. - -modpack.task.save=Xuất Modpack -modpack.task.install=Cài Modpack -modpack.task.install.error=Cài modpack không thành công, có lẽ file modpack không đúng hoặc là không thể quản lý file -modpack.task.install.will=Launcher sẽ cài modpack: - -modpack.wizard=Công cụ xuất modpack -modpack.wizard.step.1=Tùy chọn cơ bản -modpack.wizard.step.1.title=Chọn các tùy chọn cơ bản cho modpack. -modpack.wizard.step.initialization.include_launcher=Include the launcher -modpack.wizard.step.initialization.exported_version=Phiên bản đã được xuất -modpack.wizard.step.initialization.save=Chọn một thư mục mà bạn muốn xuất game data -modpack.wizard.step.initialization.warning=Trước khi tạo modpack, bạn phải chắc chắn rằng minecraft có thể chạy,\nvà phiên bản minecraft là chính thức, không phải là snapshot.\nvà nó không cho thêm mods mà không có quyền để tạo modpack. -modpack.wizard.step.2=Chọn file -modpack.wizard.step.2.title=Chọn file bạn không muốn thêm vào modpack -modpack.wizard.step.3=Miêu tả -modpack.wizard.step.3.title=Miêu tả modpack của bạn. - -modpack.desc=Miêu tả modpack của bạn, bao gồm đề phòng, sự thay đổi, dấu gạch xuống(và một số hình ảnh). -modpack.incorrect_format.no_json=Định dạng của modpack không đúng, file pack.json bị thiếu -modpack.incorrect_format.no_jar=Định dạng của modpack không đúng, file pack.json không có đặc tính jar -modpack.cannot_read_version=Lấy phiên bản của minecraft thất bại -modpack.not_a_valid_location=Nơi chứa modpack không đúng -modpack.name=Tên của modpack -modpack.not_a_valid_name=Tên của modpack không đúng - -modpack.files.servers_dat=Danh sách server -modpack.files.saves=Thư mục chứa dữ liệu thế giới -modpack.files.mods=Mods -modpack.files.config=Cấu hình của mod -modpack.files.liteconfig=Cấu hình của LiteLoader -modpack.files.resourcepacks=Resource(Texutre) packs -modpack.files.options_txt=Tùy chọn của game -modpack.files.optionsshaders_txt=Tùy chọn của shaders -modpack.files.mods.voxelmods=Tùy chọn của VoxelMod(tính cả VoxelMap) -modpack.files.dumps=NEI debug output -modpack.files.scripts=Cấu hình của MineTweaker -modpack.files.blueprints=Bản thiết kế cho BuildCraft - -mods=Mods -mods.choose_mod=Chọn mods -mods.failed=Tải mods thất bại -mods.add=Thêm -mods.remove=Xóa -mods.default_information=Bạn hãy chắc chắn rằng bạn đã cài Forge hoặc LiteLoader trước khi cài mods!\nBạn có thể kéo file mods vào trong cửa sổ này để thêm, và xóa mods bằng cách ấn nút xóa.\nTắt mods bằng cách bỏ dấu v ở chỗ hộp kiểm; Chọn một mục để biết thêm thông tin. - -advancedsettings=Nâng cao -advancedsettings.launcher_visible=Sự hiển thị của launcher -advancedsettings.debug_mode=Chế độ gỡ lỗi -advancedsettings.java_permanent_generation_space=Dung lượng PermGen/MB -advancedsettings.jvm_args=Arguments của máy ảo java -advancedsettings.Minecraft_arguments=Arguments của minecraft -advancedsettings.launcher_visibility.close=Đóng launcher sau khi minecraft được mở. -advancedsettings.launcher_visibility.hide=Ẩn launcher sau khi minecraft được mở. -advancedsettings.launcher_visibility.keep=Để cho launcher hiển thị. -advancedsettings.launcher_visibility.hide_reopen=Hide the launcher and re-open when game closes. -advancedsettings.game_dir.default=Mặc định (.minecraft/) -advancedsettings.game_dir.independent=Independent (.minecraft/versions//, trừ thư mục assets,libraries) -advancedsettings.no_jvm_args=Không có arguments mặc định cho máy ảo java -advancedsettings.no_common=Not using common path -advancedsettings.java_args_default=Java arguments mặc định: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -advancedsettings.wrapper_launcher=Wrapper Launcher(dạng như optirun...) -advancedsettings.precall_command=Câu lệnh được chạy trước khi game mở -advancedsettings.server_ip=Máy chủ -advancedsettings.cancel_wrapper_launcher=Hủy bỏ Wrapper Launcher -advancedsettings.dont_check_game_completeness=Không kiểm tra game có đầy đủ không. - -mainwindow.show_log=Xem logs -mainwindow.make_launch_script=Tạo đoạn mã launching -mainwindow.make_launch_script_failed=Tạo đoạn mã thất bại -mainwindow.enter_script_name=Nhập tên của đoạn mã. -mainwindow.make_launch_succeed=Đã tạo đoạn mã. -mainwindow.no_version=Không có phiên bản minecraft nào được tìm thấy. Chuyển sang tab Game Download? - -launcher.about=Về tác giả\nMinecraft Forum ID: klkl6523\nCopyright (c) 2013 huangyuhui\nhttp://github.com/huanghongxun/HMCL/\nPhần mềm này dùng project Gson, cảm ơn người đóng góp. -launcher.download_source=Download Source -launcher.background_location=Background Location -launcher.common_location=Common Location -launcher.exit_failed=Tắt launcher thất bại. -launcher.versions_json_not_matched=The version %s is malformed! There are a json:%s in this version. Do you want to fix this problem? -launcher.versions_json_not_matched_cannot_auto_completion=The version %s lost version information file, delete it? -launcher.versions_json_not_formatted=The version information of %s is malformed! Redownload it? -launcher.choose_bgpath=Choose background path. -launcher.choose_commonpath=Choose common path. -launcher.commpath_tooltip=This app will save all game libraries and assets here unless there are existant files in game folder. -launcher.background_tooltip=This app uses the default background at first.\nIf there is background.png in the directory, it will be used.\nIf there is "bg" subdirectory, this app will chooses one picture in "bgskin" randomly.\nIf you set the background setting, this app will use it. -launcher.update_launcher=Check for update -launcher.enable_shadow=Enable Window Shadow -launcher.enable_animation=Enable Animation -launcher.enable_blur=Enable Blur -launcher.theme=Theme -launcher.proxy=Proxy -launcher.decorated=Enable system window border(in order to fix the problem that the ui become all gray in Linux OS) -launcher.modpack=Documentations for modpacks. -launcher.lang=Language -launcher.restart=Options will be in operations only if restart this app. -launcher.log_font=Log Font -launcher.tab.general=General -launcher.tab.ui=UI -launcher.tab.about=About - -launcher.title.game=Phiên bản & Mods -launcher.title.main=HMCL Main -launcher.title.launcher=Launcher - -versions.release=Chính thức -versions.snapshot=Snapshot -versions.old_beta=Beta -versions.old_alpha=Old Alpha - -versions.manage.rename=Đổi tên phiên bản này -versions.manage.rename.message=Nhập tên mới -versions.manage.remove=Xóa phiên bản này -versions.manage.remove.confirm=Bạn có chắc để xóa phiên bản này không? -versions.manage.redownload_json=Download lại cấu hình của minecraft(minecraft.json) -versions.manage.redownload_assets_index=Download lại Assets Index -versions.manage.remove_libraries=Xóa libraries file - -advice.os64butjdk32=Hệ điều hành của bạn là 64-Bit nhưng phiên bản Java của bạn là 32-Bit. Khuyên bạn nên dùng Java 64-Bit. -advice.java8=Java 8 is suggested, which can make game run more fluently. And many mods and Minecraft 1.12 and newer versions requires Java 8. - -assets.download_all=Download file assets -assets.not_refreshed=Danh sách assets chưa được load lại, bạn hãy ấn nút Tải lại. -assets.failed=Lấy danh sách thất bại, hãy thử lại. -assets.list.1_7_3_after=1.7.3 và cao hơn -assets.list.1_6=1.6(BMCLAPI) -assets.unkown_type_select_one=Phiên bản minecraft chưa được biết: %s, hãy chọn một loại asset. -assets.type=Loại asset -assets.download=Download Assets -assets.no_assets=Assets chưa được hoàn thành, hoàn thành nó không? -assets.failed_download=Download asset thất bại, có thể sẽ không có âm thanh và ngôn ngữ. - -gamedownload.not_refreshed=Danh sách phiên bản chưa được load lại, bạn hãy ấn nút Tải lại. - -taskwindow.title=Tasks -taskwindow.single_progress=Single progress -taskwindow.total_progress=Total progress -taskwindow.cancel=Cancel -taskwindow.no_more_instance=Maybe you opened more than one task window, dont open it again! -taskwindow.file_name=Task -taskwindow.download_progress=Pgs. - -setupwindow.include_minecraft=Import game -setupwindow.find_in_configurations=Finished importing. You can find it in the configuration selection bar. -setupwindow.give_a_name=Give a name to the new game. -setupwindow.new=New -setupwindow.no_empty_name=Version name cannot be empty. -setupwindow.clean=Clean game files - -update.no_browser=Không thể mở trình duyệt. Đường link đã được copy vào clipboard. Bạn có thể paste nó vào thanh đường link. -update.should_open_link=Bạn có muốn cập nhật launcher không? -update.newest_version=Phiên bản mới nhất: -update.failed=Kiểm tra cập nhật thất bại. -update.found=(Đã tìm thấy bản cập nhật!) - -logwindow.terminate_game=Tắt Game -logwindow.title=HMCL Error Log (Hãy đăng cái này lên forum!) -logwindow.contact=Contact Us -logwindow.show_lines=Show Lines -logwindow.search=Search - -selector.choose=Chọn - -serverlistview.title=Chọn máy chủ -serverlistview.name=Tên -serverlistview.type=Lọai -serverlistview.version=Phiên bản -serverlistview.info=Thông tin - -minecraft.invalid=Không hợp lệ -minecraft.invalid_jar=File jar không hợp lệ -minecraft.not_a_file=Not a file -minecraft.not_found=Không tìm thấy -minecraft.not_readable=Không đọc được -minecraft.modified=(Đã sửa đổi!) - -color.red=Đỏ -color.blue=Xanh da trời -color.green=Xanh lục -color.orange=Cam -color.dark_blue=Xanh da trời tối -color.purple=Tím - -wizard.next_>=Next > -wizard.next_mnemonic=N -wizard.<_prev=< Prev -wizard.prev_mnemonic=P -wizard.finish=Finish -wizard.finish_mnemonic=F -wizard.cancel=Cancel -wizard.cancel_mnemonic=C -wizard.help=Help -wizard.help_mnemonic=H -wizard.close=Close -wizard.close_mnemonic=C -wizard.summary=Summary -wizard.failed=Failed -wizard.steps=Steps - -lang=Vietnamese -lang.default=Thuộc về ngôn ngữ của hệ điều hành \ No newline at end of file diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties deleted file mode 100644 index 62631e2d0..000000000 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ /dev/null @@ -1,440 +0,0 @@ -# Hello Minecraft! Launcher. -# Copyright (C) 2013 huangyuhui -# -# 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 -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see {http://www.gnu.org/licenses/}. -# -#author: byStarTW -launch.failed=啟動失敗 -launch.failed_creating_process=啟動失敗,在新建新任務時發生錯誤,可能是 Java 路徑錯誤。 -launch.failed_sh_permission=為啟動資料添加權限時發生錯誤 -launch.failed_packing_jar=在打包jar時發生錯誤 -launch.unsupported_launcher_version=對不起,本啟動器現在可能不能啟動這個版本的Minecraft,但啟動器還是會嘗試啟動,請盡快將此問題報告給作者。 -launch.too_big_memory_alloc_64bit=您設定的記憶體大小過大,由於可能超過了32位元Java的記憶體分配限制,所以可能無法啟動遊戲,請將記憶體調至1024MB或更小,啟動器仍會嘗試啟動。 -launch.too_big_memory_alloc_free_space_too_low=您設定的記憶體大小過大,由於超過了系統記憶體大小%dMB,所以可能影響遊戲體驗或無法啟動遊戲,啟動器仍會嘗試啟動。 -launch.cannot_create_jvm=擷取到無法創建Java虛擬機,可能是Java參數有問題,可以在設定中開啟無參數模式啟動。 -launch.circular_dependency_versions=發現遊戲版本多次利用,請確認您的客戶端未被修改或修改導致出現此問題。 -launch.not_finished_downloading_libraries=未完成遊戲資料庫的下載,還要繼續啟動遊戲嗎? -launch.not_finished_decompressing_natives=未能解壓遊戲執行庫,還要繼續啟動遊戲嗎? -launch.wrong_javadir=錯誤的Java路徑,將自動重置為預設Java路徑。 -launch.exited_abnormally=遊戲非正常退出,請查看日誌資料,或聯繫他人尋求幫助。 - -launch.state.logging_in=登錄中 -launch.state.generating_launching_codes=正在生成啟動代碼 -launch.state.downloading_libraries=正在下載必要文件 -launch.state.decompressing_natives=正在釋放執行庫 -launch.state.waiting_launching=等待遊戲啟動 - -install.no_version=未找到要安裝的對應MC版本 -install.no_version_if_intall=未找到要安裝的對應MC版本,是否自動安裝需要的MC版本? -install.not_refreshed=未重整列表 -install.download_list=下載列表 - -install.liteloader.get_list=獲取LiteLoader列表 -install.liteloader.install=安裝LiteLoader - -install.forge.get_list=獲取Forge列表 -install.forge.install=安裝Forge -install.forge.get_changelogs=獲取Forge更新記錄 - -install.optifine.install=安裝OptiFine -install.optifine.get_list=獲取OptiFine列表 -install.optifine.get_download_link=獲取OptiFine下載地址 - -install.failed_forge=安裝Forge失敗 -install.failed_optifine=安裝OptiFine失敗 -install.failed_liteloader=安裝LiteLoader失敗 -install.failed_download_forge=下載Forge失敗 -install.failed_download_optifine=下載OptiFine失敗 -install.failed=安裝失敗 -install.success=安裝成功 -install.no_forge=沒有安裝Forge -install.choose_forge=選擇你安裝的Forge版本 -install.version=版本 -install.mcversion=遊戲版本 -install.time=時間 -install.release_time=釋放時間 -install.type=類型 -install.please_refresh=如需使用自動安裝請點擊右側重整按鈕 - -crash.launcher=啟動器崩潰了! -crash.minecraft=Minecraft崩潰了! - -login.choose_charactor=請選擇您要使用的角色 -login.no_charactor=該帳號沒有角色 -login.your_password=您的密碼 -login.failed=登錄失敗: -login.no_Player007=你還未設定用戶名! -login.wrong_password=可能是您的用戶名或密碼錯誤 -login.invalid_username=無效的用戶名 -login.invalid_uuid_and_username=無效的UUID和用戶名 -login.invalid_password=無效的密碼 -login.invalid_access_token=無效的訪問權杖 -login.changed_client_token=伺服器回應已經修改客戶端權杖 -login.not_email=用戶名必須是郵箱 -login.type=登錄 -login.username=名字 -login.account=郵箱 -login.invalid_token=請嘗試登出並重新輸入密碼登錄 -login.no_valid_character=無有效的角色,自行到skinme.cc登陸並創建角色 - -proxy.username=帳戶 -proxy.password=密碼 -proxy.host=主機 -proxy.port=Port - -login.failed.connect_authentication_server=無法連接認證伺服器,可能是網絡問題 - -login.profile.not_logged_in=無法修改遊戲資料同時未登錄 -login.profile.selected=無法修改遊戲資料. 你必須登出再返回. - -login.methods.yggdrasil=正版登錄 -login.methods.offline=離線模式 -login.methods.no_method=沒有登入方式... - -log.playername_null=玩家名為空,這代表著登錄方法出現問題 - -minecraft.no_selected_version=沒有選擇任何一個Minecraft版本 -minecraft.wrong_path=錯誤的Minecraft路徑,啟動器未找到設定的Minecraft路徑,請檢查。 - -operation.stopped=操作被強行終止 -operation.confirm_stop=真的要終止操作嗎? - -ui.login.password=密碼 -ui.more=更多 - -crash.advice.UnsupportedClassVersionError=這可能是因為您的Java版本過於老舊,可以嘗試更換最新Java並在版本設定的Java路徑中設定. -crash.advice.ConcurrentModificationException=這可能是因為您的Java版本高於Java 1.8.0_11導致的,可以嘗試卸載Java8安裝Java7。 -crash.advice.ClassNotFoundException=Minecraft不完整或Mod衝突,如果有未能下載的資料請下載成功後重試或是用戶端損壞請重試請重新製作用戶端或下載整合包解決問題,另可嘗試遊戲設定->(版本)管理->刪除庫資料解決問題 -crash.advice.NoSuchFieldError=Minecraft不完整或Mod衝突,如果有未能下載的資料請下載成功後重試或是用戶端損壞請重試請重新製作用戶端或下載整合包解決問題。 -crash.advice.LWJGLException=您的電腦不正常,可能需要使用驅動精靈或其他安裝器更新顯卡驅動。 -crash.advice.SecurityException=可能是您修改了minecraft.jar但未刪除META-INF資料夾的原因。請通過壓縮軟體刪除jar中的META-INF資料夾。 -crash.advice.OutOfMemoryError=記憶體溢出,您設定的Minecraft最大記憶體過小,請調大! -crash.advice.otherwise=可能是Mod或其他問題。 - -crash.advice.OpenGL=可能是顯卡/聲卡驅動問題,也可能是Mod導致的問題。 -crash.advice.no_lwjgl=可能是遊戲依賴庫不完整或解壓依賴庫時出錯。可以通過下載整合包解決問題。 - -crash.advice.no=無建議。 - -crash.user_fault=您的系統或Java環境可能安裝不當導致本軟體崩潰,請檢查您的Java環境或您的電腦!可以嘗試重新安裝Java。 -crash.headless=如果您的操作系統是Linux,請注意不要使用OpenJDK,務必使用Oracle JDK,或嘗試添加-Djava.awt.headless=false參數,或檢查您的Xserver是否正常 -crash.NoClassDefFound=請確認HMCL本體是否完整 - -crash.error=您的Minecraft崩潰了。 -crash.main_class_not_found=找不到主類,可能是您的JSON資料填寫錯誤。無法啟動遊戲。可以通過下載整合包解決問題。 -crash.class_path_wrong=解析Class Path時出現錯誤,此錯誤本不應該發生。可能是啟動腳本錯誤,請仔細檢查啟動腳本。 - -ui.label.newProfileWindow.new_profile_name=新配置名: -ui.label.newProfileWindow.copy_from=複製配置: -ui.newProfileWindow.title=新建配置 - -ui.button.ok=確認 -ui.button.refresh=重整 -ui.button.run=啟動Minecraft -ui.button.settings= -ui.button.about=關於 -ui.button.others=其他 -ui.button.logout=登出 -ui.button.download=下載 -ui.button.retry=重試 -ui.button.delete=刪除 -ui.button.install=安裝 -ui.button.info=信息 -ui.button.save=保存 -ui.button.copy=複製 -ui.button.clear=清除 -ui.button.close=關閉 -ui.button.explore=瀏覽 -ui.button.test=測試 -ui.button.preview=預覽 -button.cancel=取消 -button.ok=確定 -button.yes=是 -button.no=不 - -ui.label.version=版本 -ui.label.password=密碼 -ui.label.profile=配置 - -ui.message.first_load=請輸入您的帳號 -ui.message.enter_password=請輸入您的密碼 -ui.message.launching=啟動中 -ui.message.making=生成中 -ui.message.sure_remove=真的要刪除配置%s嗎? -ui.message.update_java=請更新您的Java -ui.message.open_jdk=我們發現到您正在使用OpenJDK,這可能會導致很多介面問題,我們建議您更換Oracle JDK。 - -ui.label.settings=選項 -ui.label.crashing=Hello Minecraft! Launcher遇到了無法處理的錯誤,請複制下列內容並通過mcbbs、貼吧或Minecraft Forum反饋bug。 -ui.label.crashing_out_dated=Hello Minecraft! Launcher遇到了無法處理的錯誤,已檢測到您的啟動器不是最新版本,請更新後再試! -ui.label.failed_set=設定失敗: - -download=下載 -download.mojang=官方 -download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/) -download.rapid_data=RapidData (銳網雲計算, https://www.rapiddata.org/) -download.not_200=下載失敗,回復碼 -download.failed=下載失敗 -download.successfully=下載完成 -download.source=下載源 - -message.error=錯誤 -message.cannot_open_explorer=無法打開資料管理器: -message.cancelled=已取消 -message.info=提示 -message.loading=加載中... - -folder.game=遊戲資料夾 -folder.mod=MOD資料夾 -folder.coremod=核心MOD資料夾 -folder.config=配置資料夾 -folder.resourcepacks=資源包資料夾 -folder.screenshots=截圖資料夾 -folder.saves=存檔資料夾 - -settings.tabs.game_download=遊戲下載 -settings.tabs.installers=自動安裝 -settings.tabs.assets_downloads=資源下載 - -settings=普通設定 -settings.explore=瀏覽 -settings.manage=管理 -settings.cannot_remove_default_config=不能刪除預設配置 -settings.max_memory=最大記憶體(MB) -settings.java_dir=Java路徑 -settings.game_directory=遊戲路徑 -settings.dimension=遊戲窗口解析度 -settings.fullscreen=全螢幕 -settings.update_version=更新版本資料 -settings.run_directory=執行路徑(版本隔離) -settings.physical_memory=實體記憶體大小 -settings.choose_javapath=選擇Java路徑 -settings.default=預設 -settings.custom=自定義 -settings.choose_gamedir=選擇遊戲路徑 -settings.failed_load=設定資料加載失敗,可能是升級了啟動器或被人工修改造成錯誤,是否清除? -settings.test_game=測試遊戲 - -settings.type.none=缺少游戲版本,請切換到遊戲下載頁下載遊戲 -settings.type.global=點擊此處切換為版本特定設定。該版本正在使用全局設定,修改以下設定會影響到其他使用全局設定的版本 -settings.type.special=點擊此處切換為全局設定。該版本正在使用版本特定設定,修改以下設定不會影響到其他版本設定 - -modpack=懶人包 -modpack.choose=選擇要導入的遊戲懶人包資料,如果您希望更新懶人包,請輸入要更新的版本名 -modpack.export_error=導出失敗,可能是您的遊戲資料夾格式不正確或操作資料失敗 -modpack.export_finished=懶人包導出完成,參見 -modpack.included_launcher=懶人包已包含啟動器,可直接發布 -modpack.not_included_launcher=懶人包未包含啟動器,可使用本軟件的導入懶人包功能導入懶人包 -modpack.enter_name=給遊戲起個你喜歡的名字 - -modpack.task.save=導出懶人包 -modpack.task.install=導入懶人包 -modpack.task.install.error=安裝失敗,可能是懶人包格式不正確或操作資料失敗 -modpack.task.install.will=將會安裝懶人包: - -modpack.wizard=導出懶人包嚮導 -modpack.wizard.step.1=基本設定 -modpack.wizard.step.1.title=設定懶人包的主要資訊 -modpack.wizard.step.initialization.include_launcher=包含啟動器 -modpack.wizard.step.initialization.exported_version=要導出的遊戲版本 -modpack.wizard.step.initialization.save=選擇要導出到的遊戲懶人包位置 -modpack.wizard.step.initialization.warning=在製作懶人包前,請您確認您選擇的版本可以正常啟動,\n並保證您的Minecraft是正式版而非快照版,\n而且不應當將不允許非官方途徑傳播的Mod、材質包等納入整合包。\n懶人包會保存您目前的下載源設定 -modpack.wizard.step.2=資料選擇 -modpack.wizard.step.2.title=選中你想加到懶人包中的資料(夾) -modpack.wizard.step.3=懶人包描述 -modpack.wizard.step.3.title=描述你要製作的懶人包。 - -modpack.desc=描述你要製作的懶人包,比如懶人包注意事項和更新記錄,支持Markdown(圖片請用網路圖片)。 -modpack.incorrect_format.no_json=懶人包格式錯誤,pack.json丟失 -modpack.incorrect_format.no_jar=懶人包格式錯誤,pack.json丟失jar欄位 -modpack.cannot_read_version=讀取遊戲版本失敗 -modpack.not_a_valid_location=不是一個有效懶人包位置 -modpack.name=懶人包名稱 -modpack.not_a_valid_name=不是一個有效的懶人包名稱 - -modpack.files.servers_dat=多人遊戲伺服器列表 -modpack.files.saves=遊戲存檔 -modpack.files.mods=Mod -modpack.files.config=Mod設定檔 -modpack.files.liteconfig=Mod設定檔 -modpack.files.resourcepacks=資源包(材質包) -modpack.files.options_txt=遊戲設定 -modpack.files.optionsshaders_txt=光影設定 -modpack.files.mods.voxelmods=VoxelMods設定,如小地圖 -modpack.files.dumps=NEI調試輸出 -modpack.files.scripts=MineTweaker配置 -modpack.files.blueprints=BuildCraft藍圖 - -mods=Mod管理 -mods.choose_mod=選擇模組 -mods.failed=添加失敗 -mods.add=添加 -mods.remove=刪除 -mods.default_information=您可以拖動mod到列表中來添加mod,同時使用刪除鍵可快速刪除選中mod\n選擇mod可以獲取mod資訊 - -advancedsettings=進階設定 -advancedsettings.launcher_visible=啟動器可見性 -advancedsettings.debug_mode=偵錯模式 -advancedsettings.java_permanent_generation_space=記憶體永久保存區域/MB -advancedsettings.jvm_args=Java虛擬機參數(不必填寫) -advancedsettings.Minecraft_arguments=Minecraft額外參數(不必填寫) -advancedsettings.launcher_visibility.close=遊戲啟動後結束啟動器 -advancedsettings.launcher_visibility.hide=遊戲啟動後隱藏啟動器 -advancedsettings.launcher_visibility.keep=保持啟動器可見 -advancedsettings.launcher_visibility.hide_reopen=隱藏啟動器並在遊戲結束後重新打開 -advancedsettings.game_dir.default=預設(.minecraft/) -advancedsettings.game_dir.independent=各版本獨立(.minecraft/versions/<版本名>/,除assets,libraries) -advancedsettings.no_jvm_args=不添加預設的JVM參數(使用Java9時必勾) -advancedsettings.no_common=不使用公共路徑 -advancedsettings.java_args_default=啟動器預設添加的參數(請不要重複添加):-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml. ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -advancedsettings.wrapper_launcher=前置指令(不必填寫,如optirun) -advancedsettings.precall_command=啟動前執行命令(不必填寫,將在遊戲啟動前調用) -advancedsettings.server_ip=直接進入伺服器IP (不必填寫,啟動遊戲後直接進入對應伺服器) -advancedsettings.cancel_wrapper_launcher=取消包裹啟動器(出現奇怪問題時可嘗試使用,與調試模式衝突) -advancedsettings.dont_check_game_completeness=不檢查遊戲完整性 - -mainwindow.show_log=查看日誌 -mainwindow.make_launch_script=生成啟動腳本 -mainwindow.make_launch_script_failed=生成啟動腳本失敗 -mainwindow.enter_script_name=輸入要生成腳本的資料名 -mainwindow.make_launch_succeed=啟動腳本已生成完畢: -mainwindow.no_version=未找到任何版本,是否進入遊戲下載? - -launcher.about=預設背景圖感謝gamerteam提供。\n關於作者:\n百度ID:huanghongxun20\nmcbbs:huanghongxun\nMinecraft Forum ID: klkl6523\n歡迎提交Bug哦\nCopyright (c) 2013-2016 huangyuhui.\n免責聲明:Minecraft軟體版權歸Mojang AB所有,遊戲由於誤操作本啟動器而丟失數據的概不負責。\n本啟動器在GPLv3協議下開源:http://github.com/huanghongxun/HMCL/ ,感謝issues和pull requests貢獻者\n本軟體使用了基於Apache License 2.0的Gson項目,感謝貢獻者。 -launcher.download_source=下載源 -launcher.background_location=背景地址 -launcher.common_location=公用資料夾 -launcher.exit_failed=強制退出失敗,可能是Forge 1.7.10及更高版本導致的,無法解決。 -launcher.versions_json_not_matched=版本%s格式不規範!該版本資料夾下有json:%s,是否更名這個資料來規範格式? -launcher.versions_json_not_matched_cannot_auto_completion=版本%s缺失必要的版本資訊資料,是否刪除該版本? -launcher.versions_json_not_formatted=版本%s資訊資料格式錯誤,是否重新下載? -launcher.choose_bgpath=選擇背景路徑 -launcher.choose_commonpath=選擇公用路徑 -launcher.commpath_tooltip=啟動器將所有遊戲資源跟執行庫檔案放在此處集中管理。如果遊戲資料夾有現成的將不會使用公用庫檔案。 -launcher.background_tooltip=啟動器預設使用自帶的背景\n如果當前目錄有background.png,則會使用該資料作為背景\n如果當前目錄有bg子目錄,則會隨機使用裡面的一張圖作為背景\n如果該背景位址被修改,則會使用背景位址裡的一張圖作為背景\n背景位址允許有多個位址,使用半形分號";"(不包含雙引號)分隔 -launcher.update_launcher=檢查更新 -launcher.enable_shadow=啟用窗口陰影 -launcher.enable_animation=啟用動態效果 -launcher.enable_blur=啟用主介面模糊 -launcher.theme=主題 -launcher.proxy=代理 -launcher.decorated=啟用視窗邊框(Linux下可解決程式介面全灰問題) -launcher.modpack=整合包作者幫助 -launcher.lang=語言 -launcher.restart=本介面選項需要重啟本啟動器生效 -launcher.log_font=日誌字體 -launcher.tab.general=通用 -launcher.tab.ui=介面 -launcher.tab.about=關於 - -launcher.title.game=遊戲設定 -launcher.title.main=主頁 -launcher.title.launcher=啟動器設定 - -versions.release=穩定版 -versions.snapshot=快照版 -versions.old_beta=測試版 -versions.old_alpha=遠古版 - -versions.manage.rename=重新命名該版本 -versions.manage.rename.message=請輸入要改成的名字 -versions.manage.remove=刪除該版本 -versions.manage.remove.confirm=真的要刪除版本 -versions.manage.redownload_json=重新下載版本配置(minecraft.json) -versions.manage.redownload_assets_index=重新下載資源配置(assets_index.json) -versions.manage.remove_libraries=刪除所有庫檔 - -advice.os64butjdk32=您的系統是64-bit,但是Java是32位的,推薦您安裝64位Java. -advice.java8=檢測到您未使用Java 8及更新版本,Java 8能使遊戲更流暢而且Minecraft 1.12及更新版本和很多Mod強制需要需要Java 8。 - -assets.download_all=下載資源資料 -assets.not_refreshed=資源列表未重整,請重整一次。 -assets.failed=獲取列表失敗,請重整重試。 -assets.list.1_7_3_after=1.7.3及以後 -assets.list.1_6=1.6(BMCLAPI) -assets.unkown_type_select_one=無法解析遊戲版本:%s,請選擇一種資源類型下載。 -assets.type=資源類型 -assets.download=下載資源 -assets.no_assets=資源資料不完整,是否補全? -assets.failed_download=下載資源資料失敗,可能導致沒有中文語系或音樂。 - -gamedownload.not_refreshed=遊戲下載列表未重整,請再重整一次。 - -taskwindow.title=任務 -taskwindow.single_progress=單項進度 -taskwindow.total_progress=總進度 -taskwindow.cancel=取消 -taskwindow.no_more_instance=可能同時打開了多個任務窗口,請不要多次打開! -taskwindow.file_name=任務 -taskwindow.download_progress=進度 - -setupwindow.include_minecraft=導入遊戲資料夾 -setupwindow.find_in_configurations=導入完成,快到配置下拉清單中找新遊戲路徑吧! -setupwindow.give_a_name=給新遊戲路徑起個名字吧 -setupwindow.new=新建 -setupwindow.no_empty_name=名字不可為空 -setupwindow.clean=清理遊戲資料 - -update.no_browser=無法打開瀏覽器,網址已經複製到剪貼版了,您可以手動Copy網址打開頁面 -update.should_open_link=是否更新? -update.newest_version=最新版本為: -update.failed=檢查更新失敗 -update.found=(發現更新!) - -logwindow.terminate_game=結束遊戲進程 -logwindow.title=日誌 -logwindow.contact=聯繫我們 -logwindow.show_lines=顯示行數 -logwindow.search=查找 - -selector.choose=選擇 - -serverlistview.title=選擇伺服器 -serverlistview.name=名稱 -serverlistview.type=類型 -serverlistview.version=版本 -serverlistview.info=信息 - -minecraft.invalid=無效的 -minecraft.invalid_jar=無效的jar包 -minecraft.not_a_file=不是資料 -minecraft.not_found=找不到minecraft.jar -minecraft.not_readable=minecraft.jar不可讀 -minecraft.modified=(修改的!) - -color.red=紅色 -color.blue=藍色 -color.green=綠色 -color.orange=橙色 -color.dark_blue=深藍色 -color.purple=紫色 - -wizard.next_>=下一步 > -wizard.next_mnemonic=下 -wizard.<_prev=< 上一步 -wizard.prev_mnemonic=上 -wizard.finish=完成 -wizard.finish_mnemonic=完 -wizard.cancel=取消 -wizard.cancel_mnemonic=取 -wizard.help=說明 -wizard.help_mnemonic=幫 -wizard.close=關閉 -wizard.close_mnemonic=關 -wizard.summary=概要 -wizard.failed=失敗 -wizard.steps=步驟 - -lang=繁體中文 -lang.default=跟隨系統語言 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index 083505d52..761b2b269 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -37,74 +37,45 @@ launch.state.waiting_launching=等待游戏启动 install.no_version=未找到要安装的对应MC版本 install.no_version_if_intall=未找到要安装的对应MC版本,是否自动安装需要的MC版本? -install.not_refreshed=未刷新列表 -install.download_list=下载列表 - -install.liteloader.get_list=获取LiteLoader列表 -install.liteloader.install=安装LiteLoader - -install.forge.get_list=获取Forge列表 -install.forge.install=安装Forge -install.forge.get_changelogs=获取Forge更新记录 - -install.optifine.install=安装OptiFine -install.optifine.get_list=获取OptiFine列表 -install.optifine.get_download_link=获取OptiFine下载地址 - -install.failed_forge=安装Forge失败 -install.failed_optifine=安装OptiFine失败 -install.failed_liteloader=安装LiteLoader失败 -install.failed_download_forge=下载Forge失败 -install.failed_download_optifine=下载OptiFine失败 install.failed=安装失败 install.success=安装成功 -install.no_forge=没有安装Forge -install.choose_forge=选择你安装的Forge版本 +install.installer.not_installed=不安装%s install.version=版本 -install.mcversion=游戏版本 +install.installer.version=%s版本 install.time=时间 -install.release_time=释放时间 +install.release_time=发布时间 install.type=类型 -install.please_refresh=如需使用自动安装请点击右侧刷新按钮 - crash.launcher=启动器崩溃了! crash.minecraft=Minecraft崩溃了!请认真阅读建议。 login.choose_charactor=请选择您要使用的角色 -login.no_charactor=该帐号没有角色 -login.your_password=您的密码 +account.failed.no_charactor=该帐号没有角色 login.failed=登录失败: login.no_Player007=你还未设置用户名! -login.wrong_password=可能是您的用户名或密码错误 +account.failed.wrong_password=可能是您的用户名或密码错误 login.invalid_username=无效的用户名 login.invalid_uuid_and_username=无效的UUID和用户名 -login.invalid_password=无效的密码 -login.invalid_access_token=无效的访问令牌 +account.failed.invalid_password=无效的密码 +account.failed.invalid_access_token=无效的访问令牌 login.changed_client_token=服务器回应已经修改客户端令牌 -login.not_email=用户名必须是邮箱 -login.type=登录 -login.username=名字 +input.email=用户名必须是邮箱 +account.methods=登录 +account.username=用户名 login.account=邮箱 -login.invalid_token=请尝试登出并重新输入密码登录 +account.failed.invalid_token=请尝试登出并重新输入密码登录 login.no_valid_character=无有效的角色,自行到skinme.cc登陆并创建角色 -proxy.username=账户 -proxy.password=密码 -proxy.host=主机 -proxy.port=端口 +launcher_settings.proxy.username=账户 +launcher_settings.proxy.password=密码 +launcher_settings.proxy.host=主机 +launcher_settings.proxy.port=端口 -login.failed.connect_authentication_server=无法连接认证服务器,可能是网络问题 +account.failed.connect_authentication_server=无法连接认证服务器,可能是网络问题 -login.profile.not_logged_in=无法修改游戏资料同时未登录 -login.profile.selected=无法修改游戏资料. 你必须登出再返回. +account.methods.yggdrasil=正版登录 +account.methods.offline=离线模式 +account.methods.no_method=没有登入方式... -login.methods.yggdrasil=正版登录 -login.methods.offline=离线模式 -login.methods.no_method=没有登入方式... - -log.playername_null=玩家名为空,这代表着登录方法出现问题 - -minecraft.no_selected_version=没有选择任何一个Minecraft版本 minecraft.wrong_path=错误的Minecraft路径,启动器未找到设定的Minecraft路径,请检查。 operation.stopped=操作被强行终止 @@ -161,11 +132,11 @@ ui.button.preview=预览 button.cancel=取消 button.ok=确定 button.yes=是 -button.no=不 +button.no=否 ui.label.version=版本 ui.label.password=密码 -ui.label.profile=配置 +profile=配置 ui.message.first_load=请输入您的账号 ui.message.enter_password=请输入您的密码 @@ -183,8 +154,7 @@ ui.label.failed_set=设置失败: download=下载 download.mojang=官方 download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/) -download.rapid_data=RapidData (锐网云计算, https://www.rapiddata.org/) -download.not_200=下载失败,回复码 +download.not_200=下载失败,HTTP状态码:%s. download.failed=下载失败 download.successfully=下载完成 download.source=下载源 @@ -208,14 +178,14 @@ settings.tabs.installers=自动安装 settings.tabs.assets_downloads=资源下载 settings=普通设置 -settings.explore=浏览 -settings.manage=管理 +game_settings.exploration=浏览 +game_settings.management=管理 settings.cannot_remove_default_config=不能删除默认配置 settings.max_memory=最大内存/MB -settings.java_dir=Java路径 -settings.game_directory=游戏路径 -settings.dimension=游戏窗口分辨率 -settings.fullscreen=全屏 +game_settings.java_directory=Java路径 +profile.instance_directory=游戏路径 +game_settings.dimension=游戏窗口分辨率 +game_settings.fullscreen=全屏 settings.update_version=更新版本文件 settings.run_directory=运行路径(版本隔离) settings.physical_memory=物理内存大小 @@ -286,10 +256,9 @@ mods.default_information=安装Mod前你需要确保已安装Forge或LiteLoader! advancedsettings=高级设置 advancedsettings.launcher_visible=启动器可见性 -advancedsettings.debug_mode=调试模式 advancedsettings.java_permanent_generation_space=内存永久保存区域(不必填写,MB) advancedsettings.jvm_args=Java虚拟机参数(不必填写) -advancedsettings.Minecraft_arguments=Minecraft额外参数(不必填写) +advancedsettings.minecraft_arguments=Minecraft额外参数(不必填写) advancedsettings.launcher_visibility.close=游戏启动后结束启动器 advancedsettings.launcher_visibility.hide=游戏启动后隐藏启动器 advancedsettings.launcher_visibility.keep=保持启动器可见 @@ -302,7 +271,6 @@ advancedsettings.java_args_default=启动器默认添加的参数(请不要重 advancedsettings.wrapper_launcher=前置指令(不必填写,如optirun) advancedsettings.precall_command=启动前执行命令(不必填写,将在游戏启动前调用) advancedsettings.server_ip=直入服务器ip地址(不必填写,启动游戏后直接进入对应服务器) -advancedsettings.cancel_wrapper_launcher=取消包裹启动器(出现奇怪问题时可尝试使用,与调试模式冲突) advancedsettings.dont_check_game_completeness=不检查游戏完整性 mainwindow.show_log=查看日志 @@ -313,7 +281,7 @@ mainwindow.make_launch_succeed=启动脚本已生成完毕: mainwindow.no_version=未找到任何版本,是否进入游戏下载? launcher.about=默认背景图感谢gamerteam提供。\n关于作者:\n百度ID:huanghongxun20\nmcbbs:huanghongxun\nMinecraft Forum ID: klkl6523\n欢迎提交Bug哦\nCopyright (c) 2013-2017 huangyuhui.\n免责声明:Minecraft软件版权归Mojang AB所有,使用本软件产生的版权问题本软件制作方概不负责。\n本启动器在GPLv3协议下开源:https://github.com/huanghongxun/HMCL/ ,感谢issues和pull requests贡献者\n本软件使用了基于Apache License 2.0的Gson项目,感谢贡献者。 -launcher.download_source=下载源 +launcher_settings.download_source=下载源 launcher.background_location=背景地址 launcher.common_location=公共文件夹 launcher.exit_failed=强制退出失败,可能是Forge 1.7.10及更高版本导致的,无法解决。 @@ -322,26 +290,23 @@ launcher.versions_json_not_matched_cannot_auto_completion=版本%s缺失必要 launcher.versions_json_not_formatted=版本%s信息文件格式错误,是否重新下载? launcher.choose_bgpath=选择背景路径 launcher.choose_commonpath=选择公共路径 -launcher.commpath_tooltip=启动器将所有游戏资源及依赖库文件放于此集中管理,如果游戏文件夹内有现成的将不会使用公共库文件 +launcher_settings.common_path.tooltip=启动器将所有游戏资源及依赖库文件放于此集中管理,如果游戏文件夹内有现成的将不会使用公共库文件 launcher.background_tooltip=启动器默认使用自带的背景\n如果当前目录有background.png,则会使用该文件作为背景\n如果当前目录有bg子目录,则会随机使用里面的一张图作为背景\n如果该背景地址被修改,则会使用背景地址里的一张图作为背景\n背景地址允许有多个地址,使用半角分号";"(不包含双引号)分隔 launcher.update_launcher=检查更新 -launcher.enable_shadow=启用窗口阴影 -launcher.enable_animation=启用动态效果 -launcher.enable_blur=启用主界面模糊 -launcher.theme=主题 -launcher.proxy=代理 -launcher.decorated=启用窗口边框(Linux下可解决程序界面全灰问题) +launcher_settings.theme=主题 +launcher_settings.proxy=代理 +launcher_settings.decorated=启用窗口边框(Linux下可解决程序界面全灰问题) launcher.modpack=整合包作者帮助 -launcher.lang=语言 +launcher_settings.language=语言 launcher.restart=本界面选项需要重启本启动器生效 -launcher.log_font=日志字体 +launcher_settings.log_font=日志字体 launcher.tab.general=通用 launcher.tab.ui=界面 launcher.tab.about=关于 -launcher.title.game=游戏设置 -launcher.title.main=主页 -launcher.title.launcher=启动器设置 +game_settings=游戏设置 +main_page=主页 +launcher_settings=启动器设置 versions.release=稳定版 versions.snapshot=快照版 @@ -360,18 +325,10 @@ advice.os64butjdk32=您的系统是64位的但是Java是32位的,推荐您安 advice.java8=检测到您未使用Java 8及更新版本,Java 8能使游戏更流畅而且Minecraft 1.12及更新版本和很多Mod强制需要需要Java 8。 assets.download_all=下载资源文件 -assets.not_refreshed=资源列表未刷新,请刷新一次。 assets.failed=获取列表失败,请刷新重试。 -assets.list.1_7_3_after=1.7.3及以后 -assets.list.1_6=1.6(BMCLAPI) -assets.unkown_type_select_one=无法解析游戏版本:%s,请选择一种资源类型下载。 -assets.type=资源类型 assets.download=下载资源 -assets.no_assets=资源文件不完整,是否补全? assets.failed_download=下载资源文件失败,可能导致没有中文和声音。 -gamedownload.not_refreshed=游戏下载列表未刷新,请再刷新一次。 - taskwindow.title=任务 taskwindow.single_progress=单项进度 taskwindow.total_progress=总进度 @@ -401,12 +358,6 @@ logwindow.search=查找 selector.choose=选择 -serverlistview.title=选择服务器 -serverlistview.name=名称 -serverlistview.type=类型 -serverlistview.version=版本 -serverlistview.info=信息 - minecraft.invalid=无效的 minecraft.invalid_jar=无效的jar包 minecraft.not_a_file=不是文件 @@ -439,3 +390,20 @@ wizard.steps=步骤 lang=简体中文 lang.default=跟随系统语言 +account.create=新建账户 +input.not_empty=必填项 +account=账户 +install.new_game=安装新游戏版本 +install.new_game.current_game_version=当前游戏版本 +install.installer.choose=选择%s版本 +install.installer.forge=Forge +install.installer.optifine=OptiFine +install.installer.liteloader=LiteLoader +install.installer.failed=未能成功安装%s. +install.new_game.already_exists=此版本已经存在,请换一个名字 +install.installer.game=游戏 +install.modpack=安装整合包 +install.select=请选择安装方式 +install=添加游戏 +settings.icon=游戏图标 +launcher=启动器 diff --git a/HMCL/src/main/resources/assets/svg/arrow-left.fxml b/HMCL/src/main/resources/assets/svg/arrow-left.fxml index 008914a29..a83d31a4b 100644 --- a/HMCL/src/main/resources/assets/svg/arrow-left.fxml +++ b/HMCL/src/main/resources/assets/svg/arrow-left.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/arrow-right.fxml b/HMCL/src/main/resources/assets/svg/arrow-right.fxml index 535557cc7..34e8de332 100644 --- a/HMCL/src/main/resources/assets/svg/arrow-right.fxml +++ b/HMCL/src/main/resources/assets/svg/arrow-right.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/close-black.fxml b/HMCL/src/main/resources/assets/svg/close-black.fxml index 1b1aeb9b4..f5af5ccbd 100644 --- a/HMCL/src/main/resources/assets/svg/close-black.fxml +++ b/HMCL/src/main/resources/assets/svg/close-black.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/close.fxml b/HMCL/src/main/resources/assets/svg/close.fxml index b045a2a2a..54e896a9f 100644 --- a/HMCL/src/main/resources/assets/svg/close.fxml +++ b/HMCL/src/main/resources/assets/svg/close.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/delete-black.fxml b/HMCL/src/main/resources/assets/svg/delete-black.fxml index 3cecc9a72..954d8e7e2 100644 --- a/HMCL/src/main/resources/assets/svg/delete-black.fxml +++ b/HMCL/src/main/resources/assets/svg/delete-black.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/dots-vertical.fxml b/HMCL/src/main/resources/assets/svg/dots-vertical.fxml index d156a7f9b..1c88fe511 100644 --- a/HMCL/src/main/resources/assets/svg/dots-vertical.fxml +++ b/HMCL/src/main/resources/assets/svg/dots-vertical.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/export.fxml b/HMCL/src/main/resources/assets/svg/export.fxml index 01c406ab2..217c370d0 100644 --- a/HMCL/src/main/resources/assets/svg/export.fxml +++ b/HMCL/src/main/resources/assets/svg/export.fxml @@ -1,2 +1,3 @@ + \ No newline at end of file diff --git a/HMCL/src/main/resources/assets/svg/folder-black.fxml b/HMCL/src/main/resources/assets/svg/folder-black.fxml index 7a5dcacb5..3452e40e0 100644 --- a/HMCL/src/main/resources/assets/svg/folder-black.fxml +++ b/HMCL/src/main/resources/assets/svg/folder-black.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/folder-open.fxml b/HMCL/src/main/resources/assets/svg/folder-open.fxml index b78b9e9c3..010b10947 100644 --- a/HMCL/src/main/resources/assets/svg/folder-open.fxml +++ b/HMCL/src/main/resources/assets/svg/folder-open.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/gear.fxml b/HMCL/src/main/resources/assets/svg/gear.fxml index e777fa296..9a30e8405 100644 --- a/HMCL/src/main/resources/assets/svg/gear.fxml +++ b/HMCL/src/main/resources/assets/svg/gear.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/paper-plane.fxml b/HMCL/src/main/resources/assets/svg/paper-plane.fxml index ae3293a75..4188fdd10 100644 --- a/HMCL/src/main/resources/assets/svg/paper-plane.fxml +++ b/HMCL/src/main/resources/assets/svg/paper-plane.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/pencil.fxml b/HMCL/src/main/resources/assets/svg/pencil.fxml index fa69a57ae..7522a8fda 100644 --- a/HMCL/src/main/resources/assets/svg/pencil.fxml +++ b/HMCL/src/main/resources/assets/svg/pencil.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/plus-black.fxml b/HMCL/src/main/resources/assets/svg/plus-black.fxml index e28cf0728..cd301a5d3 100644 --- a/HMCL/src/main/resources/assets/svg/plus-black.fxml +++ b/HMCL/src/main/resources/assets/svg/plus-black.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/plus.fxml b/HMCL/src/main/resources/assets/svg/plus.fxml index 498e812f4..66b83fe0f 100644 --- a/HMCL/src/main/resources/assets/svg/plus.fxml +++ b/HMCL/src/main/resources/assets/svg/plus.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/refresh-black.fxml b/HMCL/src/main/resources/assets/svg/refresh-black.fxml index 72c17f472..983750f10 100644 --- a/HMCL/src/main/resources/assets/svg/refresh-black.fxml +++ b/HMCL/src/main/resources/assets/svg/refresh-black.fxml @@ -1,2 +1,3 @@ + \ No newline at end of file diff --git a/HMCL/src/main/resources/assets/svg/refresh.fxml b/HMCL/src/main/resources/assets/svg/refresh.fxml index f1c6b5ff7..b22a628ce 100644 --- a/HMCL/src/main/resources/assets/svg/refresh.fxml +++ b/HMCL/src/main/resources/assets/svg/refresh.fxml @@ -1,2 +1,3 @@ + \ No newline at end of file diff --git a/HMCL/src/main/resources/assets/svg/rocket.fxml b/HMCL/src/main/resources/assets/svg/rocket.fxml index dad02ad60..915742f19 100644 --- a/HMCL/src/main/resources/assets/svg/rocket.fxml +++ b/HMCL/src/main/resources/assets/svg/rocket.fxml @@ -1,2 +1,3 @@ + diff --git a/HMCL/src/main/resources/assets/svg/wrench-black.fxml b/HMCL/src/main/resources/assets/svg/wrench-black.fxml index 1a784e580..b67b3af70 100644 --- a/HMCL/src/main/resources/assets/svg/wrench-black.fxml +++ b/HMCL/src/main/resources/assets/svg/wrench-black.fxml @@ -1,2 +1,3 @@ + \ No newline at end of file diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/OfflineAccount.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/OfflineAccount.java index aa3d14974..206ac9140 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/OfflineAccount.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/OfflineAccount.java @@ -17,13 +17,14 @@ */ package org.jackhuang.hmcl.auth; -import java.net.Proxy; -import java.util.Map; -import java.util.Objects; import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.Pair; import org.jackhuang.hmcl.util.StringUtils; +import java.net.Proxy; +import java.util.Map; +import java.util.Objects; + /** * * @author huang diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/OfflineAccountFactory.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/OfflineAccountFactory.java index e74900359..c3f57dc75 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/OfflineAccountFactory.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/OfflineAccountFactory.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.auth; -import java.util.Map; import org.jackhuang.hmcl.util.DigestUtils; +import java.util.Map; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/AuthenticationRequest.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/AuthenticationRequest.java index 2d5ee7b00..77bbceab2 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/AuthenticationRequest.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/AuthenticationRequest.java @@ -5,10 +5,11 @@ */ package org.jackhuang.hmcl.auth.yggdrasil; -import java.util.Map; import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.Pair; +import java.util.Map; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/GameProfile.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/GameProfile.java index ac6c1b094..47533cf54 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/GameProfile.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/GameProfile.java @@ -17,13 +17,7 @@ */ package org.jackhuang.hmcl.auth.yggdrasil; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; +import com.google.gson.*; import org.jackhuang.hmcl.util.Immutable; import java.lang.reflect.Type; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/PropertyMap.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/PropertyMap.java index fdc6705dd..7152223ec 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/PropertyMap.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/PropertyMap.java @@ -17,23 +17,12 @@ */ package org.jackhuang.hmcl.auth.yggdrasil; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import com.google.gson.*; import org.jackhuang.hmcl.util.Lang; +import java.lang.reflect.Type; +import java.util.*; + public final class PropertyMap extends HashMap { public List> toList() { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/YggdrasilAccount.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/YggdrasilAccount.java index a9f9af072..3fa4bd2d7 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/YggdrasilAccount.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/YggdrasilAccount.java @@ -20,16 +20,19 @@ package org.jackhuang.hmcl.auth.yggdrasil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonParseException; -import java.io.IOException; -import java.net.Proxy; -import java.net.URL; -import java.util.*; - import org.jackhuang.hmcl.auth.*; import org.jackhuang.hmcl.util.NetworkUtils; import org.jackhuang.hmcl.util.StringUtils; import org.jackhuang.hmcl.util.UUIDTypeAdapter; +import java.io.IOException; +import java.net.Proxy; +import java.net.URL; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + /** * * @author huang diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/YggdrasilAccountFactory.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/YggdrasilAccountFactory.java index ef454ba57..70453c3ed 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/YggdrasilAccountFactory.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/yggdrasil/YggdrasilAccountFactory.java @@ -17,13 +17,15 @@ */ package org.jackhuang.hmcl.auth.yggdrasil; +import org.jackhuang.hmcl.auth.AccountFactory; +import org.jackhuang.hmcl.util.Lang; +import org.jackhuang.hmcl.util.UUIDTypeAdapter; + import java.util.List; import java.util.Map; import java.util.Optional; -import org.jackhuang.hmcl.auth.AccountFactory; -import org.jackhuang.hmcl.util.Lang; + import static org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount.*; -import org.jackhuang.hmcl.util.UUIDTypeAdapter; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultDependencyManager.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultDependencyManager.java index 9ee2bc341..f7b1be279 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultDependencyManager.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultDependencyManager.java @@ -17,7 +17,6 @@ */ package org.jackhuang.hmcl.download; -import java.net.Proxy; import org.jackhuang.hmcl.download.forge.ForgeInstallTask; import org.jackhuang.hmcl.download.game.GameAssetDownloadTask; import org.jackhuang.hmcl.download.game.GameLibrariesTask; @@ -30,6 +29,8 @@ import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.task.ParallelTask; import org.jackhuang.hmcl.task.Task; +import java.net.Proxy; + /** * Note: This class has no state. * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultGameBuilder.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultGameBuilder.java index c1ec8df1a..322eafbe4 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultGameBuilder.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultGameBuilder.java @@ -17,19 +17,15 @@ */ package org.jackhuang.hmcl.download; -import java.util.function.Function; -import org.jackhuang.hmcl.download.game.GameAssetDownloadTask; -import org.jackhuang.hmcl.download.game.GameDownloadTask; -import org.jackhuang.hmcl.download.game.GameLibrariesTask; -import org.jackhuang.hmcl.download.game.GameLoggingDownloadTask; -import org.jackhuang.hmcl.download.game.VersionJsonDownloadTask; -import org.jackhuang.hmcl.download.game.VersionJsonSaveTask; +import org.jackhuang.hmcl.download.game.*; import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.task.ParallelTask; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.AutoTypingMap; import org.jackhuang.hmcl.util.Constants; +import java.util.function.Function; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DependencyManager.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DependencyManager.java index fc00bf3cb..a48148760 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DependencyManager.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DependencyManager.java @@ -17,11 +17,12 @@ */ package org.jackhuang.hmcl.download; -import java.net.Proxy; import org.jackhuang.hmcl.game.GameRepository; import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.task.Task; +import java.net.Proxy; + /** * Do everything that will connect to Internet. * Downloading Minecraft files. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/GameBuilder.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/GameBuilder.java index 7fc9ef7c3..f997eeb87 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/GameBuilder.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/GameBuilder.java @@ -17,10 +17,11 @@ */ package org.jackhuang.hmcl.download; +import org.jackhuang.hmcl.task.Task; + import java.util.HashMap; import java.util.Map; import java.util.Objects; -import org.jackhuang.hmcl.task.Task; /** * The builder which provide a task to build Minecraft environment. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/RemoteVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/RemoteVersion.java index 361045ad5..2e5152006 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/RemoteVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/RemoteVersion.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.download; +import org.jackhuang.hmcl.util.VersionNumber; + import java.util.Comparator; import java.util.Objects; -import org.jackhuang.hmcl.util.VersionNumber; /** * The remote version. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java index e2679cdd4..c0c6f4fe6 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java @@ -17,14 +17,11 @@ */ package org.jackhuang.hmcl.download; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Optional; -import java.util.TreeSet; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.SimpleMultimap; +import java.util.*; + /** * The remote version list. * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeInstallTask.java index f91f8a8a5..81c7321b3 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeInstallTask.java @@ -17,17 +17,6 @@ */ package org.jackhuang.hmcl.download.forge; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; import org.jackhuang.hmcl.download.DefaultDependencyManager; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.VersionList; @@ -43,6 +32,14 @@ import org.jackhuang.hmcl.util.FileUtils; import org.jackhuang.hmcl.util.IOUtils; import org.jackhuang.hmcl.util.NetworkUtils; +import java.io.*; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeVersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeVersionList.java index f24e05552..d2f096fd7 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeVersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeVersionList.java @@ -17,10 +17,6 @@ */ package org.jackhuang.hmcl.download.forge; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; import org.jackhuang.hmcl.download.DownloadProvider; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.VersionList; @@ -31,6 +27,11 @@ import org.jackhuang.hmcl.util.NetworkUtils; import org.jackhuang.hmcl.util.StringUtils; import org.jackhuang.hmcl.util.VersionNumber; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + /** * * @author huangyuhui @@ -54,7 +55,7 @@ public final class ForgeVersionList extends VersionList { } @Override - public void execute() throws Exception { + public void execute() { ForgeVersionRoot root = Constants.GSON.fromJson(task.getResult(), ForgeVersionRoot.class); if (root == null) return; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeVersionRoot.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeVersionRoot.java index d7c19bac4..a5efb9163 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeVersionRoot.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/forge/ForgeVersionRoot.java @@ -18,10 +18,11 @@ package org.jackhuang.hmcl.download.forge; import com.google.gson.JsonParseException; -import java.util.Map; import org.jackhuang.hmcl.util.Immutable; import org.jackhuang.hmcl.util.Validation; +import java.util.Map; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetDownloadTask.java index b9fe2ca2b..20decc4e2 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetDownloadTask.java @@ -17,15 +17,7 @@ */ package org.jackhuang.hmcl.download.game; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; import org.jackhuang.hmcl.download.AbstractDependencyManager; -import org.jackhuang.hmcl.game.AssetIndexInfo; import org.jackhuang.hmcl.game.AssetObject; import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.task.FileDownloadTask; @@ -35,6 +27,14 @@ import org.jackhuang.hmcl.util.FileUtils; import org.jackhuang.hmcl.util.Logging; import org.jackhuang.hmcl.util.NetworkUtils; +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.logging.Level; + /** * * @author huangyuhui @@ -71,7 +71,7 @@ public final class GameAssetDownloadTask extends Task { } @Override - public void execute() throws Exception { + public void execute() { int size = refreshTask.getResult().size(); for (Map.Entry entry : refreshTask.getResult()) { File file = entry.getKey(); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetIndexDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetIndexDownloadTask.java index ab4b1095b..ab6a10ffc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetIndexDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetIndexDownloadTask.java @@ -17,10 +17,6 @@ */ package org.jackhuang.hmcl.download.game; -import java.io.File; -import java.io.IOException; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.AbstractDependencyManager; import org.jackhuang.hmcl.game.AssetIndexInfo; import org.jackhuang.hmcl.game.Version; @@ -29,6 +25,11 @@ import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.FileUtils; import org.jackhuang.hmcl.util.NetworkUtils; +import java.io.File; +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; + /** * This task is to download asset index file provided in minecraft.json. * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetRefreshTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetRefreshTask.java index 496746166..239e7d7a0 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetRefreshTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameAssetRefreshTask.java @@ -17,10 +17,6 @@ */ package org.jackhuang.hmcl.download.game; -import java.io.File; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.AbstractDependencyManager; import org.jackhuang.hmcl.game.AssetIndex; import org.jackhuang.hmcl.game.AssetIndexInfo; @@ -32,6 +28,11 @@ import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.FileUtils; import org.jackhuang.hmcl.util.Pair; +import java.io.File; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + /** * This task is to extract all asset objects described in asset index json. * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameDownloadTask.java index bd7f66fe0..0b50ed692 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameDownloadTask.java @@ -17,15 +17,16 @@ */ package org.jackhuang.hmcl.download.game; -import java.io.File; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.DefaultDependencyManager; import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.task.FileDownloadTask; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.NetworkUtils; +import java.io.File; +import java.util.LinkedList; +import java.util.List; + /** * * @author huangyuhui @@ -46,7 +47,7 @@ public final class GameDownloadTask extends Task { } @Override - public void execute() throws Exception { + public void execute() { File jar = dependencyManager.getGameRepository().getVersionJar(version); dependencies.add(new FileDownloadTask( diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLibrariesTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLibrariesTask.java index c58c58c03..1535b7034 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLibrariesTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLibrariesTask.java @@ -17,9 +17,6 @@ */ package org.jackhuang.hmcl.download.game; -import java.io.File; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.AbstractDependencyManager; import org.jackhuang.hmcl.game.Library; import org.jackhuang.hmcl.game.Version; @@ -27,6 +24,10 @@ import org.jackhuang.hmcl.task.FileDownloadTask; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.NetworkUtils; +import java.io.File; +import java.util.LinkedList; +import java.util.List; + /** * This task is to download game libraries. * This task should be executed last(especially after game downloading, Forge, LiteLoader and OptiFine install task). @@ -56,7 +57,7 @@ public final class GameLibrariesTask extends Task { } @Override - public void execute() throws Exception { + public void execute() { version.getLibraries().stream().filter(Library::appliesToCurrentEnvironment).forEach(library -> { File file = dependencyManager.getGameRepository().getLibraryFile(version, library); if (!file.exists()) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLoggingDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLoggingDownloadTask.java index 261c84558..4e9deedd1 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLoggingDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameLoggingDownloadTask.java @@ -17,10 +17,6 @@ */ package org.jackhuang.hmcl.download.game; -import java.io.File; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.DependencyManager; import org.jackhuang.hmcl.game.DownloadType; import org.jackhuang.hmcl.game.LoggingInfo; @@ -29,6 +25,11 @@ import org.jackhuang.hmcl.task.FileDownloadTask; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.NetworkUtils; +import java.io.File; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + /** * This task is to download log4j configuration file provided in minecraft.json. * @@ -57,7 +58,7 @@ public final class GameLoggingDownloadTask extends Task { } @Override - public void execute() throws Exception { + public void execute() { if (version.getLogging() == null || !version.getLogging().containsKey(DownloadType.CLIENT)) return; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java index 747604c7f..7ee39cfce 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersion.java @@ -19,12 +19,13 @@ package org.jackhuang.hmcl.download.game; import com.google.gson.JsonParseException; import com.google.gson.annotations.SerializedName; -import java.util.Date; import org.jackhuang.hmcl.game.ReleaseType; import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.StringUtils; import org.jackhuang.hmcl.util.Validation; +import java.util.Date; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersionTag.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersionTag.java index b872d56e1..7ef53c4b4 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersionTag.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersionTag.java @@ -17,10 +17,11 @@ */ package org.jackhuang.hmcl.download.game; -import java.util.Date; import org.jackhuang.hmcl.game.ReleaseType; import org.jackhuang.hmcl.util.Immutable; +import java.util.Date; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersions.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersions.java index e7eb2129f..43503ad7e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersions.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameRemoteVersions.java @@ -18,9 +18,10 @@ package org.jackhuang.hmcl.download.game; import com.google.gson.annotations.SerializedName; +import org.jackhuang.hmcl.util.Immutable; + import java.util.Collections; import java.util.List; -import org.jackhuang.hmcl.util.Immutable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java index 48f89cfe3..92469c5fe 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java @@ -17,8 +17,6 @@ */ package org.jackhuang.hmcl.download.game; -import java.util.Collection; -import java.util.Collections; import org.jackhuang.hmcl.download.DownloadProvider; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.VersionList; @@ -28,6 +26,9 @@ import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.NetworkUtils; import org.jackhuang.hmcl.util.VersionNumber; +import java.util.Collection; +import java.util.Collections; + /** * * @author huangyuhui @@ -49,7 +50,7 @@ public final class GameVersionList extends VersionList { } @Override - public void execute() throws Exception { + public void execute() { versions.clear(); GameRemoteVersions root = Constants.GSON.fromJson(task.getResult(), GameRemoteVersions.class); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonDownloadTask.java index 01d559356..de0228502 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonDownloadTask.java @@ -17,10 +17,6 @@ */ package org.jackhuang.hmcl.download.game; -import java.net.Proxy; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.DefaultDependencyManager; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.VersionList; @@ -28,6 +24,11 @@ import org.jackhuang.hmcl.task.GetTask; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.NetworkUtils; +import java.net.Proxy; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + /** * * @author huangyuhui @@ -59,7 +60,7 @@ public final class VersionJsonDownloadTask extends Task { } @Override - public void execute() throws Exception { + public void execute() { RemoteVersion remoteVersion = gameVersionList.getVersions(gameVersion).stream().findFirst() .orElseThrow(() -> new IllegalStateException("Cannot find specific version " + gameVersion + " in remote repository")); String jsonURL = dependencyManager.getDownloadProvider().injectURL(remoteVersion.getUrl()); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonSaveTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonSaveTask.java index 37f27f160..5fdeb1f01 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonSaveTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/VersionJsonSaveTask.java @@ -17,14 +17,15 @@ */ package org.jackhuang.hmcl.download.game; -import java.io.File; -import java.io.IOException; import org.jackhuang.hmcl.game.DefaultGameRepository; import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.FileUtils; +import java.io.File; +import java.io.IOException; + /** * This task is to save the version json. * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderBranch.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderBranch.java index 938437d35..850a5cdac 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderBranch.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderBranch.java @@ -18,11 +18,12 @@ package org.jackhuang.hmcl.download.liteloader; import com.google.gson.annotations.SerializedName; +import org.jackhuang.hmcl.game.Library; +import org.jackhuang.hmcl.util.Immutable; + import java.util.Collection; import java.util.Collections; import java.util.Map; -import org.jackhuang.hmcl.game.Library; -import org.jackhuang.hmcl.util.Immutable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java index 575410199..92678a0f7 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderInstallTask.java @@ -17,15 +17,9 @@ */ package org.jackhuang.hmcl.download.liteloader; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.DefaultDependencyManager; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.game.GameLibrariesTask; -import org.jackhuang.hmcl.game.Arguments; import org.jackhuang.hmcl.game.LibrariesDownloadInfo; import org.jackhuang.hmcl.game.Library; import org.jackhuang.hmcl.game.LibraryDownloadInfo; @@ -34,6 +28,11 @@ import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.task.TaskResult; import org.jackhuang.hmcl.util.Lang; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + /** * Note: LiteLoader must be installed after Forge. * @@ -89,7 +88,7 @@ public final class LiteLoaderInstallTask extends TaskResult { } @Override - public void execute() throws Exception { + public void execute() { Library library = new Library( "com.mumfrey", "liteloader", remote.getSelfVersion(), null, "http://dl.liteloader.com/versions/", diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderRemoteVersionTag.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderRemoteVersionTag.java index 8fc3ef640..4629755fe 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderRemoteVersionTag.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderRemoteVersionTag.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.download.liteloader; +import org.jackhuang.hmcl.game.Library; + import java.util.Collection; import java.util.Collections; -import org.jackhuang.hmcl.game.Library; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderVersion.java index 95bc3ba11..31bd892bb 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderVersion.java @@ -17,11 +17,12 @@ */ package org.jackhuang.hmcl.download.liteloader; -import java.util.Collection; -import java.util.Collections; import org.jackhuang.hmcl.game.Library; import org.jackhuang.hmcl.util.Immutable; +import java.util.Collection; +import java.util.Collections; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderVersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderVersionList.java index e883f8e3b..4bd9fa1c7 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderVersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/liteloader/LiteLoaderVersionList.java @@ -17,9 +17,6 @@ */ package org.jackhuang.hmcl.download.liteloader; -import java.util.Collection; -import java.util.Collections; -import java.util.Map; import org.jackhuang.hmcl.download.DownloadProvider; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.VersionList; @@ -29,6 +26,10 @@ import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.NetworkUtils; import org.jackhuang.hmcl.util.VersionNumber; +import java.util.Collection; +import java.util.Collections; +import java.util.Map; + /** * * @author huangyuhui @@ -50,7 +51,7 @@ public final class LiteLoaderVersionList extends VersionList { } @Override - public void execute() throws Exception { + public void execute() { versions.clear(); Set duplicates = new HashSet<>(); List root = Constants.GSON.fromJson(task.getResult(), new TypeToken>() { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineDownloadFormatter.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineDownloadFormatter.java index ece0a5843..f2ac81f38 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineDownloadFormatter.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineDownloadFormatter.java @@ -17,11 +17,12 @@ */ package org.jackhuang.hmcl.download.optifine; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import org.jackhuang.hmcl.task.TaskResult; import org.jackhuang.hmcl.util.NetworkUtils; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java index 3ae5734cd..f8b5e00ca 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineInstallTask.java @@ -17,26 +17,20 @@ */ package org.jackhuang.hmcl.download.optifine; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.DefaultDependencyManager; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.VersionList; import org.jackhuang.hmcl.download.game.GameLibrariesTask; -import org.jackhuang.hmcl.game.Argument; -import org.jackhuang.hmcl.game.Arguments; -import org.jackhuang.hmcl.game.LibrariesDownloadInfo; -import org.jackhuang.hmcl.game.Library; -import org.jackhuang.hmcl.game.LibraryDownloadInfo; -import org.jackhuang.hmcl.game.StringArgument; -import org.jackhuang.hmcl.game.Version; +import org.jackhuang.hmcl.game.*; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.task.TaskResult; import org.jackhuang.hmcl.util.Lang; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + /** * Note: OptiFine should be installed in the end. * @@ -97,7 +91,7 @@ public final class OptiFineInstallTask extends TaskResult { } @Override - public void execute() throws Exception { + public void execute() { Library library = new Library( "net.optifine", "optifine", remoteVersion, null, null, new LibrariesDownloadInfo(new LibraryDownloadInfo( diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineVersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineVersionList.java index e993a7042..659cec84b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineVersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/optifine/OptiFineVersionList.java @@ -17,13 +17,6 @@ */ package org.jackhuang.hmcl.download.optifine; -import java.io.ByteArrayInputStream; -import java.util.Collection; -import java.util.Collections; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; import org.jackhuang.hmcl.download.DownloadProvider; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.VersionList; @@ -34,6 +27,14 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.ByteArrayInputStream; +import java.util.Collection; +import java.util.Collections; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventBus.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventBus.java index f7c761c09..0b64d6bd5 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventBus.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventBus.java @@ -18,7 +18,6 @@ package org.jackhuang.hmcl.event; import java.util.HashMap; -import org.jackhuang.hmcl.task.Schedulers; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventManager.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventManager.java index eaa4716eb..efda37653 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventManager.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventManager.java @@ -17,12 +17,11 @@ */ package org.jackhuang.hmcl.event; +import org.jackhuang.hmcl.util.SimpleMultimap; + import java.util.EnumMap; import java.util.HashSet; import java.util.function.Consumer; -import org.jackhuang.hmcl.task.Scheduler; -import org.jackhuang.hmcl.task.Schedulers; -import org.jackhuang.hmcl.util.SimpleMultimap; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/FailedEvent.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/FailedEvent.java index 7fe1676b3..288bdfb1e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/FailedEvent.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/FailedEvent.java @@ -17,8 +17,6 @@ */ package org.jackhuang.hmcl.event; -import java.util.EventObject; - /** * * @author huang diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/JVMLaunchFailedEvent.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/JVMLaunchFailedEvent.java index 5027ef5af..dcc851a4c 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/JVMLaunchFailedEvent.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/JVMLaunchFailedEvent.java @@ -17,7 +17,6 @@ */ package org.jackhuang.hmcl.event; -import java.util.EventObject; import org.jackhuang.hmcl.util.ManagedProcess; /** diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/LoadedOneVersionEvent.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/LoadedOneVersionEvent.java index a91c84668..4c778a5f0 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/LoadedOneVersionEvent.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/LoadedOneVersionEvent.java @@ -19,8 +19,6 @@ package org.jackhuang.hmcl.event; import org.jackhuang.hmcl.game.Version; -import java.util.EventObject; - /** * This event gets fired when a minecraft version has been loaded. *
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/ProcessExitedAbnormallyEvent.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/ProcessExitedAbnormallyEvent.java index 7f55d7289..b0d526c0a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/ProcessExitedAbnormallyEvent.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/ProcessExitedAbnormallyEvent.java @@ -17,7 +17,6 @@ */ package org.jackhuang.hmcl.event; -import java.util.EventObject; import org.jackhuang.hmcl.util.ManagedProcess; /** diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/ProcessStoppedEvent.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/ProcessStoppedEvent.java index c56456a1e..4fc0271ea 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/ProcessStoppedEvent.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/ProcessStoppedEvent.java @@ -17,7 +17,6 @@ */ package org.jackhuang.hmcl.event; -import java.util.EventObject; import org.jackhuang.hmcl.util.ManagedProcess; /** diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/RefreshedVersionsEvent.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/RefreshedVersionsEvent.java index 00bad8d3d..53f57623d 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/RefreshedVersionsEvent.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/RefreshedVersionsEvent.java @@ -17,8 +17,6 @@ */ package org.jackhuang.hmcl.event; -import java.util.EventObject; - /** * This event gets fired when all the versions in .minecraft folder are loaded. *
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/RefreshingVersionsEvent.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/RefreshingVersionsEvent.java index bff041e22..101dab30e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/RefreshingVersionsEvent.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/RefreshingVersionsEvent.java @@ -17,8 +17,6 @@ */ package org.jackhuang.hmcl.event; -import java.util.EventObject; - /** * This event gets fired when loading versions in a .minecraft folder. *
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Argument.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Argument.java index ab119fbe3..9a76cb4c2 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Argument.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Argument.java @@ -17,17 +17,12 @@ */ package org.jackhuang.hmcl.game; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; +import com.google.gson.*; +import org.jackhuang.hmcl.util.Immutable; + import java.lang.reflect.Type; import java.util.List; import java.util.Map; -import org.jackhuang.hmcl.util.Immutable; /** * @@ -45,7 +40,7 @@ public interface Argument extends Cloneable { */ List toString(Map keys, Map features); - public static class Serializer implements JsonDeserializer, JsonSerializer { + class Serializer implements JsonDeserializer, JsonSerializer { public static final Serializer INSTANCE = new Serializer(); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java index f22b0d083..dd28189c1 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java @@ -18,16 +18,13 @@ package org.jackhuang.hmcl.game; import com.google.gson.annotations.SerializedName; -import java.util.Arrays; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; import org.jackhuang.hmcl.util.Immutable; import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.OperatingSystem; +import java.util.*; +import java.util.stream.Collectors; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/AssetIndex.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/AssetIndex.java index b01c3d5c8..c5eb0df61 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/AssetIndex.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/AssetIndex.java @@ -18,6 +18,7 @@ package org.jackhuang.hmcl.game; import com.google.gson.annotations.SerializedName; + import java.util.Collections; import java.util.HashMap; import java.util.Map; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/CompatibilityRule.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/CompatibilityRule.java index 043356af3..f16be7c66 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/CompatibilityRule.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/CompatibilityRule.java @@ -17,11 +17,12 @@ */ package org.jackhuang.hmcl.game; +import org.jackhuang.hmcl.util.Immutable; + import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Objects; -import org.jackhuang.hmcl.util.Immutable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java index e4b3af5eb..7cea4e497 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java @@ -19,18 +19,17 @@ package org.jackhuang.hmcl.game; import com.google.gson.JsonParseException; import com.google.gson.JsonSyntaxException; -import java.io.File; -import java.io.IOException; -import java.util.*; -import java.util.logging.Level; - import org.jackhuang.hmcl.event.*; import org.jackhuang.hmcl.task.Schedulers; import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.FileUtils; -import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.Logging; +import java.io.File; +import java.io.IOException; +import java.util.*; +import java.util.logging.Level; + /** * An implementation of classic Minecraft game repository. * @@ -279,7 +278,7 @@ public class DefaultGameRepository implements GameRepository { return assetsDir; String assetIndexContent = FileUtils.readText(indexFile); - AssetIndex index = (AssetIndex) Constants.GSON.fromJson(assetIndexContent, AssetIndex.class); + AssetIndex index = Constants.GSON.fromJson(assetIndexContent, AssetIndex.class); if (index == null) return assetsDir; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/LaunchOptions.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/LaunchOptions.java index 9c454bd3c..bb6167776 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/LaunchOptions.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/LaunchOptions.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.game; +import org.jackhuang.hmcl.util.JavaVersion; + import java.io.File; import java.io.Serializable; -import org.jackhuang.hmcl.util.JavaVersion; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/LibrariesDownloadInfo.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/LibrariesDownloadInfo.java index 094ed9462..ed3999e7f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/LibrariesDownloadInfo.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/LibrariesDownloadInfo.java @@ -17,10 +17,11 @@ */ package org.jackhuang.hmcl.game; +import org.jackhuang.hmcl.util.Immutable; + import java.util.Collections; import java.util.HashMap; import java.util.Map; -import org.jackhuang.hmcl.util.Immutable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java index 8c12b64be..8a5dabcda 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java @@ -17,25 +17,17 @@ */ package org.jackhuang.hmcl.game; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonNull; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; +import com.google.gson.*; import com.google.gson.reflect.TypeToken; +import org.jackhuang.hmcl.util.Constants; +import org.jackhuang.hmcl.util.OperatingSystem; +import org.jackhuang.hmcl.util.Platform; + import java.lang.reflect.Type; import java.util.List; import java.util.Map; import java.util.Optional; -import org.jackhuang.hmcl.util.Constants; -import org.jackhuang.hmcl.util.Lang; -import org.jackhuang.hmcl.util.OperatingSystem; -import org.jackhuang.hmcl.util.Platform; - /** * A class that describes a Minecraft dependency. * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/OSRestriction.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/OSRestriction.java index 94b150618..2e8d1c09a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/OSRestriction.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/OSRestriction.java @@ -17,10 +17,11 @@ */ package org.jackhuang.hmcl.game; -import java.util.regex.Pattern; import org.jackhuang.hmcl.util.Lang; import org.jackhuang.hmcl.util.OperatingSystem; +import java.util.regex.Pattern; + /** * * @author huangyuhui @@ -70,8 +71,7 @@ public final class OSRestriction { return false; if (arch != null) - if (Lang.test(() -> !Pattern.compile(arch).matcher(OperatingSystem.SYSTEM_ARCHITECTURE).matches())) - return false; + return !Lang.test(() -> !Pattern.compile(arch).matcher(OperatingSystem.SYSTEM_ARCHITECTURE).matches()); return true; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java index da17bc5af..b93d03b9f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/ReleaseType.java @@ -31,7 +31,7 @@ public enum ReleaseType { private final String id; - private ReleaseType(String id) { + ReleaseType(String id) { this.id = id; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/RuledArgument.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/RuledArgument.java index 6636b6ba2..3dfb93350 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/RuledArgument.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/RuledArgument.java @@ -17,21 +17,16 @@ */ package org.jackhuang.hmcl.game; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; +import com.google.gson.*; import com.google.gson.reflect.TypeToken; +import org.jackhuang.hmcl.util.Immutable; + import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import org.jackhuang.hmcl.util.Immutable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/StringArgument.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/StringArgument.java index 9c28522fc..02aff228e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/StringArgument.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/StringArgument.java @@ -17,12 +17,13 @@ */ package org.jackhuang.hmcl.game; +import org.jackhuang.hmcl.util.Immutable; + import java.util.Collections; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.jackhuang.hmcl.util.Immutable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java index b1f4e165b..ad210e64b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Version.java @@ -18,23 +18,10 @@ package org.jackhuang.hmcl.game; import com.google.gson.JsonParseException; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; +import org.jackhuang.hmcl.util.*; + +import java.util.*; import java.util.logging.Level; -import org.jackhuang.hmcl.util.Constants; -import org.jackhuang.hmcl.util.Immutable; -import org.jackhuang.hmcl.util.Lang; -import org.jackhuang.hmcl.util.Logging; -import org.jackhuang.hmcl.util.StringUtils; -import org.jackhuang.hmcl.util.Validation; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java index f955b0c07..16ee0e66e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java @@ -17,32 +17,15 @@ */ package org.jackhuang.hmcl.launch; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; +import org.jackhuang.hmcl.auth.AuthInfo; +import org.jackhuang.hmcl.game.*; +import org.jackhuang.hmcl.task.TaskResult; +import org.jackhuang.hmcl.util.*; + +import java.io.*; import java.util.*; import java.util.function.Supplier; import java.util.stream.Collectors; -import org.jackhuang.hmcl.auth.AuthInfo; -import org.jackhuang.hmcl.game.Argument; -import org.jackhuang.hmcl.game.Arguments; -import org.jackhuang.hmcl.game.DownloadType; -import org.jackhuang.hmcl.game.GameRepository; -import org.jackhuang.hmcl.game.LaunchOptions; -import org.jackhuang.hmcl.game.Library; -import org.jackhuang.hmcl.game.LoggingInfo; -import org.jackhuang.hmcl.task.TaskResult; -import org.jackhuang.hmcl.util.CompressingUtils; -import org.jackhuang.hmcl.util.FileUtils; -import org.jackhuang.hmcl.util.JavaVersion; -import org.jackhuang.hmcl.util.Lang; -import org.jackhuang.hmcl.util.Log4jLevel; -import org.jackhuang.hmcl.util.ManagedProcess; -import org.jackhuang.hmcl.util.OperatingSystem; -import org.jackhuang.hmcl.util.Pair; -import org.jackhuang.hmcl.util.StringUtils; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/ExitWaiter.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/ExitWaiter.java index 8e9ac791d..aacd4817f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/ExitWaiter.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/ExitWaiter.java @@ -17,10 +17,6 @@ */ package org.jackhuang.hmcl.launch; -import java.util.Collection; -import java.util.List; -import java.util.function.BiConsumer; -import java.util.stream.Collectors; import org.jackhuang.hmcl.event.EventBus; import org.jackhuang.hmcl.event.JVMLaunchFailedEvent; import org.jackhuang.hmcl.event.ProcessExitedAbnormallyEvent; @@ -29,6 +25,11 @@ import org.jackhuang.hmcl.util.Log4jLevel; import org.jackhuang.hmcl.util.ManagedProcess; import org.jackhuang.hmcl.util.StringUtils; +import java.util.Collection; +import java.util.List; +import java.util.function.BiConsumer; +import java.util.stream.Collectors; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Launcher.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Launcher.java index ce7870e7d..6a0331c53 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Launcher.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Launcher.java @@ -17,16 +17,16 @@ */ package org.jackhuang.hmcl.launch; -import java.io.File; -import java.io.IOException; -import java.util.List; import org.jackhuang.hmcl.auth.AuthInfo; -import org.jackhuang.hmcl.game.GameException; import org.jackhuang.hmcl.game.GameRepository; import org.jackhuang.hmcl.game.LaunchOptions; import org.jackhuang.hmcl.game.Version; import org.jackhuang.hmcl.util.ManagedProcess; +import java.io.File; +import java.io.IOException; +import java.util.List; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Log4jHandler.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Log4jHandler.java index 0aae2b3a4..26544e4a9 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Log4jHandler.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/Log4jHandler.java @@ -17,12 +17,6 @@ */ package org.jackhuang.hmcl.launch; -import java.io.*; -import java.util.Date; -import java.util.Optional; -import java.util.concurrent.Future; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.BiConsumer; import org.jackhuang.hmcl.task.Schedulers; import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.Lang; @@ -35,6 +29,16 @@ import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.helpers.XMLReaderFactory; +import java.io.IOException; +import java.io.InterruptedIOException; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.util.Date; +import java.util.Optional; +import java.util.concurrent.Future; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiConsumer; + /** * This class is to parse log4j classic XML layout logging, * since only vanilla Minecraft will enable this layout. @@ -106,7 +110,7 @@ final class Log4jHandler extends Thread { private boolean readingMessage = false; @Override - public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { + public void startElement(String uri, String localName, String qName, Attributes attributes) { switch (localName) { case "log4j_Event": message = new StringBuilder(); @@ -131,7 +135,7 @@ final class Log4jHandler extends Thread { } @Override - public void endElement(String uri, String localName, String qName) throws SAXException { + public void endElement(String uri, String localName, String qName) { switch (localName) { case "log4j_Event": callback.accept("[" + date + "] [" + thread + "/" + level.name() + "] [" + logger + "] " + message.toString(), level); @@ -143,7 +147,7 @@ final class Log4jHandler extends Thread { } @Override - public void characters(char[] ch, int start, int length) throws SAXException { + public void characters(char[] ch, int start, int length) { String line = new String(ch, start, length); if (line.trim().isEmpty()) return; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/StreamPump.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/StreamPump.java index 2bc61b891..bfb1a9d89 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/StreamPump.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/StreamPump.java @@ -17,14 +17,15 @@ */ package org.jackhuang.hmcl.launch; +import org.jackhuang.hmcl.util.Constants; +import org.jackhuang.hmcl.util.Logging; + import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.function.Consumer; import java.util.logging.Level; -import org.jackhuang.hmcl.util.Constants; -import org.jackhuang.hmcl.util.Logging; /** * Pump the given input stream. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseCompletionTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseCompletionTask.java index 6e4f65ea4..3fa64a3eb 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseCompletionTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseCompletionTask.java @@ -17,6 +17,12 @@ */ package org.jackhuang.hmcl.mod; +import org.jackhuang.hmcl.download.DefaultDependencyManager; +import org.jackhuang.hmcl.game.GameRepository; +import org.jackhuang.hmcl.task.FileDownloadTask; +import org.jackhuang.hmcl.task.Task; +import org.jackhuang.hmcl.util.*; + import java.io.File; import java.util.Collection; import java.util.LinkedList; @@ -24,16 +30,6 @@ import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.stream.Collectors; -import org.jackhuang.hmcl.download.DefaultDependencyManager; -import org.jackhuang.hmcl.game.GameRepository; -import org.jackhuang.hmcl.task.FileDownloadTask; -import org.jackhuang.hmcl.task.Task; -import org.jackhuang.hmcl.util.Constants; -import org.jackhuang.hmcl.util.FileUtils; -import org.jackhuang.hmcl.util.Lang; -import org.jackhuang.hmcl.util.Logging; -import org.jackhuang.hmcl.util.NetworkUtils; -import org.jackhuang.hmcl.util.StringUtils; /** * Complete the CurseForge version. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseInstallTask.java index d511a0b82..acd541136 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseInstallTask.java @@ -17,16 +17,17 @@ */ package org.jackhuang.hmcl.mod; -import java.io.File; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.download.DefaultDependencyManager; import org.jackhuang.hmcl.download.GameBuilder; import org.jackhuang.hmcl.game.DefaultGameRepository; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.util.CompressingUtils; +import java.io.File; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + /** * Install a downloaded CurseForge modpack. * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifest.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifest.java index 893b99061..91fb1ec0b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifest.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifest.java @@ -19,17 +19,16 @@ package org.jackhuang.hmcl.mod; import com.google.gson.JsonParseException; import com.google.gson.annotations.SerializedName; +import org.jackhuang.hmcl.util.CompressingUtils; +import org.jackhuang.hmcl.util.Constants; +import org.jackhuang.hmcl.util.Immutable; + import java.io.File; import java.io.IOException; import java.util.Collections; import java.util.List; import java.util.Optional; -import org.jackhuang.hmcl.util.CompressingUtils; -import org.jackhuang.hmcl.util.Constants; -import org.jackhuang.hmcl.util.Immutable; -import org.jackhuang.hmcl.util.Lang; - /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifestFile.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifestFile.java index 818c9eabe..4b009f212 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifestFile.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifestFile.java @@ -19,11 +19,12 @@ package org.jackhuang.hmcl.mod; import com.google.gson.JsonParseException; import com.google.gson.annotations.SerializedName; -import java.net.URL; import org.jackhuang.hmcl.util.Immutable; import org.jackhuang.hmcl.util.NetworkUtils; import org.jackhuang.hmcl.util.Validation; +import java.net.URL; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifestMinecraft.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifestMinecraft.java index f3243e42a..255b21c4a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifestMinecraft.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/CurseManifestMinecraft.java @@ -19,13 +19,14 @@ package org.jackhuang.hmcl.mod; import com.google.gson.JsonParseException; import com.google.gson.annotations.SerializedName; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; import org.jackhuang.hmcl.util.Immutable; import org.jackhuang.hmcl.util.StringUtils; import org.jackhuang.hmcl.util.Validation; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/ForgeModMetadata.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/ForgeModMetadata.java index ff3bfc5c7..abc5cd947 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/ForgeModMetadata.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/ForgeModMetadata.java @@ -20,10 +20,6 @@ package org.jackhuang.hmcl.mod; import com.google.gson.JsonParseException; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; -import java.io.File; -import java.io.IOException; -import java.util.List; - import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipFile; import org.jackhuang.hmcl.util.Constants; @@ -31,6 +27,10 @@ import org.jackhuang.hmcl.util.IOUtils; import org.jackhuang.hmcl.util.Immutable; import org.jackhuang.hmcl.util.StringUtils; +import java.io.File; +import java.io.IOException; +import java.util.List; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/LiteModMetadata.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/LiteModMetadata.java index dd16fde6e..30c21866b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/LiteModMetadata.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/LiteModMetadata.java @@ -18,13 +18,14 @@ package org.jackhuang.hmcl.mod; import com.google.gson.JsonParseException; +import org.jackhuang.hmcl.util.Constants; +import org.jackhuang.hmcl.util.IOUtils; +import org.jackhuang.hmcl.util.Immutable; + import java.io.File; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import org.jackhuang.hmcl.util.Constants; -import org.jackhuang.hmcl.util.IOUtils; -import org.jackhuang.hmcl.util.Immutable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java new file mode 100644 index 000000000..db595621c --- /dev/null +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MinecraftInstanceTask.java @@ -0,0 +1,21 @@ +/* + * Hello Minecraft! Launcher. + * Copyright (C) 2017 huangyuhui + * + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see {http://www.gnu.org/licenses/}. + */ +package org.jackhuang.hmcl.mod; + +public class MinecraftInstanceTask { +} diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/ModInfo.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/ModInfo.java index 5ab3223e7..6be125427 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/ModInfo.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/ModInfo.java @@ -17,11 +17,12 @@ */ package org.jackhuang.hmcl.mod; -import java.io.File; import org.jackhuang.hmcl.util.FileUtils; import org.jackhuang.hmcl.util.ImmediateBooleanProperty; import org.jackhuang.hmcl.util.StringUtils; +import java.io.File; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCInstanceConfiguration.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCInstanceConfiguration.java index 97172583c..aab6ab4d5 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCInstanceConfiguration.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCInstanceConfiguration.java @@ -17,17 +17,16 @@ */ package org.jackhuang.hmcl.mod; +import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; +import org.apache.commons.compress.archivers.zip.ZipFile; +import org.jackhuang.hmcl.util.StringUtils; + import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Optional; import java.util.Properties; -import org.apache.commons.compress.archivers.zip.ZipFile; -import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; -import org.jackhuang.hmcl.util.Lang; -import org.jackhuang.hmcl.util.StringUtils; - /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCInstancePatch.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCInstancePatch.java index 749916544..022970cef 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCInstancePatch.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCInstancePatch.java @@ -18,11 +18,12 @@ package org.jackhuang.hmcl.mod; import com.google.gson.annotations.SerializedName; +import org.jackhuang.hmcl.game.Library; +import org.jackhuang.hmcl.util.Immutable; + import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.jackhuang.hmcl.game.Library; -import org.jackhuang.hmcl.util.Immutable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java index b58f81baa..9d2d684d2 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java @@ -17,10 +17,6 @@ */ package org.jackhuang.hmcl.mod; -import java.io.File; -import java.util.LinkedList; -import java.util.List; -import java.util.Objects; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipFile; import org.jackhuang.hmcl.download.DefaultDependencyManager; @@ -34,6 +30,11 @@ import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.IOUtils; import org.jackhuang.hmcl.util.Lang; +import java.io.File; +import java.util.LinkedList; +import java.util.List; +import java.util.Objects; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CoupleTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CoupleTask.java index c2e6971fa..074a25296 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CoupleTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CoupleTask.java @@ -17,12 +17,13 @@ */ package org.jackhuang.hmcl.task; +import org.jackhuang.hmcl.util.AutoTypingMap; + import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.function.Function; -import org.jackhuang.hmcl.util.AutoTypingMap; /** * A task that combines two tasks and make sure [pred] runs before succ. @@ -50,7 +51,7 @@ final class CoupleTask

extends Task { } @Override - public void execute() throws Exception { + public void execute() { Task task = succ.apply(getVariables()); if (task != null) dependencies.add(task); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FileDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FileDownloadTask.java index c25584a4b..c1defe1dd 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FileDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FileDownloadTask.java @@ -17,6 +17,10 @@ */ package org.jackhuang.hmcl.task; +import org.jackhuang.hmcl.event.EventManager; +import org.jackhuang.hmcl.event.FailedEvent; +import org.jackhuang.hmcl.util.*; + import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -27,13 +31,6 @@ import java.net.Proxy; import java.net.URL; import java.security.MessageDigest; import java.util.logging.Level; -import org.jackhuang.hmcl.event.EventManager; -import org.jackhuang.hmcl.event.FailedEvent; -import org.jackhuang.hmcl.util.DigestUtils; -import org.jackhuang.hmcl.util.FileUtils; -import org.jackhuang.hmcl.util.IOUtils; -import org.jackhuang.hmcl.util.Logging; -import org.jackhuang.hmcl.util.NetworkUtils; /** * A task that can download a file online. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/GetTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/GetTask.java index 821070701..e6f0d8d47 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/GetTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/GetTask.java @@ -17,6 +17,11 @@ */ package org.jackhuang.hmcl.task; +import org.jackhuang.hmcl.util.Charsets; +import org.jackhuang.hmcl.util.IOUtils; +import org.jackhuang.hmcl.util.Logging; +import org.jackhuang.hmcl.util.NetworkUtils; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; @@ -25,10 +30,6 @@ import java.net.Proxy; import java.net.URL; import java.nio.charset.Charset; import java.util.logging.Level; -import org.jackhuang.hmcl.util.Charsets; -import org.jackhuang.hmcl.util.IOUtils; -import org.jackhuang.hmcl.util.Logging; -import org.jackhuang.hmcl.util.NetworkUtils; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/ParallelTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/ParallelTask.java index 63d04d8ff..565cdb16c 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/ParallelTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/ParallelTask.java @@ -40,7 +40,7 @@ public final class ParallelTask extends Task { } @Override - public void execute() throws Exception { + public void execute() { } @Override diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Scheduler.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Scheduler.java index 7c6bbe432..e82712112 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Scheduler.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Scheduler.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.task; -import java.util.concurrent.Future; import org.jackhuang.hmcl.util.ExceptionalRunnable; +import java.util.concurrent.Future; + /** * Determines how a task is executed. * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SchedulerExecutorService.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SchedulerExecutorService.java index 8dc07b914..1667fbf5e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SchedulerExecutorService.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SchedulerExecutorService.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.task; +import org.jackhuang.hmcl.util.ExceptionalRunnable; + import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; -import org.jackhuang.hmcl.util.ExceptionalRunnable; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SchedulerImpl.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SchedulerImpl.java index 1a0f9374c..dea5fb472 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SchedulerImpl.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SchedulerImpl.java @@ -17,14 +17,14 @@ */ package org.jackhuang.hmcl.task; +import org.jackhuang.hmcl.util.ExceptionalRunnable; + import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; -import org.jackhuang.hmcl.util.ExceptionalRunnable; /** * @@ -83,7 +83,7 @@ class SchedulerImpl extends Scheduler { } @Override - public Void get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { + public Void get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException { latch.await(timeout, unit); return getImpl(); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Schedulers.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Schedulers.java index 9a4ac7921..2e4858dec 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Schedulers.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Schedulers.java @@ -17,11 +17,7 @@ */ package org.jackhuang.hmcl.task; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.SynchronousQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SimpleTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SimpleTask.java index aeb6a6221..f411c65ad 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SimpleTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/SimpleTask.java @@ -17,7 +17,6 @@ */ package org.jackhuang.hmcl.task; -import java.util.function.Consumer; import org.jackhuang.hmcl.util.AutoTypingMap; import org.jackhuang.hmcl.util.ExceptionalConsumer; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Task.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Task.java index 0c38b019a..e916662db 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Task.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Task.java @@ -17,20 +17,21 @@ */ package org.jackhuang.hmcl.task; +import javafx.beans.property.ReadOnlyDoubleProperty; +import javafx.beans.property.ReadOnlyDoubleWrapper; +import javafx.beans.property.ReadOnlyStringProperty; +import javafx.beans.property.ReadOnlyStringWrapper; +import org.jackhuang.hmcl.event.EventManager; +import org.jackhuang.hmcl.util.AutoTypingMap; +import org.jackhuang.hmcl.util.ExceptionalConsumer; +import org.jackhuang.hmcl.util.ExceptionalRunnable; +import org.jackhuang.hmcl.util.Properties; + import java.util.Collection; import java.util.Collections; import java.util.concurrent.Callable; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; -import javafx.beans.property.ReadOnlyDoubleProperty; -import javafx.beans.property.ReadOnlyDoubleWrapper; -import javafx.beans.property.ReadOnlyStringProperty; -import javafx.beans.property.ReadOnlyStringWrapper; -import org.jackhuang.hmcl.util.AutoTypingMap; -import org.jackhuang.hmcl.event.EventManager; -import org.jackhuang.hmcl.util.ExceptionalConsumer; -import org.jackhuang.hmcl.util.ExceptionalRunnable; -import org.jackhuang.hmcl.util.Properties; /** * Disposable task. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskCallable2.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskCallable2.java index f81179420..a8cfac016 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskCallable2.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskCallable2.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.task; -import java.util.function.Function; import org.jackhuang.hmcl.util.AutoTypingMap; +import java.util.function.Function; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskExecutor.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskExecutor.java index 67d655170..5b0d7c37e 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskExecutor.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/TaskExecutor.java @@ -17,6 +17,11 @@ */ package org.jackhuang.hmcl.task; +import org.jackhuang.hmcl.util.AutoTypingMap; +import org.jackhuang.hmcl.util.ExceptionalRunnable; +import org.jackhuang.hmcl.util.Lang; +import org.jackhuang.hmcl.util.Logging; + import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -27,10 +32,6 @@ import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; -import org.jackhuang.hmcl.util.AutoTypingMap; -import org.jackhuang.hmcl.util.ExceptionalRunnable; -import org.jackhuang.hmcl.util.Lang; -import org.jackhuang.hmcl.util.Logging; /** * @@ -210,7 +211,7 @@ public final class TaskExecutor { } @Override - public void run() throws Exception { + public void run() { try { Thread.currentThread().setName(task.getName()); if (!executeTask(task)) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/CompressingUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/CompressingUtils.java index e262e6dc8..8b7290378 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/CompressingUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/CompressingUtils.java @@ -17,21 +17,18 @@ */ package org.jackhuang.hmcl.util; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.function.BiFunction; -import java.util.function.Predicate; import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; import org.apache.commons.compress.archivers.zip.ZipFile; +import java.io.*; +import java.util.function.BiFunction; +import java.util.function.Predicate; + /** - * 文件压缩/解压类 + * Utilities of compressing * * @author huangyuhui */ @@ -43,8 +40,8 @@ public final class CompressingUtils { /** * Compress the given directory to a zip file. * - * @param src the source directory or a file. - * @param destZip the location of dest zip file. + * @param sourceDir the source directory or a file. + * @param zipFile the location of dest zip file. * @param pathNameCallback callback(pathName, isDirectory) returns your modified pathName * @throws IOException */ @@ -72,7 +69,7 @@ public final class CompressingUtils { private static void zipFile(File src, String basePath, ZipArchiveOutputStream zos, BiFunction pathNameCallback) throws IOException { File[] files = src.isDirectory() ? src.listFiles() : new File[] { src }; - String pathName;//存相对路径(相对于待压缩的根目录) + String pathName;// the relative path (relative to the root directory to be compressed) byte[] buf = new byte[IOUtils.DEFAULT_BUFFER_SIZE]; for (File file : files) if (file.isDirectory()) { @@ -183,7 +180,7 @@ public final class CompressingUtils { File dir = new File(strtemp); dir.mkdirs(); } else { - //建目录 + // create directories String strsubdir = gbkPath; for (int i = 0; i < strsubdir.length(); i++) if (strsubdir.substring(i, i + 1).equalsIgnoreCase("/")) { @@ -224,7 +221,7 @@ public final class CompressingUtils { * Read the text content of a file in zip. * * @param file the zip file - * @param location the location of the text in zip file, something like A/B/C/D.txt + * @param name the location of the text in zip file, something like A/B/C/D.txt * @return the content of given file. */ public static String readTextZipEntryQuietly(File file, String name) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Constants.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Constants.java index 935b1105d..804ba0d09 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Constants.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Constants.java @@ -19,18 +19,19 @@ package org.jackhuang.hmcl.util; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import java.awt.EventQueue; +import org.jackhuang.hmcl.game.Argument; +import org.jackhuang.hmcl.game.Library; +import org.jackhuang.hmcl.game.RuledArgument; +import org.jackhuang.hmcl.game.StringArgument; +import org.jackhuang.hmcl.task.Schedulers; + +import java.awt.*; import java.io.File; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; import java.util.function.Consumer; -import org.jackhuang.hmcl.game.Argument; -import org.jackhuang.hmcl.game.Library; -import org.jackhuang.hmcl.game.RuledArgument; -import org.jackhuang.hmcl.game.StringArgument; -import org.jackhuang.hmcl.task.Schedulers; /** * Constants. diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/DateTypeAdapter.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/DateTypeAdapter.java index bf2946555..c89b5e46a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/DateTypeAdapter.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/DateTypeAdapter.java @@ -17,14 +17,8 @@ */ package org.jackhuang.hmcl.util; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import com.google.gson.JsonSyntaxException; +import com.google.gson.*; + import java.lang.reflect.Type; import java.text.DateFormat; import java.text.ParseException; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ExceptionalRunnable.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ExceptionalRunnable.java index 0e937a218..22a07c84f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ExceptionalRunnable.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ExceptionalRunnable.java @@ -34,7 +34,7 @@ public interface ExceptionalRunnable { }; } - public static ExceptionalRunnable fromRunnable(Runnable r) { + static ExceptionalRunnable fromRunnable(Runnable r) { return r::run; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/FileTypeAdapter.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/FileTypeAdapter.java index 8482c49ee..4da93dd0d 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/FileTypeAdapter.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/FileTypeAdapter.java @@ -17,14 +17,8 @@ */ package org.jackhuang.hmcl.util; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonNull; -import com.google.gson.JsonParseException; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; +import com.google.gson.*; + import java.io.File; import java.lang.reflect.Type; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/FileUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/FileUtils.java index ad464573e..92ea8bfd3 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/FileUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/FileUtils.java @@ -17,12 +17,7 @@ */ package org.jackhuang.hmcl.util; -import java.io.File; -import java.io.FileFilter; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; +import java.io.*; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.StandardCopyOption; @@ -253,9 +248,7 @@ public final class FileUtils { public static boolean makeFile(File file) { if (!makeDirectory(file.getAbsoluteFile().getParentFile())) return false; - if (!file.exists() && !Lang.test(file::createNewFile)) - return false; - return true; + return file.exists() || Lang.test(file::createNewFile); } public static List listFilesByExtension(File file, String extension) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Hex.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Hex.java index 6feeec8f2..d3fc7ebb7 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Hex.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Hex.java @@ -91,7 +91,7 @@ public final class Hex { public Object decode(Object object) throws Exception { try { - char[] charArray = (object instanceof String) ? ((String) object).toCharArray() : (char[]) (char[]) object; + char[] charArray = (object instanceof String) ? ((String) object).toCharArray() : (char[]) object; return decodeHex(charArray); } catch (ClassCastException e) { throw new Exception(e.getMessage(), e); @@ -105,7 +105,7 @@ public final class Hex { public Object encode(Object object) throws Exception { try { - byte[] byteArray = (object instanceof String) ? ((String) object).getBytes(getCharset()) : (byte[]) (byte[]) object; + byte[] byteArray = (object instanceof String) ? ((String) object).getBytes(getCharset()) : (byte[]) object; return encodeHex(byteArray); } catch (ClassCastException e) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java index 26e5f20f5..ad79ad4b7 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java @@ -17,11 +17,7 @@ */ package org.jackhuang.hmcl.util; -import java.io.ByteArrayOutputStream; -import java.io.Closeable; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; +import java.io.*; import java.nio.charset.Charset; /** @@ -61,7 +57,7 @@ public final class IOUtils { return readFully(stream).toString(); } - public static String readFullyAsString(InputStream stream, Charset charset) throws IOException { + public static String readFullyAsString(InputStream stream, Charset charset) { return Lang.invoke(() -> readFully(stream).toString(charset.name())); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateBooleanProperty.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateBooleanProperty.java index 42929c8d2..3d3fcd19d 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateBooleanProperty.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateBooleanProperty.java @@ -17,12 +17,13 @@ */ package org.jackhuang.hmcl.util; -import java.util.Objects; -import java.util.function.Consumer; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; +import java.util.Objects; +import java.util.function.Consumer; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateDoubleProperty.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateDoubleProperty.java index 76599a7d2..eb63b057d 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateDoubleProperty.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateDoubleProperty.java @@ -18,12 +18,13 @@ package org.jackhuang.hmcl.util; -import java.util.Objects; -import java.util.function.Consumer; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; +import java.util.Objects; +import java.util.function.Consumer; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateIntegerProperty.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateIntegerProperty.java index bfe707364..485c2f0be 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateIntegerProperty.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateIntegerProperty.java @@ -17,12 +17,13 @@ */ package org.jackhuang.hmcl.util; -import java.util.Objects; -import java.util.function.Consumer; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; +import java.util.Objects; +import java.util.function.Consumer; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateObjectProperty.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateObjectProperty.java index a71365f1b..f2172724a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateObjectProperty.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateObjectProperty.java @@ -17,12 +17,13 @@ */ package org.jackhuang.hmcl.util; -import java.util.Objects; -import java.util.function.Consumer; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; +import java.util.Objects; +import java.util.function.Consumer; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateStringProperty.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateStringProperty.java index 0b17dc039..a78883dbc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateStringProperty.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ImmediateStringProperty.java @@ -17,12 +17,13 @@ */ package org.jackhuang.hmcl.util; -import java.util.Objects; -import java.util.function.Consumer; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; +import java.util.Objects; +import java.util.function.Consumer; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/JavaVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/JavaVersion.java index 2f4f30d9a..87e2c5b90 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/JavaVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/JavaVersion.java @@ -17,16 +17,8 @@ */ package org.jackhuang.hmcl.util; -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Serializable; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.util.*; import java.util.concurrent.CountDownLatch; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -210,7 +202,7 @@ public final class JavaVersion implements Serializable { return res; } - private static List queryWindows() throws IOException, InterruptedException { + private static List queryWindows() { LinkedList res = new LinkedList<>(); Lang.ignoringException(() -> res.addAll(queryRegisterKey("HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\"))); Lang.ignoringException(() -> res.addAll(queryRegisterKey("HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\"))); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Lang.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Lang.java index 22f8246b2..0389eb9a3 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Lang.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Lang.java @@ -5,14 +5,7 @@ */ package org.jackhuang.hmcl.util; -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -75,7 +68,7 @@ public final class Lang { return r -> invoke(function, r); } - public static Function liftFunction(ExceptionalFunction function) throws E { + public static Function liftFunction(ExceptionalFunction function) { return hideFunction(function); } @@ -103,7 +96,7 @@ public final class Lang { return () -> invoke(supplier); } - public static Supplier liftException(ExceptionalSupplier supplier) throws E { + public static Supplier liftException(ExceptionalSupplier supplier) { return hideException(supplier); } @@ -130,7 +123,7 @@ public final class Lang { return it -> invokeConsumer(consumer, it); } - public static Consumer liftConsumer(ExceptionalConsumer consumer) throws E { + public static Consumer liftConsumer(ExceptionalConsumer consumer) { return hideConsumer(consumer); } @@ -163,7 +156,7 @@ public final class Lang { return () -> invoke(r); } - public static Runnable liftException(ExceptionalRunnable r) throws E { + public static Runnable liftException(ExceptionalRunnable r) { return hideException(r); } @@ -197,7 +190,7 @@ public final class Lang { public static Optional convert(Object o, Class clazz) { if (o == null || !ReflectionHelper.isInstance(clazz, o)) - return Optional.empty(); + return Optional.empty(); else return Optional.of((V) o); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Log4jLevel.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Log4jLevel.java index c113874e4..65932914c 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Log4jLevel.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Log4jLevel.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.util; +import javafx.scene.paint.Color; + import java.util.regex.Matcher; import java.util.regex.Pattern; -import javafx.scene.paint.Color; /** * @@ -37,7 +38,7 @@ public enum Log4jLevel { private final int level; private final Color color; - private Log4jLevel(int level, Color color) { + Log4jLevel(int level, Color color) { this.level = level; this.color = color; } @@ -123,7 +124,7 @@ public enum Log4jLevel { } public static boolean isError(Log4jLevel a) { - return a == null ? false : a.lessOrEqual(Log4jLevel.ERROR); + return a != null && a.lessOrEqual(Log4jLevel.ERROR); } public static Log4jLevel mergeLevel(Log4jLevel a, Log4jLevel b) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Logging.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Logging.java index 100f955d0..a47db2690 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Logging.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Logging.java @@ -21,14 +21,8 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.text.MessageFormat; -import java.text.SimpleDateFormat; import java.util.Date; -import java.util.logging.ConsoleHandler; -import java.util.logging.FileHandler; -import java.util.logging.Formatter; -import java.util.logging.Level; -import java.util.logging.LogRecord; -import java.util.logging.Logger; +import java.util.logging.*; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/LowerCaseEnumTypeAdapterFactory.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/LowerCaseEnumTypeAdapterFactory.java index 8737856fc..a31a8d038 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/LowerCaseEnumTypeAdapterFactory.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/LowerCaseEnumTypeAdapterFactory.java @@ -24,6 +24,7 @@ import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; + import java.io.IOException; import java.util.HashMap; import java.util.Locale; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ManagedProcess.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ManagedProcess.java index 4dbaa924e..b32d58baa 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ManagedProcess.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ManagedProcess.java @@ -17,14 +17,7 @@ */ package org.jackhuang.hmcl.util; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Queue; +import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; /** diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/NetworkUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/NetworkUtils.java index e7d08fe20..bdd6d7c2b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/NetworkUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/NetworkUtils.java @@ -17,6 +17,10 @@ */ package org.jackhuang.hmcl.util; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.X509TrustManager; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -25,15 +29,11 @@ import java.net.Proxy; import java.net.URL; import java.security.GeneralSecurityException; import java.security.SecureRandom; -import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.Map; import java.util.Objects; import java.util.function.Supplier; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; + import static org.jackhuang.hmcl.util.StringUtils.*; /** @@ -47,11 +47,11 @@ public final class NetworkUtils { private static final X509TrustManager XTM = new X509TrustManager() { @Override - public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException { + public void checkClientTrusted(X509Certificate[] xcs, String string) { } @Override - public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException { + public void checkServerTrusted(X509Certificate[] xcs, String string) { } @Override diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/OperatingSystem.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/OperatingSystem.java index 4012e6213..abe9af5d2 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/OperatingSystem.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/OperatingSystem.java @@ -17,12 +17,13 @@ */ package org.jackhuang.hmcl.util; +import javafx.scene.input.Clipboard; +import javafx.scene.input.ClipboardContent; + import java.io.File; import java.lang.management.ManagementFactory; import java.nio.charset.Charset; import java.util.Locale; -import javafx.scene.input.Clipboard; -import javafx.scene.input.ClipboardContent; /** * Represents the operating system. @@ -49,7 +50,7 @@ public enum OperatingSystem { private final String checkedName; - private OperatingSystem(String checkedName) { + OperatingSystem(String checkedName) { this.checkedName = checkedName; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Pair.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Pair.java index e231465f4..e7b2ce92d 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Pair.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Pair.java @@ -74,9 +74,7 @@ public class Pair implements Map.Entry { final Pair other = (Pair) obj; if (!Objects.equals(this.key, other.key)) return false; - if (!Objects.equals(this.value, other.value)) - return false; - return true; + return Objects.equals(this.value, other.value); } @Override diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Platform.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Platform.java index 44a4876b4..012650951 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Platform.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Platform.java @@ -17,13 +17,8 @@ */ package org.jackhuang.hmcl.util; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; +import com.google.gson.*; + import java.lang.reflect.Type; /** @@ -39,7 +34,7 @@ public enum Platform { private final String bit; - private Platform(String bit) { + Platform(String bit) { this.bit = bit; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Properties.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Properties.java index 9984397e0..f88b7203a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Properties.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Properties.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.util; -import java.util.concurrent.atomic.AtomicReference; import javafx.beans.property.Property; +import java.util.concurrent.atomic.AtomicReference; + /** * * @author huangyuhui diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ReflectionHelper.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ReflectionHelper.java index f7400f039..8aac0aecf 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ReflectionHelper.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ReflectionHelper.java @@ -17,18 +17,15 @@ */ package org.jackhuang.hmcl.util; -import java.lang.reflect.AccessibleObject; -import java.lang.reflect.Constructor; -import java.lang.reflect.Executable; -import java.lang.reflect.Field; -import java.lang.reflect.Method; +import sun.misc.Unsafe; + +import java.lang.reflect.*; import java.security.AccessController; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.Arrays; import java.util.Map; import java.util.Optional; -import sun.misc.Unsafe; /** * diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/UUIDTypeAdapter.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/UUIDTypeAdapter.java index 7973f7cfd..193b9db0c 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/UUIDTypeAdapter.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/UUIDTypeAdapter.java @@ -20,6 +20,7 @@ package org.jackhuang.hmcl.util; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; + import java.io.IOException; import java.util.UUID; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ValidationTypeAdapterFactory.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ValidationTypeAdapterFactory.java index 62121ca56..c64f20cd6 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ValidationTypeAdapterFactory.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ValidationTypeAdapterFactory.java @@ -23,6 +23,7 @@ import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; + import java.io.IOException; /** diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ZipEngine.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ZipEngine.java index 93b6003f7..b844247e9 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ZipEngine.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/ZipEngine.java @@ -49,23 +49,23 @@ public class ZipEngine implements Closeable { } /** - * 功能:把 sourceDir 目录下的所有文件进行 zip 格式的压缩,保存为指定 zip 文件 + * Compress all the files in sourceDir * - * @param sourceDir 源文件夹 + * @param sourceDir the directory to be compressed. * @param pathNameCallback callback(pathName, isDirectory) returns your * modified pathName * - * @throws java.io.IOException 压缩失败或无法读取 + * @throws java.io.IOException if unable to compress or read files. */ public void putDirectory(File sourceDir, BiFunction pathNameCallback) throws IOException { putDirectoryImpl(sourceDir, sourceDir.isDirectory() ? sourceDir.getPath() : sourceDir.getParent(), pathNameCallback); } /** - * 将文件压缩成zip文件 + * Compress all the files in sourceDir * - * @param source zip文件路径 - * @param basePath 待压缩文件根目录 + * @param source the file in basePath to be compressed + * @param basePath the root directory to be compressed. * @param pathNameCallback callback(pathName, isDirectory) returns your * modified pathName, null if you dont want this file zipped */ @@ -78,7 +78,7 @@ public class ZipEngine implements Closeable { if (files == null) return; - String pathName;//存相对路径(相对于待压缩的根目录) + String pathName; // the relative path (relative to basePath) for (File file : files) if (file.isDirectory()) { pathName = file.getPath().substring(basePath.length() + 1) diff --git a/build.gradle b/build.gradle index 8674f2872..92f3ec1c8 100644 --- a/build.gradle +++ b/build.gradle @@ -20,8 +20,6 @@ group 'org.jackhuang' version '3.0' buildscript { - ext.kotlin_version = '1.1.51' - repositories { mavenCentral() } @@ -39,7 +37,6 @@ allprojects { version '3.0' apply plugin: 'java' - apply plugin: 'kotlin' apply plugin: 'idea' repositories { @@ -50,9 +47,8 @@ allprojects { sourceCompatibility = 1.8 dependencies { - compile "com.google.code.gson:gson:2.8.1" - compile "org.apache.commons:commons-compress:1.8.1" - compile "org.tukaani:xz:1.6" + compile "com.google.code.gson:gson:2.8.2" + compile "org.apache.commons:commons-compress:1.15" testCompile group: 'junit', name: 'junit', version: '4.12' }