diff --git a/Launcher/runtime/config.js b/Launcher/runtime/config.js
index a7a8f56..0bfe117 100644
--- a/Launcher/runtime/config.js
+++ b/Launcher/runtime/config.js
@@ -1,32 +1,32 @@
// ====== LAUNCHER CONFIG ====== //
var config = {
- dir: "launcher", // Launcher directory
- title: "sashok724's Launcher", // Window title
- icons: [ "favicon.png" ], // Window icon paths
+ dir: "launcher", // Launcher directory
+ title: "sashok724's Launcher", // Window title
+ icons: [ "favicon.png" ], // Window icon paths
- // Auth config
- newsURL: "https://launcher.sashok724.net/", // News WebView URL
- linkText: "Бесплатные окна", // Text for link under "Auth" button
- linkURL: new java.net.URL("http://bit.ly/1SP0Rl8"), // URL for link under "Auth" button
+ // Auth config
+ newsURL: "https://launcher.sashok724.net/", // News WebView URL
+ linkText: "Бесплатные окна", // Text for link under "Auth" button
+ linkURL: new java.net.URL("http://bit.ly/1SP0Rl8"), // URL for link under "Auth" button
- // Settings defaults
- settingsMagic: 0xC0DE5, // Ancient magic, don't touch
- autoEnterDefault: false, // Should autoEnter be enabled by default?
- fullScreenDefault: false, // Should fullScreen be enabled by default?
- ramDefault: 1024, // Default RAM amount (0 for auto)
+ // Settings defaults
+ settingsMagic: 0xC0DE5, // Ancient magic, don't touch
+ autoEnterDefault: false, // Should autoEnter be enabled by default?
+ fullScreenDefault: false, // Should fullScreen be enabled by default?
+ ramDefault: 1024, // Default RAM amount (0 for auto)
- // Custom JRE config (!!! DON'T CHANGE !!!)
- jvmMustdie32Dir: "jre-8u92-win32", jvmMustdie64Dir: "jre-8u92-win64",
- jvmLinux32Dir: "jre-8u92-linux32", jvmLinux64Dir: "jre-8u92-linux64",
- jvmMacOSXDir: "jre-8u92-macosx", jvmUnknownDir: "jre-8u92-unknown"
+ // Custom JRE config (!!! DON'T CHANGE !!!)
+ jvmMustdie32Dir: "jre-8u131-win32", jvmMustdie64Dir: "jre-8u131-win64",
+ jvmLinux32Dir: "jre-8u131-linux32", jvmLinux64Dir: "jre-8u131-linux64",
+ jvmMacOSXDir: "jre-8u131-macosx", jvmUnknownDir: "jre-8u131-unknown"
};
// ====== DON'T TOUCH! ====== //
var dir = IOHelper.HOME_DIR.resolve(config.dir);
if (!IOHelper.isDir(dir)) {
- java.nio.file.Files.createDirectory(dir);
+ java.nio.file.Files.createDirectory(dir);
}
var defaultUpdatesDir = dir.resolve("updates");
if (!IOHelper.isDir(defaultUpdatesDir)) {
- java.nio.file.Files.createDirectory(defaultUpdatesDir);
+ java.nio.file.Files.createDirectory(defaultUpdatesDir);
}
diff --git a/Launcher/runtime/dialog/dialog.css b/Launcher/runtime/dialog/dialog.css
index 70b2a07..754b02a 100644
--- a/Launcher/runtime/dialog/dialog.css
+++ b/Launcher/runtime/dialog/dialog.css
@@ -2,40 +2,40 @@
/* Header styles */
#layout {
- -fx-background-color: white;
+ -fx-background-color: white;
}
/* Auth pane styles */
#layout > #authPane > #password.hasSaved {
- -fx-prompt-text-fill: black;
+ -fx-prompt-text-fill: black;
}
#layout > #authPane > #profiles > .arrow-button {
- -fx-padding: 0;
+ -fx-padding: 0;
}
#layout > #authPane > #profiles > .arrow-button > .arrow {
- -fx-padding: 0;
- -fx-shape: none;
+ -fx-padding: 0;
+ -fx-shape: none;
}
#layout > #authPane > #profiles > .list-cell {
- -fx-padding: 5px 5px 5px 8px;
+ -fx-padding: 5px 5px 5px 8px;
}
#layout > #authPane > #goSettings {
- -fx-padding: 0;
- -fx-graphic: url(settings.png);
+ -fx-padding: 0;
+ -fx-graphic: url(settings.png);
}
/* Overlay styles */
#layout > #dim {
- -fx-opacity: 0.0;
- -fx-background-color: rgba(0, 0, 0, 0.5);
+ -fx-opacity: 0.0;
+ -fx-background-color: rgba(0, 0, 0, 0.5);
}
#layout > #dim > #overlay {
- -fx-opacity: 0.0;
- -fx-background-color: white;
- -fx-background-radius: 5px;
+ -fx-opacity: 0.0;
+ -fx-background-color: white;
+ -fx-background-radius: 5px;
}
diff --git a/Launcher/runtime/dialog/dialog.fxml b/Launcher/runtime/dialog/dialog.fxml
index 91fd239..7455575 100644
--- a/Launcher/runtime/dialog/dialog.fxml
+++ b/Launcher/runtime/dialog/dialog.fxml
@@ -11,27 +11,27 @@
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
diff --git a/Launcher/runtime/dialog/overlay/debug/debug.css b/Launcher/runtime/dialog/overlay/debug/debug.css
index 5484a7e..66a02c2 100644
--- a/Launcher/runtime/dialog/overlay/debug/debug.css
+++ b/Launcher/runtime/dialog/overlay/debug/debug.css
@@ -2,45 +2,45 @@
/* Output */
#overlay > #output {
- -fx-background-color: white;
- -fx-font-family: monospace;
- -fx-font-size: 8pt;
+ -fx-background-color: white;
+ -fx-font-family: monospace;
+ -fx-font-size: 8pt;
}
#overlay > #output .content {
- -fx-background-color: white;
+ -fx-background-color: white;
}
/* Close button */
#overlay > #copy,
#overlay > #action.close {
- -fx-background-color: rgba(33,133,208,.5);
- -fx-text-fill: white;
+ -fx-background-color: rgba(33,133,208,.5);
+ -fx-text-fill: white;
}
#overlay > #copy:hover,
#overlay > #copy:focused,
#overlay > #action.close:hover,
#overlay > #action.close:focused {
- -fx-background-color: rgba(22,120,194,.5);
+ -fx-background-color: rgba(22,120,194,.5);
}
#overlay > #copy:pressed,
#overlay > #action.close:pressed {
- -fx-background-color: rgba(22,105,164,.5);
+ -fx-background-color: rgba(22,105,164,.5);
}
/* Kill button */
#overlay > #action.kill {
- -fx-background-color: rgba(219,40,40,.5);
- -fx-text-fill: white;
+ -fx-background-color: rgba(219,40,40,.5);
+ -fx-text-fill: white;
}
#overlay > #action.kill:hover,
#overlay > #action.kill:focused {
- -fx-background-color: rgba(202,16,16,.5);
+ -fx-background-color: rgba(202,16,16,.5);
}
#overlay > #action.kill:pressed {
- -fx-background-color: rgba(178,30,30,.5);
-}
\ No newline at end of file
+ -fx-background-color: rgba(178,30,30,.5);
+}
diff --git a/Launcher/runtime/dialog/overlay/debug/debug.fxml b/Launcher/runtime/dialog/overlay/debug/debug.fxml
index 29a93a1..db5ad2f 100644
--- a/Launcher/runtime/dialog/overlay/debug/debug.fxml
+++ b/Launcher/runtime/dialog/overlay/debug/debug.fxml
@@ -6,12 +6,12 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/Launcher/runtime/dialog/overlay/debug/debug.js b/Launcher/runtime/dialog/overlay/debug/debug.js
index bebabce..52d6037 100644
--- a/Launcher/runtime/dialog/overlay/debug/debug.js
+++ b/Launcher/runtime/dialog/overlay/debug/debug.js
@@ -1,97 +1,97 @@
var debug = {
- overlay: null, output: null, action: null, process: null,
+ overlay: null, output: null, action: null, process: null,
- initOverlay: function() {
- debug.overlay = loadFXML("dialog/overlay/debug/debug.fxml");
-
- // Lookup output
- debug.output = debug.overlay.lookup("#output");
- debug.output.setEditable(false);
-
- // Lookup copy button
- debug.copy = debug.overlay.lookup("#copy");
- debug.copy.setOnAction(function(event) {
- var content = new javafx.scene.input.ClipboardContent();
- content.putString(debug.output.getText());
-
- // Set clipboard content
- javafx.scene.input.Clipboard.getSystemClipboard().
- setContent(content);
- });
-
- /// Lookup action button
- debug.action = debug.overlay.lookup("#action");
- debug.action.setOnAction(function(event) {
- var process = debug.process;
- if (process !== null && process.isAlive()) {
- process.destroyForcibly();
- debug.updateActionButton(true);
- return;
- }
-
- // Hide overlay
- overlay.hide(0, null);
- });
- },
+ initOverlay: function() {
+ debug.overlay = loadFXML("dialog/overlay/debug/debug.fxml");
- resetOverlay: function() {
- debug.output.clear();
- debug.action.setText("");
- debug.action.getStyleClass().remove("kill");
- debug.action.getStyleClass().add("close");
- },
+ // Lookup output
+ debug.output = debug.overlay.lookup("#output");
+ debug.output.setEditable(false);
- append: function(text) {
- debug.output.appendText(text);
- },
-
- updateActionButton: function(forceClose) {
- var process = debug.process;
- var alive = !forceClose &&
- process !== null && process.isAlive();
-
- // Decide what we update to
- var text = alive ? "Убить" : "Закрыть";
- var addClass = alive ? "kill" : "close";
- var removeClass = alive ? "close" : "kill";
-
- // Update button
- debug.action.setText(text);
- debug.action.getStyleClass().remove(removeClass);
- debug.action.getStyleClass().add(addClass);
- }
+ // Lookup copy button
+ debug.copy = debug.overlay.lookup("#copy");
+ debug.copy.setOnAction(function(event) {
+ var content = new javafx.scene.input.ClipboardContent();
+ content.putString(debug.output.getText());
+
+ // Set clipboard content
+ javafx.scene.input.Clipboard.getSystemClipboard().
+ setContent(content);
+ });
+
+ /// Lookup action button
+ debug.action = debug.overlay.lookup("#action");
+ debug.action.setOnAction(function(event) {
+ var process = debug.process;
+ if (process !== null && process.isAlive()) {
+ process.destroyForcibly();
+ debug.updateActionButton(true);
+ return;
+ }
+
+ // Hide overlay
+ overlay.hide(0, null);
+ });
+ },
+
+ resetOverlay: function() {
+ debug.output.clear();
+ debug.action.setText("");
+ debug.action.getStyleClass().remove("kill");
+ debug.action.getStyleClass().add("close");
+ },
+
+ append: function(text) {
+ debug.output.appendText(text);
+ },
+
+ updateActionButton: function(forceClose) {
+ var process = debug.process;
+ var alive = !forceClose &&
+ process !== null && process.isAlive();
+
+ // Decide what we update to
+ var text = alive ? "Убить" : "Закрыть";
+ var addClass = alive ? "kill" : "close";
+ var removeClass = alive ? "close" : "kill";
+
+ // Update button
+ debug.action.setText(text);
+ debug.action.getStyleClass().remove(removeClass);
+ debug.action.getStyleClass().add(addClass);
+ }
};
/* Export functions */
function debugProcess(process) {
- debug.process = process;
- debug.updateActionButton(false);
-
- // Create new task
- var task = newTask(function() {
- var buffer = IOHelper.newCharBuffer();
- var reader = IOHelper.newReader(process.getInputStream(),
- java.nio.charset.Charset.defaultCharset());
- var appendFunction = function(line)
- javafx.application.Platform.runLater(function() debug.append(line));
- for (var length = reader.read(buffer); length >= 0; length = reader.read(buffer)) {
- appendFunction(new java.lang.String(buffer, 0, length));
- }
-
- // So we wait for exit code
- return process.waitFor();
- });
-
- // Set completion handlers
- task.setOnFailed(function(event) {
- debug.updateActionButton(true);
- debug.append(java.lang.System.lineSeparator() + task.getException());
- });
- task.setOnSucceeded(function(event) {
- debug.updateActionButton(false);
- debug.append(java.lang.System.lineSeparator() + "Exit code " + task.getValue());
- });
-
- // Gogogo
- startTask(task);
-}
\ No newline at end of file
+ debug.process = process;
+ debug.updateActionButton(false);
+
+ // Create new task
+ var task = newTask(function() {
+ var buffer = IOHelper.newCharBuffer();
+ var reader = IOHelper.newReader(process.getInputStream(),
+ java.nio.charset.Charset.defaultCharset());
+ var appendFunction = function(line)
+ javafx.application.Platform.runLater(function() debug.append(line));
+ for (var length = reader.read(buffer); length >= 0; length = reader.read(buffer)) {
+ appendFunction(new java.lang.String(buffer, 0, length));
+ }
+
+ // So we wait for exit code
+ return process.waitFor();
+ });
+
+ // Set completion handlers
+ task.setOnFailed(function(event) {
+ debug.updateActionButton(true);
+ debug.append(java.lang.System.lineSeparator() + task.getException());
+ });
+ task.setOnSucceeded(function(event) {
+ debug.updateActionButton(false);
+ debug.append(java.lang.System.lineSeparator() + "Exit code " + task.getValue());
+ });
+
+ // Gogogo
+ startTask(task);
+}
diff --git a/Launcher/runtime/dialog/overlay/processing/processing.css b/Launcher/runtime/dialog/overlay/processing/processing.css
index 13b4a33..1d9b100 100644
--- a/Launcher/runtime/dialog/overlay/processing/processing.css
+++ b/Launcher/runtime/dialog/overlay/processing/processing.css
@@ -2,10 +2,10 @@
/* Label */
#overlay > #description {
- -fx-font-size: 12pt;
- -fx-wrap-text: true;
+ -fx-font-size: 12pt;
+ -fx-wrap-text: true;
}
#overlay > #description.error {
- -fx-text-fill: red;
+ -fx-text-fill: red;
}
diff --git a/Launcher/runtime/dialog/overlay/processing/processing.fxml b/Launcher/runtime/dialog/overlay/processing/processing.fxml
index 828a4e1..2be2c7f 100644
--- a/Launcher/runtime/dialog/overlay/processing/processing.fxml
+++ b/Launcher/runtime/dialog/overlay/processing/processing.fxml
@@ -7,15 +7,15 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
diff --git a/Launcher/runtime/dialog/overlay/processing/processing.js b/Launcher/runtime/dialog/overlay/processing/processing.js
index 9a45cbb..885ced0 100644
--- a/Launcher/runtime/dialog/overlay/processing/processing.js
+++ b/Launcher/runtime/dialog/overlay/processing/processing.js
@@ -1,118 +1,118 @@
var processing = {
- overlay: null, spinner: null, description: null,
- processingImage: null, errorImage: null,
+ overlay: null, spinner: null, description: null,
+ processingImage: null, errorImage: null,
- initOverlay: function() {
- processing.overlay = loadFXML("dialog/overlay/processing/processing.fxml");
-
- // Lookup nodes
- processing.spinner = processing.overlay.lookup("#spinner");
- processing.description = processing.overlay.lookup("#description");
+ initOverlay: function() {
+ processing.overlay = loadFXML("dialog/overlay/processing/processing.fxml");
- // Set images
- processing.processingImage = new javafx.scene.image.Image(
- Launcher.getResourceURL("dialog/overlay/processing/spinner.gif").toString());
- processing.errorImage = new javafx.scene.image.Image(
- Launcher.getResourceURL("dialog/overlay/processing/error.png").toString());
- },
+ // Lookup nodes
+ processing.spinner = processing.overlay.lookup("#spinner");
+ processing.description = processing.overlay.lookup("#description");
- resetOverlay: function() {
- processing.spinner.setImage(processing.processingImage);
- processing.description.getStyleClass().remove("error");
- processing.description.setText("...");
- },
+ // Set images
+ processing.processingImage = new javafx.scene.image.Image(
+ Launcher.getResourceURL("dialog/overlay/processing/spinner.gif").toString());
+ processing.errorImage = new javafx.scene.image.Image(
+ Launcher.getResourceURL("dialog/overlay/processing/error.png").toString());
+ },
- setError: function(e) {
- LogHelper.error(e);
- processing.description.textProperty().unbind();
- processing.spinner.setImage(processing.errorImage);
- processing.description.getStyleClass().add("error");
- processing.description.setText(e.toString());
- },
+ resetOverlay: function() {
+ processing.spinner.setImage(processing.processingImage);
+ processing.description.getStyleClass().remove("error");
+ processing.description.setText("...");
+ },
- setTaskProperties: function(task, callback, errorCallback, hide) {
- processing.description.textProperty().bind(task.messageProperty());
- task.setOnFailed(function(event) {
- processing.description.textProperty().unbind();
- processing.setError(task.getException());
- if (hide) {
- overlay.hide(2500, errorCallback);
- } else if (errorCallback !== null) {
- errorCallback();
- }
- });
- task.setOnSucceeded(function(event) {
- processing.description.textProperty().unbind();
- if (callback !== null) {
- callback(task.getValue());
- }
- });
- }
+ setError: function(e) {
+ LogHelper.error(e);
+ processing.description.textProperty().unbind();
+ processing.spinner.setImage(processing.errorImage);
+ processing.description.getStyleClass().add("error");
+ processing.description.setText(e.toString());
+ },
+
+ setTaskProperties: function(task, callback, errorCallback, hide) {
+ processing.description.textProperty().bind(task.messageProperty());
+ task.setOnFailed(function(event) {
+ processing.description.textProperty().unbind();
+ processing.setError(task.getException());
+ if (hide) {
+ overlay.hide(2500, errorCallback);
+ } else if (errorCallback !== null) {
+ errorCallback();
+ }
+ });
+ task.setOnSucceeded(function(event) {
+ processing.description.textProperty().unbind();
+ if (callback !== null) {
+ callback(task.getValue());
+ }
+ });
+ }
};
function offlineLauncherRequest() {
- if (settings.lastSign === null || settings.lastProfiles.isEmpty()) {
- Request.requestError("Запуск в оффлайн-режиме невозможен");
- return;
- }
-
- // Verify launcher signature
- SecurityHelper.verifySign(LauncherRequest.BINARY_PATH,
- settings.lastSign, Launcher.getConfig().publicKey);
-
- // Return last sign and profiles
- return {
- sign: settings.lastSign,
- profiles: settings.lastProfiles
- };
+ if (settings.lastSign === null || settings.lastProfiles.isEmpty()) {
+ Request.requestError("Запуск в оффлайн-режиме невозможен");
+ return;
+ }
+
+ // Verify launcher signature
+ SecurityHelper.verifySign(LauncherRequest.BINARY_PATH,
+ settings.lastSign, Launcher.getConfig().publicKey);
+
+ // Return last sign and profiles
+ return {
+ sign: settings.lastSign,
+ profiles: settings.lastProfiles
+ };
}
function offlineAuthRequest(login) {
- return function() {
- if (!VerifyHelper.isValidUsername(login)) {
- Request.requestError("Имя пользователя некорректно");
- return;
- }
-
- // Return offline profile and random access token
- return {
- pp: PlayerProfile.newOfflineProfile(login),
- accessToken: SecurityHelper.randomStringToken()
- }
- };
+ return function() {
+ if (!VerifyHelper.isValidUsername(login)) {
+ Request.requestError("Имя пользователя некорректно");
+ return;
+ }
+
+ // Return offline profile and random access token
+ return {
+ pp: PlayerProfile.newOfflineProfile(login),
+ accessToken: SecurityHelper.randomStringToken()
+ }
+ };
}
/* Export functions */
function makeLauncherRequest(callback) {
- var task = settings.offline ? newTask(offlineLauncherRequest) :
- newRequestTask(new LauncherRequest());
-
- // Set task properties and start
- processing.setTaskProperties(task, callback, function() {
- if (settings.offline) {
- return;
- }
-
- // Repeat request, but in offline mode
- settings.offline = true;
- overlay.swap(2500, processing.overlay, function() makeLauncherRequest(callback));
- }, false);
- task.updateMessage("Обновление списка серверов");
- startTask(task);
+ var task = settings.offline ? newTask(offlineLauncherRequest) :
+ newRequestTask(new LauncherRequest());
+
+ // Set task properties and start
+ processing.setTaskProperties(task, callback, function() {
+ if (settings.offline) {
+ return;
+ }
+
+ // Repeat request, but in offline mode
+ settings.offline = true;
+ overlay.swap(2500, processing.overlay, function() makeLauncherRequest(callback));
+ }, false);
+ task.updateMessage("Обновление списка серверов");
+ startTask(task);
}
function makeAuthRequest(login, rsaPassword, callback) {
- var task = rsaPassword === null ? newTask(offlineAuthRequest(login)) :
- newRequestTask(new AuthRequest(login, rsaPassword));
- processing.setTaskProperties(task, callback, null, true);
- task.updateMessage("Авторизация на сервере");
- startTask(task);
+ var task = rsaPassword === null ? newTask(offlineAuthRequest(login)) :
+ newRequestTask(new AuthRequest(login, rsaPassword));
+ processing.setTaskProperties(task, callback, null, true);
+ task.updateMessage("Авторизация на сервере");
+ startTask(task);
}
function launchClient(jvmDir, jvmHDir, assetHDir, clientHDir, profile, params, callback) {
- var task = newTask(function() ClientLauncher.launch(jvmDir, jvmHDir, assetHDir, clientHDir,
- profile, params, LogHelper.isDebugEnabled()));
- processing.setTaskProperties(task, callback, null, true);
- task.updateMessage("Запуск выбранного клиента");
- startTask(task);
+ var task = newTask(function() ClientLauncher.launch(jvmDir, jvmHDir, assetHDir, clientHDir,
+ profile, params, LogHelper.isDebugEnabled()));
+ processing.setTaskProperties(task, callback, null, true);
+ task.updateMessage("Запуск выбранного клиента");
+ startTask(task);
}
diff --git a/Launcher/runtime/dialog/overlay/settings/settings.css b/Launcher/runtime/dialog/overlay/settings/settings.css
index e1defcc..bde3dd7 100644
--- a/Launcher/runtime/dialog/overlay/settings/settings.css
+++ b/Launcher/runtime/dialog/overlay/settings/settings.css
@@ -2,28 +2,28 @@
/* Labels */
#overlay > #settingsTitle {
- -fx-font-size: 14pt;
- -fx-alignment: baseline-center;
+ -fx-font-size: 14pt;
+ -fx-alignment: baseline-center;
}
#overlay #ramLabel,
#overlay #dirLabel {
- -fx-font-weight: bold;
+ -fx-font-weight: bold;
}
/* RAM slider */
#overlay > #ramSlider > .track {
- -fx-background-color: #D8E0E3;
- -fx-background-insets: none;
- -fx-background-radius: 2px;
- -fx-padding: 2px;
+ -fx-background-color: #D8E0E3;
+ -fx-background-insets: none;
+ -fx-background-radius: 2px;
+ -fx-padding: 2px;
}
#overlay > #ramSlider > .thumb {
- -fx-background-color: #3498DB;
- -fx-background-insets: none;
- -fx-background-radius: 5px;
- -fx-padding: 5px;
+ -fx-background-color: #3498DB;
+ -fx-background-insets: none;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
}
#overlay > #ramSlider:hover > .thumb {
@@ -36,15 +36,15 @@
/* Dir options */
#overlay > #deleteDir {
- -fx-background-color: #DB2828;
- -fx-text-fill: white;
+ -fx-background-color: #DB2828;
+ -fx-text-fill: white;
}
#overlay > #deleteDir:hover,
#overlay > #deleteDir:focused {
- -fx-background-color: #CA1010;
+ -fx-background-color: #CA1010;
}
#overlay > #deleteDir:pressed {
- -fx-background-color: #B21E1E;
+ -fx-background-color: #B21E1E;
}
diff --git a/Launcher/runtime/dialog/overlay/settings/settings.fxml b/Launcher/runtime/dialog/overlay/settings/settings.fxml
index 5342feb..4f70115 100644
--- a/Launcher/runtime/dialog/overlay/settings/settings.fxml
+++ b/Launcher/runtime/dialog/overlay/settings/settings.fxml
@@ -12,34 +12,34 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
- Выделение памяти:
-
-
-
-
+
+
+ Выделение памяти:
+
+
+
+
-
-
- Директория загрузок:
-
-
-
-
-
+
+
+ Директория загрузок:
+
+
+
+
+
-
-
-
+
+
+
diff --git a/Launcher/runtime/dialog/overlay/settings/settings.js b/Launcher/runtime/dialog/overlay/settings/settings.js
index b41590a..3f9ce9f 100644
--- a/Launcher/runtime/dialog/overlay/settings/settings.js
+++ b/Launcher/runtime/dialog/overlay/settings/settings.js
@@ -1,327 +1,327 @@
var settings = {
- file: dir.resolve("settings.bin"), // Settings file
- login: null, rsaPassword: null, profile: 0, // Auth
- updatesDir: null, autoEnter: false, fullScreen: false, ram: 0, // Client
-
- // Offline cache
- offline: false,
- lastSign: null,
- lastProfiles: new java.util.LinkedList(),
- lastHDirs: new java.util.HashMap(16),
+ file: dir.resolve("settings.bin"), // Settings file
+ login: null, rsaPassword: null, profile: 0, // Auth
+ updatesDir: null, autoEnter: false, fullScreen: false, ram: 0, // Client
- /* Settings and overlay functions */
- load: function() {
- LogHelper.debug("Loading settings file");
- try {
- tryWithResources(new HInput(IOHelper.newInput(settings.file)), settings.read);
- } catch(e) {
- LogHelper.error(e);
- settings.setDefault();
- }
- },
+ // Offline cache
+ offline: false,
+ lastSign: null,
+ lastProfiles: new java.util.LinkedList(),
+ lastHDirs: new java.util.HashMap(16),
- save: function() {
- LogHelper.debug("Saving settings file");
- try {
- tryWithResources(new HOutput(IOHelper.newOutput(settings.file)), settings.write);
- } catch(e) {
- LogHelper.error(e);
- }
- },
+ /* Settings and overlay functions */
+ load: function() {
+ LogHelper.debug("Loading settings file");
+ try {
+ tryWithResources(new HInput(IOHelper.newInput(settings.file)), settings.read);
+ } catch(e) {
+ LogHelper.error(e);
+ settings.setDefault();
+ }
+ },
- // Internal functions
- read: function(input) {
- var magic = input.readInt();
- if (magic != config.settingsMagic) {
- throw new java.io.IOException("Settings magic mismatch: " + java.lang.Integer.toString(magic, 16));
- }
-
- // Launcher settings
- var debug = input.readBoolean();
- if (!LogHelper.isDebugEnabled() && debug) {
- LogHelper.setDebugEnabled(true);
- }
+ save: function() {
+ LogHelper.debug("Saving settings file");
+ try {
+ tryWithResources(new HOutput(IOHelper.newOutput(settings.file)), settings.write);
+ } catch(e) {
+ LogHelper.error(e);
+ }
+ },
- // Auth settings
- settings.login = input.readBoolean() ? input.readString(255) : null;
- settings.rsaPassword = input.readBoolean() ? input.readByteArray(IOHelper.BUFFER_SIZE) : null;
- settings.profile = input.readLength(0);
+ // Internal functions
+ read: function(input) {
+ var magic = input.readInt();
+ if (magic != config.settingsMagic) {
+ throw new java.io.IOException("Settings magic mismatch: " + java.lang.Integer.toString(magic, 16));
+ }
- // Client settings
- settings.updatesDir = IOHelper.toPath(input.readString(0));
- settings.autoEnter = input.readBoolean();
- settings.fullScreen = input.readBoolean();
- settings.setRAM(input.readLength(JVMHelper.RAM));
-
- // Offline cache
- var publicKey = Launcher.getConfig().publicKey;
- settings.lastSign = input.readBoolean() ? input.readByteArray(-SecurityHelper.RSA_KEY_LENGTH) : null;
- settings.lastProfiles.clear();
- var lastProfilesCount = input.readLength(0);
- for (var i = 0; i < lastProfilesCount; i++) {
- settings.lastProfiles.add(new SignedObjectHolder(input, publicKey, ClientProfile.RO_ADAPTER));
- }
- settings.lastHDirs.clear();
- var lastHDirsCount = input.readLength(0);
- for (var i = 0; i < lastHDirsCount; i++) {
- var name = IOHelper.verifyFileName(input.readString(255));
- VerifyHelper.putIfAbsent(settings.lastHDirs, name, new SignedObjectHolder(input, publicKey, function(i) new HashedDir(i)),
- java.lang.String.format("Duplicate offline hashed dir: '%s'", name));
- }
+ // Launcher settings
+ var debug = input.readBoolean();
+ if (!LogHelper.isDebugEnabled() && debug) {
+ LogHelper.setDebugEnabled(true);
+ }
- // Apply CLI params
- cliParams.applySettings();
- },
+ // Auth settings
+ settings.login = input.readBoolean() ? input.readString(255) : null;
+ settings.rsaPassword = input.readBoolean() ? input.readByteArray(IOHelper.BUFFER_SIZE) : null;
+ settings.profile = input.readLength(0);
- write: function(output) {
- output.writeInt(config.settingsMagic);
-
- // Launcher settings
- output.writeBoolean(LogHelper.isDebugEnabled());
+ // Client settings
+ settings.updatesDir = IOHelper.toPath(input.readString(0));
+ settings.autoEnter = input.readBoolean();
+ settings.fullScreen = input.readBoolean();
+ settings.setRAM(input.readLength(JVMHelper.RAM));
- // Auth settings
- output.writeBoolean(settings.login !== null);
- if (settings.login !== null) {
- output.writeString(settings.login, 255);
- }
- output.writeBoolean(settings.rsaPassword !== null);
- if (settings.rsaPassword !== null) {
- output.writeByteArray(settings.rsaPassword, IOHelper.BUFFER_SIZE);
- }
- output.writeLength(settings.profile, 0);
-
- // Client settings
- output.writeString(IOHelper.toString(settings.updatesDir), 0);
- output.writeBoolean(settings.autoEnter);
- output.writeBoolean(settings.fullScreen);
- output.writeLength(settings.ram, JVMHelper.RAM);
-
- // Offline cache
- output.writeBoolean(settings.lastSign !== null);
- if (settings.lastSign !== null) {
- output.writeByteArray(settings.lastSign, -SecurityHelper.RSA_KEY_LENGTH);
- }
- output.writeLength(settings.lastProfiles.size(), 0);
- for each (var profile in settings.lastProfiles) {
- profile.write(output);
- }
- output.writeLength(settings.lastHDirs.size(), 0);
- for each (var entry in settings.lastHDirs.entrySet()) {
- output.writeString(entry.getKey(), 0);
- entry.getValue().write(output);
- }
- },
+ // Offline cache
+ var publicKey = Launcher.getConfig().publicKey;
+ settings.lastSign = input.readBoolean() ? input.readByteArray(-SecurityHelper.RSA_KEY_LENGTH) : null;
+ settings.lastProfiles.clear();
+ var lastProfilesCount = input.readLength(0);
+ for (var i = 0; i < lastProfilesCount; i++) {
+ settings.lastProfiles.add(new SignedObjectHolder(input, publicKey, ClientProfile.RO_ADAPTER));
+ }
+ settings.lastHDirs.clear();
+ var lastHDirsCount = input.readLength(0);
+ for (var i = 0; i < lastHDirsCount; i++) {
+ var name = IOHelper.verifyFileName(input.readString(255));
+ VerifyHelper.putIfAbsent(settings.lastHDirs, name, new SignedObjectHolder(input, publicKey, function(i) new HashedDir(i)),
+ java.lang.String.format("Duplicate offline hashed dir: '%s'", name));
+ }
- setDefault: function() {
- // Auth settings
- settings.login = null;
- settings.rsaPassword = null;
- settings.profile = 0;
+ // Apply CLI params
+ cliParams.applySettings();
+ },
- // Client settings
- settings.updatesDir = defaultUpdatesDir;
- settings.autoEnter = config.autoEnterDefault;
- settings.fullScreen = config.fullScreenDefault;
- settings.setRAM(config.ramDefault);
-
- // Offline cache
- settings.lastSign = null;
- settings.lastProfiles.clear();
- settings.lastHDirs.clear();
+ write: function(output) {
+ output.writeInt(config.settingsMagic);
- // Apply CLI params
- cliParams.applySettings();
- },
+ // Launcher settings
+ output.writeBoolean(LogHelper.isDebugEnabled());
- setPassword: function(password) {
- var encrypted = SecurityHelper.newRSAEncryptCipher(Launcher.getConfig().publicKey).doFinal(IOHelper.encode(password));
- settings.password = encrypted;
- return encrypted;
- },
+ // Auth settings
+ output.writeBoolean(settings.login !== null);
+ if (settings.login !== null) {
+ output.writeString(settings.login, 255);
+ }
+ output.writeBoolean(settings.rsaPassword !== null);
+ if (settings.rsaPassword !== null) {
+ output.writeByteArray(settings.rsaPassword, IOHelper.BUFFER_SIZE);
+ }
+ output.writeLength(settings.profile, 0);
- setRAM: function(ram) {
- settings.ram = java.lang.Math["min(int,int)"](((ram / 256) | 0) * 256, JVMHelper.RAM);
- },
+ // Client settings
+ output.writeString(IOHelper.toString(settings.updatesDir), 0);
+ output.writeBoolean(settings.autoEnter);
+ output.writeBoolean(settings.fullScreen);
+ output.writeLength(settings.ram, JVMHelper.RAM);
- /* ===================== OVERLAY ===================== */
- overlay: null, ramLabel: null, dirLabel: null,
- deleteDirPressedAgain: false,
+ // Offline cache
+ output.writeBoolean(settings.lastSign !== null);
+ if (settings.lastSign !== null) {
+ output.writeByteArray(settings.lastSign, -SecurityHelper.RSA_KEY_LENGTH);
+ }
+ output.writeLength(settings.lastProfiles.size(), 0);
+ for each (var profile in settings.lastProfiles) {
+ profile.write(output);
+ }
+ output.writeLength(settings.lastHDirs.size(), 0);
+ for each (var entry in settings.lastHDirs.entrySet()) {
+ output.writeString(entry.getKey(), 0);
+ entry.getValue().write(output);
+ }
+ },
- initOverlay: function() {
- settings.overlay = loadFXML("dialog/overlay/settings/settings.fxml");
+ setDefault: function() {
+ // Auth settings
+ settings.login = null;
+ settings.rsaPassword = null;
+ settings.profile = 0;
- // Lookup autoEnter checkbox
- var autoEnterBox = settings.overlay.lookup("#autoEnter");
- autoEnterBox.setSelected(settings.autoEnter);
- autoEnterBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
- function(o, ov, nv) settings.autoEnter = nv);
+ // Client settings
+ settings.updatesDir = defaultUpdatesDir;
+ settings.autoEnter = config.autoEnterDefault;
+ settings.fullScreen = config.fullScreenDefault;
+ settings.setRAM(config.ramDefault);
- // Lookup fullScreen checkbox
- var fullScreenBox = settings.overlay.lookup("#fullScreen");
- fullScreenBox.setSelected(settings.fullScreen);
- fullScreenBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
- function(o, ov, nv) settings.fullScreen = nv);
+ // Offline cache
+ settings.lastSign = null;
+ settings.lastProfiles.clear();
+ settings.lastHDirs.clear();
- // Lookup RAM label
- settings.ramLabel = settings.overlay.lookup("#ramLabel");
- settings.updateRAMLabel();
+ // Apply CLI params
+ cliParams.applySettings();
+ },
- // Lookup RAM slider options
- var ramSlider = settings.overlay.lookup("#ramSlider");
- ramSlider.setMin(0);
- ramSlider.setMax(JVMHelper.RAM);
- ramSlider.setSnapToTicks(true);
- ramSlider.setShowTickMarks(true);
- ramSlider.setShowTickLabels(true);
- ramSlider.setMinorTickCount(3);
- ramSlider.setMajorTickUnit(1024);
- ramSlider.setBlockIncrement(1024);
- ramSlider.setValue(settings.ram);
- ramSlider.valueProperty()["addListener(javafx.beans.value.ChangeListener)"](function(o, ov, nv) {
- settings.setRAM(nv);
- settings.updateRAMLabel();
- });
+ setPassword: function(password) {
+ var encrypted = SecurityHelper.newRSAEncryptCipher(Launcher.getConfig().publicKey).doFinal(IOHelper.encode(password));
+ settings.password = encrypted;
+ return encrypted;
+ },
- // Lookup dir label
- settings.dirLabel = settings.overlay.lookup("#dirLabel");
- settings.dirLabel.setOnAction(function(event)
- app.getHostServices().showDocument(settings.updatesDir.toUri()));
- settings.updateDirLabel();
+ setRAM: function(ram) {
+ settings.ram = java.lang.Math["min(int,int)"](((ram / 256) | 0) * 256, JVMHelper.RAM);
+ },
- // Lookup change dir button
- settings.overlay.lookup("#changeDir").setOnAction(function(event) {
- var chooser = new javafx.stage.DirectoryChooser();
- chooser.setTitle("Сменить директорию загрузок");
- chooser.setInitialDirectory(dir.toFile());
-
- // Set new result
- var newDir = chooser.showDialog(stage);
- if (newDir !== null) {
- settings.updatesDir = newDir.toPath();
- settings.updateDirLabel();
- }
- });
+ /* ===================== OVERLAY ===================== */
+ overlay: null, ramLabel: null, dirLabel: null,
+ deleteDirPressedAgain: false,
- // Lookup delete dir button
- var deleteDirButton = settings.overlay.lookup("#deleteDir");
- deleteDirButton.setOnAction(function(event) {
- if (!settings.deleteDirPressedAgain) {
- settings.deleteDirPressedAgain = true;
- deleteDirButton.setText("Подтвердить вменяемость");
- return;
- }
+ initOverlay: function() {
+ settings.overlay = loadFXML("dialog/overlay/settings/settings.fxml");
- // Delete dir!
- settings.deleteUpdatesDir();
- settings.deleteDirPressedAgain = false;
- deleteDirButton.setText("Ещё раз попробовать");
- });
-
- // Lookup debug checkbox
- var debugBox = settings.overlay.lookup("#debug");
- debugBox.setSelected(LogHelper.isDebugEnabled());
- debugBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
- function(o, ov, nv) LogHelper.setDebugEnabled(nv));
+ // Lookup autoEnter checkbox
+ var autoEnterBox = settings.overlay.lookup("#autoEnter");
+ autoEnterBox.setSelected(settings.autoEnter);
+ autoEnterBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
+ function(o, ov, nv) settings.autoEnter = nv);
- // Lookup apply settings button
- settings.overlay.lookup("#apply").setOnAction(function(event) overlay.hide(0, null));
- },
+ // Lookup fullScreen checkbox
+ var fullScreenBox = settings.overlay.lookup("#fullScreen");
+ fullScreenBox.setSelected(settings.fullScreen);
+ fullScreenBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
+ function(o, ov, nv) settings.fullScreen = nv);
- updateRAMLabel: function() {
- settings.ramLabel.setText(settings.ram <= 0 ? "Автоматически" : settings.ram + " MiB");
- },
+ // Lookup RAM label
+ settings.ramLabel = settings.overlay.lookup("#ramLabel");
+ settings.updateRAMLabel();
- deleteUpdatesDir: function() {
- processing.description.setText("Удаление директории загрузок");
- overlay.swap(0, processing.overlay, function(event) {
- var task = newTask(function() IOHelper.deleteDir(settings.updatesDir, false));
- task.setOnSucceeded(function(event) overlay.swap(0, settings.overlay, null));
- task.setOnFailed(function(event) {
- processing.setError(task.getException());
- overlay.swap(2500, settings.overlay, null);
- });
- startTask(task);
- });
- },
+ // Lookup RAM slider options
+ var ramSlider = settings.overlay.lookup("#ramSlider");
+ ramSlider.setMin(0);
+ ramSlider.setMax(JVMHelper.RAM);
+ ramSlider.setSnapToTicks(true);
+ ramSlider.setShowTickMarks(true);
+ ramSlider.setShowTickLabels(true);
+ ramSlider.setMinorTickCount(3);
+ ramSlider.setMajorTickUnit(1024);
+ ramSlider.setBlockIncrement(1024);
+ ramSlider.setValue(settings.ram);
+ ramSlider.valueProperty()["addListener(javafx.beans.value.ChangeListener)"](function(o, ov, nv) {
+ settings.setRAM(nv);
+ settings.updateRAMLabel();
+ });
- updateDirLabel: function() {
- settings.dirLabel.setText(IOHelper.toString(settings.updatesDir));
- }
+ // Lookup dir label
+ settings.dirLabel = settings.overlay.lookup("#dirLabel");
+ settings.dirLabel.setOnAction(function(event)
+ app.getHostServices().showDocument(settings.updatesDir.toUri()));
+ settings.updateDirLabel();
+
+ // Lookup change dir button
+ settings.overlay.lookup("#changeDir").setOnAction(function(event) {
+ var chooser = new javafx.stage.DirectoryChooser();
+ chooser.setTitle("Сменить директорию загрузок");
+ chooser.setInitialDirectory(dir.toFile());
+
+ // Set new result
+ var newDir = chooser.showDialog(stage);
+ if (newDir !== null) {
+ settings.updatesDir = newDir.toPath();
+ settings.updateDirLabel();
+ }
+ });
+
+ // Lookup delete dir button
+ var deleteDirButton = settings.overlay.lookup("#deleteDir");
+ deleteDirButton.setOnAction(function(event) {
+ if (!settings.deleteDirPressedAgain) {
+ settings.deleteDirPressedAgain = true;
+ deleteDirButton.setText("Подтвердить вменяемость");
+ return;
+ }
+
+ // Delete dir!
+ settings.deleteUpdatesDir();
+ settings.deleteDirPressedAgain = false;
+ deleteDirButton.setText("Ещё раз попробовать");
+ });
+
+ // Lookup debug checkbox
+ var debugBox = settings.overlay.lookup("#debug");
+ debugBox.setSelected(LogHelper.isDebugEnabled());
+ debugBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
+ function(o, ov, nv) LogHelper.setDebugEnabled(nv));
+
+ // Lookup apply settings button
+ settings.overlay.lookup("#apply").setOnAction(function(event) overlay.hide(0, null));
+ },
+
+ updateRAMLabel: function() {
+ settings.ramLabel.setText(settings.ram <= 0 ? "Автоматически" : settings.ram + " MiB");
+ },
+
+ deleteUpdatesDir: function() {
+ processing.description.setText("Удаление директории загрузок");
+ overlay.swap(0, processing.overlay, function(event) {
+ var task = newTask(function() IOHelper.deleteDir(settings.updatesDir, false));
+ task.setOnSucceeded(function(event) overlay.swap(0, settings.overlay, null));
+ task.setOnFailed(function(event) {
+ processing.setError(task.getException());
+ overlay.swap(2500, settings.overlay, null);
+ });
+ startTask(task);
+ });
+ },
+
+ updateDirLabel: function() {
+ settings.dirLabel.setText(IOHelper.toString(settings.updatesDir));
+ }
};
/* ====================== CLI PARAMS ===================== */
var cliParams = {
- login: null, password: null, profile: -1, autoLogin: false, // Auth
- updatesDir: null, autoEnter: null, fullScreen: null, ram: -1, // Client
- offline: false, // Offline
+ login: null, password: null, profile: -1, autoLogin: false, // Auth
+ updatesDir: null, autoEnter: null, fullScreen: null, ram: -1, // Client
+ offline: false, // Offline
- init: function(params) {
- var named = params.getNamed();
- var unnamed = params.getUnnamed();
+ init: function(params) {
+ var named = params.getNamed();
+ var unnamed = params.getUnnamed();
- // Read auth cli params
- cliParams.login = named.get("login");
- cliParams.password = named.get("password");
- var profile = named.get("profile");
- if (profile !== null) {
- cliParams.profile = java.lang.Integer.parseInt(profile);
- }
- cliParams.autoLogin = unnamed.contains("--autoLogin");
-
- // Read client cli params
- var updatesDir = named.get("updatesDir");
- if (updatesDir !== null) {
- cliParams.updatesDir = IOHelper.toPath(named.get("updatesDir"));
- }
- var autoEnter = named.get("autoEnter");
- if (autoEnter !== null) {
- cliParams.autoEnter = java.lang.Boolean.parseBoolean(autoEnter);
- }
- var fullScreen = named.get("fullScreen");
- if (fullScreen !== null) {
- cliParams.fullScreen = java.lang.Boolean.parseBoolean(fullScreen);
- }
- var ram = named.get("ram");
- if (ram !== null) {
- cliParams.ram = java.lang.Integer.parseInt(ram);
- }
-
- // Read offline cli param
- var offline = named.get("offline");
- if (offline !== null) {
- cliParams.offline = java.lang.Boolean.parseBoolean(offline);
- }
- },
+ // Read auth cli params
+ cliParams.login = named.get("login");
+ cliParams.password = named.get("password");
+ var profile = named.get("profile");
+ if (profile !== null) {
+ cliParams.profile = java.lang.Integer.parseInt(profile);
+ }
+ cliParams.autoLogin = unnamed.contains("--autoLogin");
- applySettings: function() {
- // Apply auth params
- if (cliParams.login !== null) {
- settings.login = cliParams.login;
- }
- if (cliParams.password !== null) {
- settings.setPassword(cliParams.password);
- }
- if (cliParams.profile >= 0) {
- settings.profile = cliParams.profile;
- }
-
- // Apply client params
- if (cliParams.updatesDir !== null) {
- settings.updatesDir = cliParams.updatesDir;
- }
- if (cliParams.autoEnter !== null) {
- settings.autoLogin = cliParams.autoEnter;
- }
- if (cliParams.fullScreen !== null) {
- settings.fullScreen = cliParams.fullScreen;
- }
- if (cliParams.ram >= 0) {
- settings.setRAM(cliParams.ram);
- }
-
- // Apply offline param
- if (cliParams.offline !== null) {
- settings.offline = cliParams.offline;
- }
- }
+ // Read client cli params
+ var updatesDir = named.get("updatesDir");
+ if (updatesDir !== null) {
+ cliParams.updatesDir = IOHelper.toPath(named.get("updatesDir"));
+ }
+ var autoEnter = named.get("autoEnter");
+ if (autoEnter !== null) {
+ cliParams.autoEnter = java.lang.Boolean.parseBoolean(autoEnter);
+ }
+ var fullScreen = named.get("fullScreen");
+ if (fullScreen !== null) {
+ cliParams.fullScreen = java.lang.Boolean.parseBoolean(fullScreen);
+ }
+ var ram = named.get("ram");
+ if (ram !== null) {
+ cliParams.ram = java.lang.Integer.parseInt(ram);
+ }
+
+ // Read offline cli param
+ var offline = named.get("offline");
+ if (offline !== null) {
+ cliParams.offline = java.lang.Boolean.parseBoolean(offline);
+ }
+ },
+
+ applySettings: function() {
+ // Apply auth params
+ if (cliParams.login !== null) {
+ settings.login = cliParams.login;
+ }
+ if (cliParams.password !== null) {
+ settings.setPassword(cliParams.password);
+ }
+ if (cliParams.profile >= 0) {
+ settings.profile = cliParams.profile;
+ }
+
+ // Apply client params
+ if (cliParams.updatesDir !== null) {
+ settings.updatesDir = cliParams.updatesDir;
+ }
+ if (cliParams.autoEnter !== null) {
+ settings.autoLogin = cliParams.autoEnter;
+ }
+ if (cliParams.fullScreen !== null) {
+ settings.fullScreen = cliParams.fullScreen;
+ }
+ if (cliParams.ram >= 0) {
+ settings.setRAM(cliParams.ram);
+ }
+
+ // Apply offline param
+ if (cliParams.offline !== null) {
+ settings.offline = cliParams.offline;
+ }
+ }
};
diff --git a/Launcher/runtime/dialog/overlay/update/update.css b/Launcher/runtime/dialog/overlay/update/update.css
index 34adc1e..3fd75fc 100644
--- a/Launcher/runtime/dialog/overlay/update/update.css
+++ b/Launcher/runtime/dialog/overlay/update/update.css
@@ -1,31 +1,31 @@
#overlay > #utitle {
- -fx-font-size: 14pt;
- -fx-alignment: baseline-center;
+ -fx-font-size: 14pt;
+ -fx-alignment: baseline-center;
}
#overlay > #description {
- -fx-alignment: top-left;
- -fx-wrap-text: true;
+ -fx-alignment: top-left;
+ -fx-wrap-text: true;
}
#overlay > #description.error {
- -fx-text-fill: red;
+ -fx-text-fill: red;
}
/* Progress bar */
#overlay > #progress {
- -fx-indeterminate-bar-flip: false;
+ -fx-indeterminate-bar-flip: false;
}
#overlay > #progress > .bar {
- -fx-background-color: #888888;
- -fx-background-insets: none;
- -fx-background-radius: 3px;
- -fx-padding: 0;
+ -fx-background-color: #888888;
+ -fx-background-insets: none;
+ -fx-background-radius: 3px;
+ -fx-padding: 0;
}
#overlay > #progress > .track {
- -fx-background-color: #E6E6E6;
- -fx-background-insets: none;
- -fx-background-radius: 3px;
+ -fx-background-color: #E6E6E6;
+ -fx-background-insets: none;
+ -fx-background-radius: 3px;
}
diff --git a/Launcher/runtime/dialog/overlay/update/update.fxml b/Launcher/runtime/dialog/overlay/update/update.fxml
index 96cbfa9..51cea47 100644
--- a/Launcher/runtime/dialog/overlay/update/update.fxml
+++ b/Launcher/runtime/dialog/overlay/update/update.fxml
@@ -6,12 +6,12 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
diff --git a/Launcher/runtime/dialog/profileCell.css b/Launcher/runtime/dialog/profileCell.css
index 42c336b..140bf9e 100644
--- a/Launcher/runtime/dialog/profileCell.css
+++ b/Launcher/runtime/dialog/profileCell.css
@@ -1,17 +1,17 @@
* {
- -fx-font-family: 'Open Sans', sans-serif;
+ -fx-font-family: 'Open Sans', sans-serif;
}
#cellBox {
- -fx-alignment: center-left;
- -fx-padding: 0 5px 0 0;
+ -fx-alignment: center-left;
+ -fx-padding: 0 5px 0 0;
}
#cellBox > #profileTitle {
- -fx-text-fill: black;
+ -fx-text-fill: black;
}
#cellBox > #serverStatus {
- -fx-text-fill: black;
- -fx-font-size: 9px;
+ -fx-text-fill: black;
+ -fx-font-size: 9px;
}
diff --git a/Launcher/runtime/dialog/profileCell.fxml b/Launcher/runtime/dialog/profileCell.fxml
index 6945e7d..f747df4 100644
--- a/Launcher/runtime/dialog/profileCell.fxml
+++ b/Launcher/runtime/dialog/profileCell.fxml
@@ -7,18 +7,18 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/Launcher/runtime/dialog/styles/button.css b/Launcher/runtime/dialog/styles/button.css
index 0878ca0..db28aaa 100644
--- a/Launcher/runtime/dialog/styles/button.css
+++ b/Launcher/runtime/dialog/styles/button.css
@@ -1,34 +1,34 @@
.button {
- -fx-background-color: #E0E1E2;
- -fx-background-radius: 3px;
- -fx-background-insets: none;
+ -fx-background-color: #E0E1E2;
+ -fx-background-radius: 3px;
+ -fx-background-insets: none;
- /* Text settings */
- -fx-text-fill: rgba(0,0,0,.8);
- -fx-font-size: 9pt;
- -fx-font-weight: 700;
+ /* Text settings */
+ -fx-text-fill: rgba(0,0,0,.8);
+ -fx-font-size: 9pt;
+ -fx-font-weight: 700;
}
.button:hover,
.button:focused {
- -fx-background-color: #CACBCD;
+ -fx-background-color: #CACBCD;
}
.button:pressed {
- -fx-background-color: #BABBBC;
+ -fx-background-color: #BABBBC;
}
/* Default button */
.button:default {
- -fx-background-color: #2185D0;
- -fx-text-fill: white;
+ -fx-background-color: #2185D0;
+ -fx-text-fill: white;
}
.button:default:hover,
.button:default:focused {
- -fx-background-color: #1678C2;
+ -fx-background-color: #1678C2;
}
.button:default:pressed {
- -fx-background-color: #1A69A4;
+ -fx-background-color: #1A69A4;
}
diff --git a/Launcher/runtime/dialog/styles/common.css b/Launcher/runtime/dialog/styles/common.css
index 9b92956..4c46f80 100644
--- a/Launcher/runtime/dialog/styles/common.css
+++ b/Launcher/runtime/dialog/styles/common.css
@@ -3,9 +3,9 @@
/* Common styles */
* {
- -fx-font-family: "Open Sans", sans-serif;
+ -fx-font-family: "Open Sans", sans-serif;
}
Button, CheckBox, ComboBox {
- -fx-cursor: hand;
+ -fx-cursor: hand;
}
diff --git a/Launcher/runtime/dialog/styles/input.css b/Launcher/runtime/dialog/styles/input.css
index 8eef12e..f1f03de 100644
--- a/Launcher/runtime/dialog/styles/input.css
+++ b/Launcher/runtime/dialog/styles/input.css
@@ -2,9 +2,9 @@
.check-box > .box,
.combo-box-base,
.combo-box-popup > .list-view {
- -fx-background-color: rgba(34,36,38,.15), white;
- -fx-background-insets: 0, 1;
- -fx-background-radius: 3px;
+ -fx-background-color: rgba(34,36,38,.15), white;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 3px;
}
.text-input:focused,
@@ -13,12 +13,12 @@
.combo-box-base:hover,
.combo-box-base:focused,
.combo-box-base:showing {
- -fx-background-color: rgba(34,36,38,.35), white;
+ -fx-background-color: rgba(34,36,38,.35), white;
}
/* Combobox-specific */
.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
- -fx-background-color: white;
+ -fx-background-color: white;
-fx-text-fill: black;
}
diff --git a/Launcher/runtime/engine/api.js b/Launcher/runtime/engine/api.js
index 039bcf2..83a8e6d 100644
--- a/Launcher/runtime/engine/api.js
+++ b/Launcher/runtime/engine/api.js
@@ -65,30 +65,30 @@
// Helper JS class API imports
var JSApplication = null;
if (typeof JSApplicationClass !== 'undefined') {
- JSApplication = JSApplicationClass.static;
+ JSApplication = JSApplicationClass.static;
}
// API wrapper
function tryWithResources(closeable, f) {
- try {
- f(closeable);
- } finally {
- IOHelper.close(closeable);
- }
+ try {
+ f(closeable);
+ } finally {
+ IOHelper.close(closeable);
+ }
}
function newTask(r) {
- return new javafx.concurrent.Task() { call: r };
+ return new javafx.concurrent.Task() { call: r };
}
function newRequestTask(request) {
- return newTask(function() request.request());
+ return newTask(function() request.request());
}
function startTask(task) {
- CommonHelper.newThread("FX Task Thread", true, task).start();
+ CommonHelper.newThread("FX Task Thread", true, task).start();
}
function openURL(url) {
- app.getHostServices().showDocument(url.toURI());
+ app.getHostServices().showDocument(url.toURI());
}
diff --git a/Launcher/runtime/init.js b/Launcher/runtime/init.js
index 3aba4da..678978b 100644
--- a/Launcher/runtime/init.js
+++ b/Launcher/runtime/init.js
@@ -9,67 +9,67 @@
// Override application class
var LauncherApp = Java.extend(JSApplication, {
- init: function() {
- app = JSApplication.getInstance();
- cliParams.init(app.getParameters());
- settings.load();
- }, start: function(primaryStage) {
- stage = primaryStage;
- stage.setResizable(false);
- stage.setTitle(config.title);
+ init: function() {
+ app = JSApplication.getInstance();
+ cliParams.init(app.getParameters());
+ settings.load();
+ }, start: function(primaryStage) {
+ stage = primaryStage;
+ stage.setResizable(false);
+ stage.setTitle(config.title);
- // Set icons
- for each (var icon in config.icons) {
- var iconURL = Launcher.getResourceURL(icon).toString();
- stage.getIcons().add(new javafx.scene.image.Image(iconURL));
- }
+ // Set icons
+ for each (var icon in config.icons) {
+ var iconURL = Launcher.getResourceURL(icon).toString();
+ stage.getIcons().add(new javafx.scene.image.Image(iconURL));
+ }
- // Load dialog FXML
- rootPane = loadFXML("dialog/dialog.fxml");
- initDialog();
+ // Load dialog FXML
+ rootPane = loadFXML("dialog/dialog.fxml");
+ initDialog();
- // Set scene
- scene = new javafx.scene.Scene(rootPane);
- stage.setScene(scene);
+ // Set scene
+ scene = new javafx.scene.Scene(rootPane);
+ stage.setScene(scene);
- // Center and show stage
- stage.sizeToScene();
- stage.centerOnScreen();
- stage.show();
- }, stop: function() {
- settings.save();
- }
+ // Center and show stage
+ stage.sizeToScene();
+ stage.centerOnScreen();
+ stage.show();
+ }, stop: function() {
+ settings.save();
+ }
});
// Helper functions
function loadFXML(name) {
- var loader = new javafx.fxml.FXMLLoader(Launcher.getResourceURL(name));
- loader.setCharset(IOHelper.UNICODE_CHARSET);
- return loader.load();
+ var loader = new javafx.fxml.FXMLLoader(Launcher.getResourceURL(name));
+ loader.setCharset(IOHelper.UNICODE_CHARSET);
+ return loader.load();
}
function setRootParent(parent) {
- scene.setRoot(parent);
+ scene.setRoot(parent);
}
// Start function - there all begins
function start(args) {
- // Set JVM dir name
- LogHelper.debug("Setting JVM dir name");
- switch (JVMHelper.OS_TYPE) {
- case JVMHelperOS.MUSTDIE: jvmDirName = JVMHelper.OS_BITS === 32 ? config.jvmMustdie32Dir : // 32-bit Mustdie
- jvmDirName = JVMHelper.OS_BITS === 64 ? config.jvmMustdie64Dir : config.jvmUnknownDir; break; // 64-bit Mustdie
- case JVMHelperOS.LINUX: jvmDirName = JVMHelper.OS_BITS === 32 ? config.jvmLinux32Dir : // 32-bit Linux
- jvmDirName = JVMHelper.OS_BITS === 64 ? config.jvmLinux64Dir : config.jvmUnknownDir; break; // 64-bit Linux
- case JVMHelperOS.MACOSX: jvmDirName = JVMHelper.OS_BITS === 64 ? config.jvmMacOSXDir : config.jvmUnknownDir; break; // 64-bit MacOSX
- default: jvmDirName = config.jvmUnknownDir; LogHelper.warning("Unknown OS: '%s'", JVMHelper.OS_TYPE.name); break; // Unknown OS
- }
+ // Set JVM dir name
+ LogHelper.debug("Setting JVM dir name");
+ switch (JVMHelper.OS_TYPE) {
+ case JVMHelperOS.MUSTDIE: jvmDirName = JVMHelper.OS_BITS === 32 ? config.jvmMustdie32Dir : // 32-bit Mustdie
+ jvmDirName = JVMHelper.OS_BITS === 64 ? config.jvmMustdie64Dir : config.jvmUnknownDir; break; // 64-bit Mustdie
+ case JVMHelperOS.LINUX: jvmDirName = JVMHelper.OS_BITS === 32 ? config.jvmLinux32Dir : // 32-bit Linux
+ jvmDirName = JVMHelper.OS_BITS === 64 ? config.jvmLinux64Dir : config.jvmUnknownDir; break; // 64-bit Linux
+ case JVMHelperOS.MACOSX: jvmDirName = JVMHelper.OS_BITS === 64 ? config.jvmMacOSXDir : config.jvmUnknownDir; break; // 64-bit MacOSX
+ default: jvmDirName = config.jvmUnknownDir; LogHelper.warning("Unknown OS: '%s'", JVMHelper.OS_TYPE.name); break; // Unknown OS
+ }
- // Set font rendering properties
- LogHelper.debug("Setting FX properties");
- java.lang.System.setProperty("prism.lcdtext", "false");
+ // Set font rendering properties
+ LogHelper.debug("Setting FX properties");
+ java.lang.System.setProperty("prism.lcdtext", "false");
- // Start laucher JavaFX stage
- LogHelper.debug("Launching JavaFX application");
- javafx.application.Application.launch(LauncherApp.class, args);
+ // Start laucher JavaFX stage
+ LogHelper.debug("Launching JavaFX application");
+ javafx.application.Application.launch(LauncherApp.class, args);
}
diff --git a/build.bat b/build.bat
index 6e8a511..378a166 100644
--- a/build.bat
+++ b/build.bat
@@ -7,13 +7,13 @@
del Launcher.jar
ren Launcher-obf.jar Launcher.jar
java -jar build/stringer.jar -configFile Launcher.stringer Launcher.jar Launcher.jar
-pack200 -E9 -Htrue -mlatest -Uerror -r Launcher.jar
+pack200 -E9 -Htrue -mlatest -Upass -r Launcher.jar
jarsigner -keystore build/sashok724.jks -storepass PSP1004 -sigfile LAUNCHER Launcher.jar sashok724
pack200 Launcher.pack.gz Launcher.jar
REM Build LaunchServer.jar
echo Building LaunchServer.jar...
jar -uf LaunchServer.jar Launcher.pack.gz buildnumber
-pack200 -E9 -Htrue -mlatest -Uerror -r LaunchServer.jar
+pack200 -E9 -Htrue -mlatest -Upass -r LaunchServer.jar
jarsigner -keystore build/sashok724.jks -storepass PSP1004 -sigfile LAUNCHER LaunchServer.jar sashok724
del Launcher.pack.gz