Merge branch 'dev' of github.com:GravitLauncher/Launcher into

dev
This commit is contained in:
Zaxar163 2019-08-16 12:49:58 +03:00
commit 100b0fcda0
27 changed files with 580 additions and 429 deletions

View file

@ -39,7 +39,6 @@
dependencies {
pack project(':LauncherAuthlib')
bundle 'com.github.oshi:oshi-core:3.13.0'
bundle 'de.jensd:fontawesomefx:8.9'
bundle 'org.apache.httpcomponents:httpclient:4.5.7'
pack 'io.netty:netty-codec-http:4.1.36.Final'
pack 'org.ow2.asm:asm-tree:7.1'

View file

@ -291,8 +291,12 @@ function doAuth(login, rsaPassword, auth_type) {
FunctionalBridge.getHWID.join();
makeAuthRequest(login, rsaPassword, auth_type, function(result) {
FunctionalBridge.setAuthParams(result);
loginData = { pp: result.playerProfile , accessToken: result.accessToken, permissions: result.permissions,
auth_type: settings.auth};
loginData = {
pp: result.playerProfile,
accessToken: result.accessToken,
permissions: result.permissions,
auth_type: settings.auth
};
overlay.hide(0, function() {
setCurrentScene(menuScene);
@ -355,10 +359,8 @@ function doUpdate(profile, pp, accessToken) {
function doLaunchClient(assetDir, assetHDir, clientDir, clientHDir, profile, pp, accessToken) {
processing.resetOverlay();
overlay.swap(0, processing.overlay, function(event)
launchClient(assetHDir, clientHDir, profile, new ClientLauncherParams(settings.lastDigest,
assetDir, clientDir, pp, accessToken, settings.autoEnter, settings.fullScreen, settings.ram, 0, 0), doDebugClient)
);
overlay.swap(0, processing.overlay, function(event) launchClient(assetHDir, clientHDir, profile, new ClientLauncherParams(settings.lastDigest,
assetDir, clientDir, pp, accessToken, settings.autoEnter, settings.fullScreen, settings.ram, 0, 0), doDebugClient));
}
function doDebugClient(process) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -53,4 +53,5 @@ #overlay > #action.kill:focused,
#overlay>#action.kill:pressed {
-fx-background-color: #DB5252;
}
/*-- DrLeonardo Design --*/

View file

@ -1,5 +1,8 @@
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");
@ -47,8 +50,7 @@ var debug = {
append: function(text) {
//Experimental Feature
if(debug.output.getText().length() > 32000 /* Max length */)
{
if (debug.output.getText().length() > 32000 /* Max length */ ) {
debug.output.deleteText(0, text.length());
}
debug.output.appendText(text);

View file

@ -8,4 +8,5 @@ #overlay > #description {
#overlay>#description.error {
-fx-text-fill: red;
}
/*-- DrLeonardo Design --*/

View file

@ -1,6 +1,9 @@
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");
@ -69,6 +72,7 @@ function makeLauncherRequest(callback) {
task.updateMessage("Обновление лаунчера");
startTask(task);
}
function makeProfilesRequest(callback) {
var task = newRequestTask(new ProfilesRequest());
@ -83,6 +87,7 @@ function makeProfilesRequest(callback) {
task.updateMessage("Обновление профилей");
startTask(task);
}
function makeAuthAvailabilityRequest(callback) {
var task = newRequestTask(new GetAvailabilityAuthRequest());
@ -98,6 +103,7 @@ function makeAuthAvailabilityRequest(callback) {
task.updateMessage("Обновление способов авторизации");
startTask(task);
}
function makeSetProfileRequest(profile, callback) {
var task = newRequestTask(new SetProfileRequest(profile));

View file

@ -1,13 +1,18 @@
/*-- DrLeonardo Design --*/
#holder {
-fx-background-color: #fff;
}
#holder>#transferDialog {
-fx-background-color: rgba(0, 0, 0, 0.5);
-fx-pref-width: 694px;
-fx-pref-height: 425px;
}
/* Labels */
#holder>#settingsTitle {
-fx-font-size: 14pt;
-fx-alignment: baseline-center;
@ -19,7 +24,9 @@ #holder #dirChange {
-fx-font-weight: bold;
}
/* RAM slider */
#holder>#ramSlider>.track {
-fx-background-color: #909090;
}
@ -41,8 +48,11 @@ #holder > #ramSlider > .slider-value {
-fx-stroke: white;
}
/* Dir options */
#holder > #deleteDir, #cancelTransfer {
#holder>#deleteDir,
#cancelTransfer {
-fx-background-radius: 0;
-fx-text-fill: white;
-fx-background-position: center;
@ -51,8 +61,10 @@ #holder > #deleteDir, #cancelTransfer {
-fx-pref-height: 25px;
}
#holder > #deleteDir:hover,#cancelTransfer:hover,
#holder > #deleteDir:focused,#cancelTransfer:focused {
#holder>#deleteDir:hover,
#cancelTransfer:hover,
#holder>#deleteDir:focused,
#cancelTransfer:focused {
-fx-background-color: #DB5252;
}
@ -67,7 +79,8 @@ #holder > #changeDir:pressed {
-fx-font-weight: bold;
}
#holder > #apply,#applyTransfer{
#holder>#apply,
#applyTransfer {
-fx-background-color: #5fd97a;
-fx-background-radius: 0;
-fx-text-fill: white;
@ -75,8 +88,13 @@ #holder > #apply,#applyTransfer{
-fx-pref-width: 150px;
-fx-pref-height: 25px;
}
#holder > #apply:hover,#applyTransfer:hover,
#holder > #apply:focused,#applyTransfer:focused{
#holder>#apply:hover,
#applyTransfer:hover,
#holder>#apply:focused,
#applyTransfer:focused {
-fx-background-color: #75e18c;
}
/*-- DrLeonardo Design --*/

View file

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import java.net.URL?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.Slider?>
<?import java.net.URL?>
<?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Slider?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.shape.Line?>
<?import javafx.scene.text.Font?>
@ -13,16 +14,22 @@
<!-- DrLeonardo Design -->
<Pane fx:id="overlay" prefHeight="450.0" prefWidth="693.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<Pane fx:id="overlay" prefHeight="450.0" prefWidth="693.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane id="holder" prefHeight="450.0" prefWidth="694.0">
<children>
<CheckBox fx:id="autoEnter" layoutX="14.0" layoutY="137.0" text="Автовход на сервер" />
<Text fill="#8c8c8c" layoutX="40.0" layoutY="153.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение авто-входа означает что вы сразу после загрузки клиента попадете на сервер" wrappingWidth="636.9999872148037" y="15.0" />
<CheckBox fx:id="fullScreen" layoutX="13.0" layoutY="244.0" text="Клиент в полный экран" />
<Text fill="#8c8c8c" layoutX="40.0" layoutY="261.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение данной функции позволяет запустить игру сразу в полноэкранном режиме" wrappingWidth="636.9999872148037" y="15.0" />
<CheckBox id="debug" layoutX="13.0" layoutY="183.0" text="Режим Отладки" />
<Text fill="#8c8c8c" layoutX="40.0" layoutY="198.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Режим отладки позволяет просмотреть лог запуска и работы программы в реальном времени прямо из лаунчера, что упрощает поиск нужной информации" wrappingWidth="637.0000016447157" y="15.0" />
<CheckBox fx:id="autoEnter" layoutX="28.0" layoutY="169.0" text="Автовход на сервер">
<font>
<Font size="13.0" />
</font></CheckBox>
<CheckBox fx:id="fullScreen" layoutX="28.0" layoutY="229.0" text="Клиент в полный экран">
<font>
<Font size="13.0" />
</font></CheckBox>
<CheckBox id="debug" layoutX="28.0" layoutY="199.0" text="Режим Отладки">
<font>
<Font size="13.0" />
</font></CheckBox>
<TextFlow layoutX="126.0" layoutY="15.0" prefHeight="16.0" prefWidth="112.0">
<Text fx:id="ramLabel" />
</TextFlow>
@ -44,8 +51,20 @@
</children>
</Pane>
<Line endX="594.0" layoutX="100.0" layoutY="420.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
<CheckBox fx:id="featureStore" layoutX="13.0" layoutY="292.0" text="Поиск файлов в других клиентах" />
<Text fill="#8c8c8c" layoutX="40.0" layoutY="309.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Используется для экономии вашего трафика, аналогичные файлы будут скопированы с других игровых клиентов" wrappingWidth="636.9999872148037" y="15.0" />
<CheckBox fx:id="featureStore" layoutX="28.0" layoutY="259.0" text="Поиск файлов в других клиентах">
<font>
<Font size="13.0" />
</font></CheckBox>
<Text fx:id="description" layoutX="317.0" layoutY="208.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Режим отладки позволяет просмотреть лог запуска и работы программы в реальном времени прямо из лаунчера, что упрощает поиск нужной информации" wrappingWidth="260.888671875">
<font>
<Font size="13.0" />
</font>
</Text>
<Label fx:id="descLabel" layoutX="317.0" layoutY="169.0" text="Режим отладки">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
</children>
</Pane>
</children>

View file

@ -1,7 +1,13 @@
var settingsOverlay = {
/* ===================== OVERLAY ===================== */
overlay: null, ramLabel: null, dirLabel: null, transferDialog: null,
deleteDirPressedAgain: false, count: 0,
overlay: null,
ramLabel: null,
dirLabel: null,
transferDialog: null,
deleteDirPressedAgain: false,
count: 0,
descLabel: null,
description: null,
initOverlay: function() {
settingsOverlay.overlay = loadFXML("dialog/overlay/settings/settings.fxml");
@ -12,10 +18,12 @@ var settingsOverlay = {
autoEnterBox.setSelected(settings.autoEnter);
autoEnterBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
function(o, ov, nv) settings.autoEnter = nv);
autoEnterBox.setOnMouseEntered(function() {
settingsOverlay.updateDesc(autoEnterBox.getText(), "Включение авто-входа означает что вы сразу после загрузки клиента попадете на сервер");
});
settingsOverlay.dirLabel = holder.lookup("#dirLabel");
settingsOverlay.dirLabel.setOnAction(function(event)
app.getHostServices().showDocument(settings.updatesDir.toUri()));
settingsOverlay.dirLabel.setOnAction(function(event) app.getHostServices().showDocument(settings.updatesDir.toUri()));
settingsOverlay.updateDirLabel();
settingsOverlay.transferDialog = holder.lookup("#transferDialog");
@ -33,15 +41,24 @@ var settingsOverlay = {
}
});
this.descLabel = holder.lookup("#descLabel");
this.description = holder.lookup("#description");
var featureStore = holder.lookup("#featureStore");
featureStore.setSelected(settings.featureStore);
featureStore.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
function(o, ov, nv) settings.featureStore = nv);
featureStore.setOnMouseEntered(function() {
settingsOverlay.updateDesc(featureStore.getText(), "Используется для экономии вашего трафика, аналогичные файлы будут скопированы с других игровых клиентов");
});
var fullScreenBox = holder.lookup("#fullScreen");
fullScreenBox.setSelected(settings.fullScreen);
fullScreenBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
function(o, ov, nv) settings.fullScreen = nv);
fullScreenBox.setOnMouseEntered(function() {
settingsOverlay.updateDesc(fullScreenBox.getText(), "Включение данной функции позволяет запустить игру сразу в полноэкранном режиме");
});
settingsOverlay.ramLabel = holder.lookup("#ramLabel");
settingsOverlay.updateRAMLabel();
@ -87,14 +104,25 @@ var settingsOverlay = {
debugBox.setSelected(settings.debug);
debugBox.selectedProperty()["addListener(javafx.beans.value.ChangeListener)"](
function(o, ov, nv) settings.debug = nv);
debugBox.setOnMouseEntered(function() {
settingsOverlay.updateDesc(debugBox.getText(), "Режим отладки позволяет просмотреть лог запуска и работы программы в реальном времени прямо из лаунчера, что упрощает поиск нужной информации");
});
holder.lookup("#apply").setOnAction(function(event) overlay.hide(0, null));
},
updateDesc: function(label, desc) {
//На случай если человек решил избавится от этой фишки
if (this.descLabel == null) return;
if (this.description == null) return;
this.descLabel.setText(label);
this.description.setText(desc);
},
transferCatalogDialog: function(newDir) {
settingsOverlay.transferDialog.setVisible(true);
settingsOverlay.transferDialog.lookup("#cancelTransfer").setOnAction(function(event)
{
settingsOverlay.transferDialog.lookup("#cancelTransfer").setOnAction(function(event) {
settings.updatesDir = newDir;
DirBridge.dirUpdates = settings.updatesDir;
settingsOverlay.updateDirLabel();
@ -148,9 +176,16 @@ LogHelper.debug("Dir: %s", DirBridge.dir);
/* ====================== CLI PARAMS ===================== */
var cliParams = {
login: null, password: null, profile: -1, autoLogin: false,
updatesDir: null, autoEnter: null, fullScreen: null, ram: -1,
offline: false, featureStore: null,
login: null,
password: null,
profile: -1,
autoLogin: false,
updatesDir: null,
autoEnter: null,
fullScreen: null,
ram: -1,
offline: false,
featureStore: null,
init: function(params) {
var named = params.getNamed();
@ -200,8 +235,7 @@ var cliParams = {
if (cliParams.profile >= 0) {
settings.profile = cliParams.profile;
}
if (cliParams.updatesDir !== null) {
}
if (cliParams.updatesDir !== null) {}
if (cliParams.autoEnter !== null) {
settings.autoLogin = cliParams.autoEnter;
}

View file

@ -50,4 +50,5 @@ .progress-bar > .track {
-fx-background-insets: 0;
-fx-background-radius: 3px;
}
/*-- DrLeonardo Design --*/

View file

@ -1,5 +1,8 @@
var update = {
overlay: null, title: null, description: null, progress: null,
overlay: null,
title: null,
description: null,
progress: null,
initOverlay: function() {
update.overlay = loadFXML("dialog/overlay/update/update.fxml");

View file

@ -1,32 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import java.net.URL?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.control.TextField?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.net.URL?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.shape.Line?>
<!-- DrLeonardo Design -->
<Pane fx:id="background" prefWidth="738.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<Pane fx:id="background" prefWidth="738.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane fx:id="bar" layoutX="692.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children>
<Button id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0"
text="" textAlignment="CENTER">
<Button id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MINUS" size="30" textAlignment="CENTER"/>
</graphic>
</Button>
<Button id="close" alignment="CENTER" contentDisplay="CENTER" text=""
textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/hide.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="close" alignment="CENTER" contentDisplay="CENTER" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER"/>
</graphic>
</Button>
<ImageView>
<image>
<Image url="@../../images/icons/close.png" />
</image>
</ImageView>
</graphic></Button>
</children>
</Pane>
<TextArea fx:id="output" prefHeight="419.0" prefWidth="692.0">
@ -34,8 +39,7 @@
<Insets left="10.0" top="10.0" />
</padding>
</TextArea>
<TextField fx:id="textField" layoutY="420.0" prefHeight="30.0" prefWidth="543.0"
promptText="Введите команду...">
<TextField fx:id="textField" layoutY="420.0" prefHeight="30.0" prefWidth="543.0" promptText="Введите команду...">
<opaqueInsets>
<Insets />
</opaqueInsets>
@ -43,8 +47,7 @@
<Insets left="10.0" />
</padding>
</TextField>
<Button fx:id="send" defaultButton="true" layoutX="542.0" layoutY="420.0" prefHeight="30.0" prefWidth="147.0"
text="Выполнить"/>
<Button fx:id="send" defaultButton="true" layoutX="542.0" layoutY="420.0" prefHeight="30.0" prefWidth="147.0" text="Выполнить" />
<Line endX="594.0" layoutX="98.0" layoutY="420.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
</children>
<stylesheets>

View file

@ -1,19 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.String?>
<?import java.net.URL?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.lang.String?>
<?import java.net.URL?>
<?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.Pane?>
<!-- DrLeonardo Design -->
<Pane fx:id="loginPane" prefWidth="740.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<Pane fx:id="loginPane" prefWidth="740.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane fx:id="layout" prefWidth="740.0">
<children>
@ -40,21 +41,30 @@
<Pane id="mask" opacity="0.0" prefHeight="450.0" prefWidth="694.0" visible="false" />
<Pane fx:id="bar" layoutX="694.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children>
<Button id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" text="" textAlignment="CENTER">
<Button id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MINUS" size="30" textAlignment="CENTER" />
</graphic>
</Button>
<Button id="close" alignment="CENTER" contentDisplay="CENTER" text="" textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/hide.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="close" alignment="CENTER" contentDisplay="CENTER" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</Button>
<Button id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="370.0" text="" textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/close.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="370.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="#5fd97a" glyphName="MESSAGE_TEXT" size="20" textAlignment="CENTER" />
</graphic>
</Button>
<ImageView>
<image>
<Image url="@../../images/icons/discord.png" />
</image>
</ImageView>
</graphic></Button>
</children>
</Pane>
</children>

View file

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.net.URL?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.FlowPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<!-- DrLeonardo Design -->
<Pane fx:id="serverPaneLayout" maxHeight="-1.0" maxWidth="-1.0" prefWidth="740.0" visible="true" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<Pane fx:id="serverPaneLayout" maxHeight="-1.0" maxWidth="-1.0" prefWidth="740.0" visible="true" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane fx:id="layout" maxHeight="-1.0" maxWidth="-1.0" prefWidth="740.0" visible="true" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
@ -51,9 +51,13 @@
<Font size="22.0" />
</font>
</Button>
<Button id="clientSettings" alignment="CENTER" centerShape="false" contentDisplay="CENTER" layoutX="305.0" layoutY="380.0" prefHeight="51.0" prefWidth="60.0" styleClass="clientSettings" text="" textAlignment="CENTER">
<Button id="clientSettings" alignment="CENTER" centerShape="false" contentDisplay="CENTER" layoutX="305.0" layoutY="380.0" minHeight="-Infinity" minWidth="-Infinity" prefHeight="51.0" prefWidth="60.0" styleClass="clientSettings" text="" textAlignment="CENTER">
<graphic>
<FontAwesomeIconView fill="WHITE" glyphName="SLIDERS" size="30.0" />
<ImageView>
<image>
<Image url="@../../images/icons/list.png" />
</image>
</ImageView>
</graphic></Button>
<Label id="serverStatus" alignment="TOP_RIGHT" contentDisplay="RIGHT" layoutX="165.0" layoutY="12.0" prefHeight="25.0" prefWidth="97.0" text="12/100" textAlignment="RIGHT" textFill="WHITE">
<font>
@ -74,31 +78,46 @@
</Pane>
<Pane fx:id="bar" layoutX="694.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children>
<Button id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" text="" textAlignment="CENTER">
<Button id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MINUS" size="30" textAlignment="CENTER" />
</graphic>
</Button>
<Button id="close" alignment="CENTER" contentDisplay="CENTER" text="" textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/hide.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="close" alignment="CENTER" contentDisplay="CENTER" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</Button>
<Button id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" text="" textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/close.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="#5fd97a" glyphName="MESSAGE_TEXT" size="20" smooth="false" textAlignment="CENTER" />
</graphic>
</Button>
<Button id="settings" alignment="CENTER" contentDisplay="CENTER" layoutY="90.0" text="" textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/discord.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="settings" alignment="CENTER" contentDisplay="CENTER" layoutY="90.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="SETTINGS" size="20" textAlignment="CENTER" />
</graphic>
</Button>
<Button id="goConsole" alignment="CENTER" contentDisplay="CENTER" layoutY="138.0" text="" textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/settings.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="goConsole" alignment="CENTER" contentDisplay="CENTER" layoutY="138.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CONSOLE" size="20" textAlignment="CENTER" />
</graphic>
</Button>
<ImageView>
<image>
<Image url="@../../images/icons/console.png" />
</image>
</ImageView>
</graphic></Button>
</children>
</Pane>
<Pane id="mask" opacity="0.0" prefHeight="450.0" prefWidth="694.0" visible="false" />

View file

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.net.URL?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.shape.Line?>
@ -13,7 +14,7 @@
<!-- DrLeonardo Design -->
<Pane fx:id="background" prefHeight="450.0" prefWidth="740.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<Pane fx:id="background" prefHeight="450.0" prefWidth="740.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane id="optionsPane" prefHeight="450.0" prefWidth="692.0" styleClass="optionsPane">
<children>
@ -38,21 +39,30 @@
</Pane>
<Pane fx:id="bar" layoutX="694.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children>
<Button id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" text="" textAlignment="CENTER">
<Button id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MINUS" size="30" textAlignment="CENTER" />
</graphic>
</Button>
<Button id="close" alignment="CENTER" contentDisplay="CENTER" text="" textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/hide.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="close" alignment="CENTER" contentDisplay="CENTER" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</Button>
<Button id="back" alignment="CENTER" contentDisplay="CENTER" layoutY="405.0" text="" textAlignment="CENTER">
<ImageView>
<image>
<Image url="@../../images/icons/close.png" />
</image>
</ImageView>
</graphic></Button>
<Button id="back" alignment="CENTER" contentDisplay="CENTER" layoutY="405.0" minHeight="-Infinity" minWidth="-Infinity" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CHEVRON_LEFT" size="30" textAlignment="CENTER" />
</graphic>
</Button>
<ImageView>
<image>
<Image url="@../../images/icons/back.png" />
</image>
</ImageView>
</graphic></Button>
</children>
</Pane>
</children>

View file

@ -26,29 +26,23 @@ var options = {
}
var profilesCount = input.readInt();
LogHelper.debug("Load options. ProfilesCount %d", profilesCount);
for(var i = 0;i<profilesCount;i++)
{
for (var i = 0; i < profilesCount; i++) {
var listSize = input.readInt();
var sortIndex = input.readInt();
var profile = null;
settings.lastProfiles.forEach(function(hprofile, i, arr) {
if(hprofile.getSortIndex() == sortIndex)
{
if (hprofile.getSortIndex() == sortIndex) {
profile = hprofile;
}
});
for(var j = 0; j < listSize; j++)
{
for (var j = 0; j < listSize; j++) {
var mark = input.readBoolean();
var modType = OptionalFile.readType(input);
var modFile = input.readString(0);
if(mark)
{
if (mark) {
profile.markOptional(modFile, modType);
LogHelper.debug("Load options %s marked", modFile);
}
else
{
} else {
profile.unmarkOptional(modFile, modType);
LogHelper.debug("Load options %s unmarked", modFile);
}
@ -93,15 +87,15 @@ var options = {
var list = profile.getOptional();
var checkBoxList = new java.util.ArrayList;
list.forEach(function(modFile) {
var modName = modFile.name, modDescription = "", subLevel = 1;
if(!modFile.visible)
{
var modName = modFile.name,
modDescription = "",
subLevel = 1;
if (!modFile.visible) {
LogHelper.debug("optionalMod %s hidden", modFile.name);
return;
}
if(modFile.permissions != 0 && ((loginData.permissions.toLong() & modFile.permissions) == 0))
{
if (modFile.permissions != 0 && ((loginData.permissions.toLong() & modFile.permissions) == 0)) {
LogHelper.debug("optionalMod %s permissions deny", modFile.name);
return;
}
@ -119,13 +113,10 @@ var options = {
testMod.setSelected(modFile.mark);
testMod.setOnAction(function(event) {
var isSelected = event.getSource().isSelected();
if(isSelected)
{
if (isSelected) {
profile.markOptional(modFile);
LogHelper.debug("Selected mod %s", modFile.name);
}
else
{
} else {
profile.unmarkOptional(modFile);
LogHelper.debug("Unselected mod %s", modFile.name);
}

View file

@ -1,6 +1,6 @@
/*-- DrLeonardo Design --*/
/* Server buttons */
.server-button {
-fx-font-weight: bold;
-fx-font-size: 16pt;
@ -19,11 +19,11 @@ .server-button:selected {
-fx-effect: dropshadow(gaussian, rgba(23, 25, 29, 0.3), 15, 0, 0, 3);
}
/** server-button-<your profile name> **/
.server-button-Example {
-fx-background-image: url('images/servers/example.png');
}
/*-- DrLeonardo Design --*/

View file

@ -56,7 +56,10 @@ CheckBox .indeterminate-mark{
/*-- DrLeonardo Design --*/
Button, CheckBox, ComboBox, RadioButton {
Button,
CheckBox,
ComboBox,
RadioButton {
-fx-cursor: hand;
}
@ -69,9 +72,11 @@ #layout {
-fx-pref-height: 450px;
-fx-background-image: url('images/background.jpg');
}
#background {
-fx-background-color: #fff;
}
/** Labels **/
#background>#settingsTitle {
-fx-font-size: 14pt;
@ -110,6 +115,7 @@ #bar {
-fx-pref-width: 46px;
-fx-pref-height: 450px;
}
/** buttons in bar **/
#close {
-fx-background-position: center;
@ -118,7 +124,12 @@ #close {
-fx-pref-width: 46px;
-fx-pref-height: 45px;
}
#hide, #back, #goConsole, #settings, #discord {
#hide,
#back,
#goConsole,
#settings,
#discord {
-fx-background-position: center;
-fx-background-radius: 0;
-fx-pref-width: 46px;
@ -134,10 +145,12 @@ #logout{
-fx-background-color: transparent;
-fx-padding: 0;
}
#logout:hover,
#logout:focus {
-fx-text-fill: #ff6a5e;
}
#logout:pressed {
-fx-border-color: #cb4d43;
}
@ -151,7 +164,9 @@ #send {
-fx-pref-height: 30px;
}
#send:pressed { -fx-background-color: #d8d8d8; }
#send:pressed {
-fx-background-color: #d8d8d8;
}
/* LoginMenu */
#authPane {
@ -179,9 +194,13 @@ .auth {
-fx-effect: dropshadow(gaussian, rgba(23, 25, 29, 0.3), 15, 0, 0, 3);
}
.auth:hover, .auth:pressed { -fx-background-color: #75e18c; }
.auth:hover,
.auth:pressed {
-fx-background-color: #75e18c;
}
#password, #login {
#password,
#login {
-fx-background-radius: 0;
-fx-pref-width: 200px;
-fx-pref-height: 30px;
@ -208,7 +227,10 @@ #link {
-fx-pref-height: 17px;
}
#link:hover, #link:pressed { -fx-opacity: 0.8; }
#link:hover,
#link:pressed {
-fx-opacity: 0.8;
}
/** CheckBox & ComboBox**/
#rememberchb {
@ -217,12 +239,14 @@ #rememberchb{
-fx-pref-width: 145px;
-fx-pref-height: 30px;
}
#combologin {
-fx-text-fill: #909090;
-fx-prompt-text-fill: #909090;
-fx-pref-width: 200px;
-fx-pref-height: 30px;
}
.combologin,
.combologin {
-fx-font-size: 13px;
@ -253,20 +277,18 @@ .combologin .arrow {
-fx-background-color: #5fd97a;
}
.combologin-popup .list-view .list-cell
{
.combologin-popup .list-view .list-cell {
-fx-background-color: white;
}
.combologin-popup .list-view .list-cell:filled:selected, .combologin-popup .list-view .list-cell:filled:selected:hover
{
.combologin-popup .list-view .list-cell:filled:selected,
.combologin-popup .list-view .list-cell:filled:selected:hover {
-fx-background: -fx-accent;
-fx-background-color: -fx-selection-bar;
-fx-text-fill: #909090;
}
.combologin-popup .list-view .list-cell:filled:hover
{
.combologin-popup .list-view .list-cell:filled:hover {
-fx-background-color: white;
-fx-text-fill: #909090;
}
@ -293,13 +315,17 @@ .clientLaunch{
-fx-background-color: #5fd97a;
-fx-text-fill: #ffffff;
}
.clientSettings {
-fx-background-position: center;
-fx-background-color: #5fd97a;
-fx-background-radius: 0;
}
.clientLaunch:hover, .clientLaunch:pressed { -fx-background-color: #75e18c; }
.clientLaunch:hover,
.clientLaunch:pressed {
-fx-background-color: #75e18c;
}
/* Scrolls */
.scroll-pane {
@ -371,6 +397,7 @@ .separator *.line {
#serverlist {
-fx-background-color: transparent;
}
#serverlist>.viewport {
-fx-background-color: transparent;
}
@ -378,6 +405,7 @@ #serverlist > .viewport {
#serverdesc {
-fx-background-color: transparent;
}
#serverdesc>.viewport {
-fx-background-color: transparent;
}
@ -385,6 +413,7 @@ #serverdesc > .viewport {
#serverinfo {
-fx-background-color: transparent;
}
#serverinfo>.viewport {
-fx-background-color: transparent;
}
@ -402,4 +431,5 @@ .toggle-button:disabled{
.heading {
-fx-text-fill: #555555;
}
/*-- DrLeonardo Design --*/

View file

@ -9,7 +9,8 @@ var LauncherApp = Java.extend(JSApplication, {
settings = SettingsManager.settings;
settingsManager.loadHDirStore();
cliParams.applySettings();
}, start: function(primaryStage) {
},
start: function(primaryStage) {
stage = primaryStage;
stage.initStyle(javafx.stage.StageStyle.TRANSPARENT);
stage.setResizable(false);
@ -45,7 +46,8 @@ var LauncherApp = Java.extend(JSApplication, {
setCurrentScene(loginScene);
initLauncher();
}, stop: function() {
},
stop: function() {
settingsManager.saveConfig();
settingsManager.saveHDirStore();
options.save();