Merge branch 'release/5.0.0b6'

This commit is contained in:
Gravit 2019-05-08 14:36:50 +07:00
commit 4004d2f53c
No known key found for this signature in database
GPG key ID: 061981E1E85D3216
24 changed files with 231 additions and 135 deletions

View file

@ -29,7 +29,7 @@ public void setClient(Client client)
@Override
public void channelActive(ChannelHandlerContext ctx) {
LogHelper.debug("New client %s", IOHelper.getIP(ctx.channel().remoteAddress()));
LogHelper.dev("New client %s", IOHelper.getIP(ctx.channel().remoteAddress()));
client = new Client(0);
service.registerClient(ctx.channel());
ctx.executor().schedule(() -> {

View file

@ -38,9 +38,9 @@
dependencies {
pack project(':LauncherAuthlib')
bundle 'com.github.oshi:oshi-core:3.13.0'
bundle 'com.jfoenix:jfoenix:8.0.8'
bundle 'com.jfoenix:jfoenix:8.0.8'
bundle 'de.jensd:fontawesomefx:8.9'
bundle 'org.apache.httpcomponents:httpclient:4.5.7'
bundle 'org.apache.httpcomponents:httpclient:4.5.7'
pack 'io.netty:netty-all:4.1.36.Final'
pack 'org.ow2.asm:asm-tree:7.1'
}

View file

@ -80,16 +80,13 @@ function initMenuScene() {
stage.setY(event.getScreenY() - movePoint.getY());
});
var pane = loginPane.lookup("#bar");
var pane = menuPane.lookup("#bar");
bar = pane;
menuPane.lookup("#close").setOnAction(function(event){ javafx.application.Platform.exit()});
menuPane.lookup("#hide").setOnAction(function(event){ stage.setIconified(true)});
menuPane.lookup("#discord").setOnAction(function(){ openURL(config.discord); });
menuPane.lookup("#settings").setOnAction(goSettings);
menuPane.lookup("#goConsole").setOnAction(goConsole);
menuPane.lookup("#logout").setOnAction(function(){
setCurrentScene(loginScene);
});
pane.lookup("#close").setOnAction(function(event){ javafx.application.Platform.exit()});
pane.lookup("#hide").setOnAction(function(event){ stage.setIconified(true)});
pane.lookup("#discord").setOnAction(function(){ openURL(config.discord); });
pane.lookup("#settings").setOnAction(goSettings);
pane.lookup("#goConsole").setOnAction(goConsole);
var pane = menuPane.lookup("#serverPane");
serverPane = pane;
@ -104,6 +101,9 @@ function initMenuScene() {
serverEntrance.lookup("#clientLaunch").setOnAction(function(){
doUpdate(profilesList[serverHolder.old], loginData.pp, loginData.accessToken);
});
pane.lookup("#logout").setOnAction(function(){
setCurrentScene(loginScene);
});
}
@ -236,21 +236,17 @@ function verifyLauncher(e) {
initOffline();
}
overlay.swap(0, processing.overlay, function(event) makeAuthAvailabilityRequest(function(result) {
//@DrLeonardo нужно напистаь добавление в список
//result.list весь список
//result.list[0].name имя авторизации(не видно)
//result.list[0].displayName имя авторизации(видно)
//result.list;
//result.list[0].name;
//result.list[0].displayName;
result.list.forEach(function(auth_type, i, arr) {
var serverAuth = new com.jfoenix.controls.JFXComboBox();
serverAuth.getStyleClass().add("authOptions");
(function() {
//profilesList[serverBtn] = profile;
//var hold = serverBtn;
//var hIndex = index;
//serverBtn.setOnAction(function(event) {
// serverHolder.set(hold);
// settings.profile = hIndex;
//});
authOptions.getItems().add(auth_type.displayName);
})();
authOptions.getItems().add(auth_type.displayName);
})();
});
overlay.swap(0, processing.overlay, function(event) makeProfilesRequest(function(result) {
settings.lastProfiles = result.profiles;
@ -332,7 +328,7 @@ function updateProfilesList(profiles) {
serverList.getChildren().clear();
var index = 0;
profiles.forEach(function(profile, i, arr) {
pingers[profile] = new ServerPinger(profile.getServerSocketAddress(), profile.getVersion());
pingers[profile] = new ServerPinger(profile);
var serverBtn = new javafx.scene.control.ToggleButton(profile);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -7,11 +7,11 @@
<!-- DrLeonardo Design | Fixes by Yaroslavik -->
<Pane fx:id="overlay" prefHeight="425.0" prefWidth="692.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<Pane fx:id="overlay" prefHeight="450.0" prefWidth="692.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<!-- Description -->
<Label fx:id="description" alignment="CENTER" contentDisplay="CENTER" layoutX="205.0" layoutY="272.0" prefHeight="120.0" prefWidth="283.0" text="..." textAlignment="CENTER" />
<JFXSpinner fx:id="spinner" layoutX="313.0" layoutY="178.0" prefHeight="70.0" prefWidth="67.0" />
<Label fx:id="description" alignment="CENTER" contentDisplay="CENTER" layoutX="205.0" layoutY="328.0" prefHeight="87.0" prefWidth="283.0" text="..." textAlignment="CENTER" />
<JFXSpinner fx:id="spinner" layoutX="291.0" layoutY="165.0" prefHeight="120.0" prefWidth="110.0" />
</children>
<stylesheets>
<URL value="@processing.css" />

View file

@ -21,25 +21,24 @@ #holder #dirChange {
/* RAM slider */
#holder > #ramSlider > .track {
-fx-background-color: #D8E0E3;
-fx-background-insets: none;
-fx-background-radius: 2px;
-fx-padding: 2px;
-fx-background-color: #909090;
}
#holder > #ramSlider > .thumb {
-fx-background-color: #3498DB;
-fx-background-insets: none;
-fx-background-radius: 5px;
-fx-padding: 5px;
-fx-background-color: #5fd97a;
}
#holder > #ramSlider:hover > .thumb {
-fx-background-color: #2F8BC8;
#holder > #ramSlider > .colored-track {
-fx-background-color: #5fd97a;
}
#holder > #ramSlider:pressed > .thumb {
-fx-background-color: #2876AA;
#holder > #ramSlider > .animated-thumb {
-fx-background-color: #5fd97a;
}
#holder > #ramSlider > .slider-value {
-fx-fill: white;
-fx-stroke: white;
}
/* Dir options */
@ -70,7 +69,7 @@ #holder > #changeDir:pressed {
}
#holder > #apply,#applyTransfer{
-fx-background-color: #61B373;
-fx-background-color: #5fd97a;
-fx-background-radius: 0;
-fx-text-fill: white;
-fx-background-position: center;
@ -80,6 +79,6 @@ #holder > #apply,#applyTransfer{
}
#holder > #apply:hover,#applyTransfer:hover,
#holder > #apply:focused,#applyTransfer:focused{
-fx-background-color: #74C085;
-fx-background-color: #75e18c;
}
/*-- DrLeonardo Design --*/

View file

@ -13,23 +13,23 @@
<!-- DrLeonardo Design -->
<Pane fx:id="overlay" prefHeight="425.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.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane id="holder" prefHeight="425.0" prefWidth="694.0">
<Pane id="holder" prefHeight="450.0" prefWidth="694.0">
<children>
<JFXCheckBox fx:id="autoEnter" checkedColor="#61b373" layoutX="14.0" layoutY="117.0" text="Автовход на сервер" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="38.0" layoutY="133.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение авто-входа означает что вы сразу после загрузки клиента попадете на сервер" wrappingWidth="636.9999872148037" y="15.0" />
<JFXCheckBox fx:id="fullScreen" checkedColor="#61b373" layoutX="13.0" layoutY="240.0" text="Клиент в полный экран" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="38.0" layoutY="257.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение данной функции позволяет запустить игру сразу в полноэкранном режиме" wrappingWidth="636.9999872148037" y="15.0" />
<JFXCheckBox id="debug" checkedColor="#61b373" layoutX="13.0" layoutY="173.0" text="Режим Отладки" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="38.0" layoutY="188.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Режим отладки позволяет просмотреть лог запуска и работы программы в реальном времени прямо из лаунчера, что упрощает поиск нужной информации" wrappingWidth="637.0000016447157" y="15.0" />
<JFXCheckBox fx:id="autoEnter" checkedColor="#5fd97a" layoutX="14.0" layoutY="117.0" text="Автовход на сервер" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="40.0" layoutY="133.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение авто-входа означает что вы сразу после загрузки клиента попадете на сервер" wrappingWidth="636.9999872148037" y="15.0" />
<JFXCheckBox fx:id="fullScreen" checkedColor="#5fd97a" layoutX="13.0" layoutY="240.0" text="Клиент в полный экран" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="40.0" layoutY="257.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение данной функции позволяет запустить игру сразу в полноэкранном режиме" wrappingWidth="636.9999872148037" y="15.0" />
<JFXCheckBox id="debug" checkedColor="#5fd97a" layoutX="13.0" layoutY="173.0" text="Режим Отладки" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="40.0" layoutY="188.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Режим отладки позволяет просмотреть лог запуска и работы программы в реальном времени прямо из лаунчера, что упрощает поиск нужной информации" wrappingWidth="637.0000016447157" y="15.0" />
<TextFlow layoutX="126.0" layoutY="15.0" prefHeight="16.0" prefWidth="112.0">
<Text fx:id="ramLabel" />
</TextFlow>
<JFXButton fx:id="deleteDir" layoutX="374.0" layoutY="356.0" prefHeight="25.0" prefWidth="245.0" text="Удалить клиенты" textAlignment="CENTER" wrapText="true" />
<JFXButton fx:id="changeDir" layoutY="400.0" prefHeight="25.0" prefWidth="200.0" text="Сменить директорию загрузки" textAlignment="CENTER" wrapText="true" />
<Hyperlink id="dirLabel" alignment="TOP_LEFT" layoutX="200.0" layoutY="401.0" prefHeight="23.0" prefWidth="493.0" text="C:/Users" />
<JFXButton fx:id="apply" defaultButton="true" layoutX="534.0" layoutY="356.0" prefHeight="23.0" prefWidth="100.0" text="Применить" />
<JFXButton fx:id="deleteDir" layoutX="370.0" layoutY="380.0" prefHeight="25.0" prefWidth="245.0" text="Удалить клиенты" textAlignment="CENTER" wrapText="true" />
<JFXButton fx:id="changeDir" layoutY="419.0" prefHeight="30.0" prefWidth="200.0" text="Сменить директорию загрузки" textAlignment="CENTER" wrapText="true" />
<Hyperlink id="dirLabel" alignment="BASELINE_LEFT" layoutX="201.0" layoutY="420.0" prefHeight="30.0" prefWidth="493.0" text="C:/Users" />
<JFXButton fx:id="apply" defaultButton="true" layoutX="530.0" layoutY="380.0" prefHeight="23.0" prefWidth="100.0" text="Применить" />
<Text layoutX="16.0" layoutY="28.0">Выделение памяти: </Text>
<JFXSlider fx:id="ramSlider" layoutX="14.0" layoutY="76.0" prefHeight="14.0" prefWidth="663.0" />
<Pane fx:id="transferDialog" prefHeight="425.0" prefWidth="694.0" visible="false">
@ -43,7 +43,7 @@
<JFXButton fx:id="cancelTransfer" layoutX="379.0" layoutY="226.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="124.0" text="Нет, не нужно." />
</children>
</Pane>
<Line endX="585.0" layoutX="104.0" layoutY="396.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
<Line endX="594.0" layoutX="100.0" layoutY="420.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
</children>
</Pane>
</children>

View file

@ -4,7 +4,7 @@ #overlay {
-fx-background-color: transparent;
-fx-background-size: cover;
-fx-pref-width: 693px;
-fx-pref-height: 425px;
-fx-pref-height: 450px;
-fx-background-image: url('../../images/background.jpg');
}
@ -24,7 +24,7 @@ #overlay > #description.error {
.downloadPane {
-fx-background-color: rgba(0, 0, 0, 0.3);
-fx-pref-width: 693px;
-fx-pref-height: 425px;
-fx-pref-height: 450px;
}
/* Progress bar */

View file

@ -13,14 +13,14 @@
<children>
<Pane prefHeight="425.0" prefWidth="693.0" styleClass="downloadPane">
<children>
<Label fx:id="description" layoutX="14.0" layoutY="302.0" prefHeight="98.0" prefWidth="660.0" text="..." textFill="WHITE" />
<Label fx:id="utitle" alignment="TOP_LEFT" layoutX="59.0" layoutY="269.0" prefHeight="18.0" prefWidth="470.0" text="Обновление..." textFill="WHITE">
<Label fx:id="description" layoutX="17.0" layoutY="320.0" prefHeight="105.0" prefWidth="660.0" text="..." textFill="WHITE" />
<Label fx:id="utitle" alignment="TOP_LEFT" layoutX="59.0" layoutY="279.0" prefHeight="18.0" prefWidth="470.0" text="Обновление..." textFill="WHITE">
<font>
<Font size="13.0" />
<Font name="System Bold" size="13.0" />
</font>
</Label>
<JFXProgressBar fx:id="progress" layoutY="407.0" prefHeight="18.0" prefWidth="693.0" />
<JFXSpinner layoutX="14.0" layoutY="261.0" prefHeight="35.0" prefWidth="32.0" />
<JFXProgressBar fx:id="progress" layoutY="438.0" prefHeight="12.0" prefWidth="693.0" />
<JFXSpinner layoutX="14.0" layoutY="271.0" prefHeight="35.0" prefWidth="32.0" />
</children></Pane>
</children>
<stylesheets>

View file

@ -27,12 +27,12 @@
</JFXButton>
</children>
</Pane>
<JFXTextArea fx:id="output" prefHeight="385.0" prefWidth="692.0" unFocusColor="#ffffff00">
<JFXTextArea fx:id="output" focusColor="#d8d8d8" prefHeight="419.0" prefWidth="692.0" unFocusColor="#ffffff00">
<padding>
<Insets left="10.0" top="10.0" />
</padding>
</JFXTextArea>
<JFXTextField fx:id="textField" focusColor="#909090" layoutY="395.0" prefHeight="30.0" prefWidth="543.0" promptText="Введите команду..." unFocusColor="#ffffff00">
<JFXTextField fx:id="textField" focusColor="#909090" layoutY="420.0" prefHeight="30.0" prefWidth="543.0" promptText="Введите команду..." unFocusColor="#ffffff00">
<opaqueInsets>
<Insets />
</opaqueInsets>
@ -40,8 +40,8 @@
<Insets left="10.0" />
</padding>
</JFXTextField>
<JFXButton fx:id="send" defaultButton="true" layoutX="542.0" layoutY="395.0" prefHeight="30.0" prefWidth="147.0" ripplerFill="WHITE" text="Выполнить" />
<Line endX="589.0" layoutX="98.0" layoutY="390.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
<JFXButton fx:id="send" defaultButton="true" layoutX="542.0" layoutY="420.0" prefHeight="30.0" prefWidth="147.0" ripplerFill="WHITE" text="Выполнить" />
<Line endX="594.0" layoutX="98.0" layoutY="420.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
</children>
<stylesheets>
<URL value="@../../styles.css" />

View file

@ -7,6 +7,7 @@
<?import com.jfoenix.controls.JFXPasswordField?>
<?import com.jfoenix.controls.JFXTextField?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.lang.String?>
<?import java.net.URL?>
<?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.layout.Pane?>
@ -15,19 +16,23 @@
<Pane fx:id="layout" prefWidth="740.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane fx:id="authPane" layoutX="423.0" prefHeight="411.0" prefWidth="286.0" styleClass="loginPane">
<Pane fx:id="authPane" layoutX="422.0" prefHeight="411.0" prefWidth="286.0" styleClass="loginPane">
<children>
<Pane fx:id="logo" layoutX="72.0" layoutY="62.0" prefWidth="124.0" styleClass="logo">
</Pane>
<JFXTextField id="login" alignment="CENTER" focusColor="#909090" layoutX="34.0" layoutY="144.0" promptText="Логин" unFocusColor="#dadada" />
<JFXPasswordField id="password" alignment="CENTER" focusColor="#909090" layoutX="34.0" layoutY="197.0" promptText="Пароль" unFocusColor="#dadada" />
<JFXButton id="goAuth" layoutX="15.0" layoutY="365.0" styleClass="auth" text="ВОЙТИ" />
<JFXCheckBox id="rememberchb" fx:id="savePassword" checkedColor="#61b373" contentDisplay="CENTER" layoutX="63.0" layoutY="329.0" prefWidth="144.0" text="Сохранить пароль" textFill="#dadada" unCheckedColor="#909090" />
<JFXComboBox id="authOptions" fx:id="authOptions" focusColor="#909090" layoutX="35.0" layoutY="251.0" promptText="Метод авторизации" styleClass="combologin" unFocusColor="#dadada" />
<Hyperlink id="link" fx:id="link" layoutX="98.0" layoutY="408.0" prefHeight="19.0" prefWidth="81.0" textAlignment="CENTER" />
<JFXTextField id="login" alignment="CENTER" focusColor="#5fd97a" layoutX="34.0" layoutY="196.0" promptText="Логин" unFocusColor="#dadada" />
<JFXPasswordField id="password" alignment="CENTER" focusColor="#5fd97a" layoutX="34.0" layoutY="249.0" promptText="Пароль" unFocusColor="#dadada" />
<JFXButton id="goAuth" layoutX="34.0" layoutY="370.0" styleClass="auth" text="ВОЙТИ" />
<JFXCheckBox id="rememberchb" fx:id="savePassword" checkedColor="#5fd97a" contentDisplay="CENTER" layoutX="63.0" layoutY="297.0" prefWidth="144.0" text="Сохранить пароль" textFill="#dadada" unCheckedColor="#909090" />
<JFXComboBox id="authOptions" fx:id="authOptions" focusColor="#5fd97a" layoutX="34.0" layoutY="341.0" prefHeight="25.0" prefWidth="200.0" promptText="Авторизация 1" unFocusColor="#70666600">
<styleClass>
<String fx:value="combologin" />
<String fx:value="combologin-popup" />
</styleClass></JFXComboBox>
<Hyperlink id="link" fx:id="link" layoutX="94.0" layoutY="422.0" prefHeight="19.0" prefWidth="81.0" textAlignment="CENTER" />
</children>
</Pane>
<JFXMasonryPane fx:id="news" prefHeight="425.0" prefWidth="423.0" styleClass="news" />
<JFXMasonryPane fx:id="news" prefHeight="432.0" prefWidth="423.0" styleClass="news" />
<Pane fx:id="bar" layoutX="692.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children>
<JFXButton id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" ripplerFill="#646464" text="" textAlignment="CENTER">
@ -40,9 +45,9 @@
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<JFXButton id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="370.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MESSAGE_TEXT" size="30" textAlignment="CENTER" />
<MaterialDesignIconView fill="#5fd97a" glyphName="MESSAGE_TEXT" size="20" textAlignment="CENTER" />
</graphic>
</JFXButton>
</children>

View file

@ -15,11 +15,11 @@
<Pane fx:id="layout" maxHeight="-1.0" maxWidth="-1.0" prefHeight="400.0" prefWidth="600.0" visible="true" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane id="serverPane" prefHeight="425.0" prefWidth="693.0">
<Pane id="serverPane" prefHeight="450.0" prefWidth="693.0">
<children>
<ScrollPane id="serverlist" hbarPolicy="NEVER" layoutX="1.0" prefHeight="425.0" prefWidth="307.0" visible="true">
<ScrollPane id="serverlist" hbarPolicy="NEVER" layoutX="1.0" prefHeight="450.0" prefWidth="307.0" visible="true">
<content>
<FlowPane focusTraversable="false" prefHeight="421.0" prefWidth="306.0" prefWrapLength="0.0" rowValignment="TOP" vgap="10.0" visible="true">
<FlowPane focusTraversable="false" prefHeight="446.0" prefWidth="306.0" prefWrapLength="0.0" rowValignment="TOP" vgap="10.0" visible="true">
<JFXButton id="servercontainer" ripplerFill="#ffffff80" text="">
<FlowPane.margin>
<Insets bottom="10.0" />
@ -30,11 +30,11 @@
</FlowPane>
</content>
</ScrollPane>
<Pane id="serverentrance" layoutX="307.0" prefHeight="425.0" prefWidth="388.0" styleClass="serverentrance">
<Pane id="serverentrance" layoutX="306.0" prefHeight="425.0" prefWidth="388.0" styleClass="serverentrance">
<children>
<ScrollPane id="serverinfo" hbarPolicy="NEVER" layoutX="4.0" layoutY="53.0" pannable="true" prefHeight="372.0" prefWidth="382.0" visible="true">
<ScrollPane id="serverinfo" hbarPolicy="NEVER" layoutX="4.0" layoutY="53.0" pannable="true" prefHeight="322.0" prefWidth="381.0" visible="true">
<content>
<FlowPane id="" focusTraversable="false" orientation="HORIZONTAL" prefHeight="221.0" prefWidth="362.0" rowValignment="TOP" visible="true">
<FlowPane id="" focusTraversable="false" orientation="HORIZONTAL" prefHeight="310.0" prefWidth="369.0" rowValignment="TOP" visible="true">
<padding>
<Insets bottom="10.0" left="15.0" top="7.0" />
</padding>
@ -44,21 +44,21 @@
</FlowPane>
</content>
</ScrollPane>
<JFXButton id="clientLaunch" layoutX="20.0" layoutY="355.0" styleClass="clientLaunch" text="ИГРАТЬ">
<JFXButton id="clientLaunch" layoutX="121.0" layoutY="380.0" prefHeight="51.0" prefWidth="183.0" styleClass="clientLaunch" text="ИГРАТЬ">
<font>
<Font size="22.0" />
</font>
</JFXButton>
<JFXButton id="clientSettings" alignment="CENTER" centerShape="false" contentDisplay="CENTER" layoutX="281.0" layoutY="355.0" ripplerFill="#84da96" styleClass="clientSettings" text="" textAlignment="CENTER">
<JFXButton id="clientSettings" alignment="CENTER" centerShape="false" contentDisplay="CENTER" layoutX="305.0" layoutY="380.0" prefHeight="51.0" prefWidth="60.0" ripplerFill="#84da96" styleClass="clientSettings" text="" textAlignment="CENTER">
<graphic>
<FontAwesomeIconView fill="WHITE" glyphName="SLIDERS" size="30.0" />
</graphic></JFXButton>
<Label id="serverStatus" alignment="TOP_RIGHT" contentDisplay="RIGHT" layoutX="246.0" layoutY="12.0" prefHeight="25.0" prefWidth="104.0" text="12/100" textAlignment="RIGHT" textFill="WHITE">
<Label id="serverStatus" alignment="TOP_RIGHT" contentDisplay="RIGHT" layoutX="252.0" layoutY="12.0" prefHeight="25.0" prefWidth="97.0" text="12/100" textAlignment="RIGHT" textFill="WHITE">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Label>
<Label id="serverLabel" layoutX="4.0" layoutY="11.0" prefHeight="31.0" prefWidth="265.0" text="СЕРВЕР">
<Label id="serverLabel" layoutX="4.0" layoutY="11.0" prefHeight="27.0" prefWidth="266.0" text="СЕРВЕР">
<font>
<Font name="System Bold" size="18.0" />
</font>
@ -66,6 +66,11 @@
<Insets left="14.0" />
</padding>
</Label>
<JFXButton id="logout" alignment="CENTER" contentDisplay="CENTER" layoutX="19.0" layoutY="383.0" ripplerFill="#61616100" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="#323232" glyphName="LOGOUT" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
</children>
</Pane>
</children>
@ -84,22 +89,17 @@
</JFXButton>
<JFXButton id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MESSAGE_TEXT" size="30" smooth="false" textAlignment="CENTER" />
<MaterialDesignIconView fill="#5fd97a" glyphName="MESSAGE_TEXT" size="20" smooth="false" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="settings" alignment="CENTER" contentDisplay="CENTER" layoutY="90.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="SETTINGS" size="30" textAlignment="CENTER" />
<MaterialDesignIconView fill="WHITE" glyphName="SETTINGS" size="20" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="goConsole" alignment="CENTER" contentDisplay="CENTER" layoutY="138.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CONSOLE" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="logout" alignment="CENTER" contentDisplay="CENTER" layoutY="332.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="LOGOUT" size="30" textAlignment="CENTER" />
<MaterialDesignIconView fill="WHITE" glyphName="CONSOLE" size="20" textAlignment="CENTER" />
</graphic>
</JFXButton>
</children>

View file

@ -12,17 +12,17 @@
<!-- DrLeonardo Design -->
<Pane fx:id="background" prefHeight="425.0" prefWidth="738.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<Pane fx:id="background" prefHeight="450.0" prefWidth="738.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane id="optionsPane" prefHeight="425.0" prefWidth="693.0" styleClass="optionsPane">
<Pane id="optionsPane" prefHeight="450.0" prefWidth="692.0" styleClass="optionsPane">
<children>
<JFXToggleButton fx:id="presset" layoutX="10.0" layoutY="10.0" styleClass="pressetLight" text="Presset 1" />
<JFXToggleButton fx:id="presset" layoutX="267.0" layoutY="10.0" styleClass="pressetMedium" text="Presset 2" />
<JFXToggleButton fx:id="isPresset" layoutX="549.0" layoutY="10.0" prefHeight="58.0" prefWidth="134.0" styleClass="pressetHigh" text="Presset 3" wrapText="true" />
<JFXToggleButton fx:id="presset" layoutX="30.0" layoutY="10.0" opacity="0.21" styleClass="pressetLight" text="Presset 1" />
<JFXToggleButton fx:id="presset" layoutX="287.0" layoutY="10.0" opacity="0.21" styleClass="pressetMedium" text="Presset 2" />
<JFXToggleButton fx:id="isPresset" layoutX="528.0" layoutY="10.0" opacity="0.21" prefHeight="58.0" prefWidth="134.0" styleClass="pressetHigh" text="Presset 3" wrapText="true" />
<Line endX="595.0" layoutX="100.0" layoutY="80.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
<ScrollPane id="modlist" layoutY="84.0" prefHeight="341.0" prefWidth="693.0">
<ScrollPane id="modlist" layoutY="84.0" prefHeight="364.0" prefWidth="693.0">
<content>
<VBox prefHeight="339.0" prefWidth="678.0">
<VBox prefHeight="360.0" prefWidth="678.0">
<children>
</children>
<padding>
@ -45,7 +45,7 @@
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="back" alignment="CENTER" contentDisplay="CENTER" layoutY="379.0" ripplerFill="#61b373" text="" textAlignment="CENTER">
<JFXButton id="back" alignment="CENTER" contentDisplay="CENTER" layoutY="405.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CHEVRON_LEFT" size="30" textAlignment="CENTER" />
</graphic>

View file

@ -110,6 +110,7 @@ var options = {
if(modFile.subTreeLevel != null && modFile.subTreeLevel > 1)
subLevel = modFile.subTreeLevel;
var testMod = new com.jfoenix.controls.JFXCheckBox(modName);
testMod.getStyleClass().add("checkboxOpt");
if(subLevel > 1)
for(var i = 1; i < subLevel; i++)
@ -131,6 +132,7 @@ var options = {
options.update();
});
checkBoxList.add(testMod);
testMod.getStyleClass().add("modname");
if(modDescription != "") {
textDescr = new javafx.scene.text.Text(modDescription);
if(subLevel > 1) {

View file

@ -8,7 +8,7 @@ #layout {
-fx-background-color: transparent;
-fx-background-size: cover;
-fx-pref-width: 738px;
-fx-pref-height: 425px;
-fx-pref-height: 450px;
-fx-background-image: url('images/background.jpg');
}
#background {
@ -37,7 +37,7 @@ #serverStatus{
#mask {
-fx-background-color: rgba(0, 0, 0, 0.5);
-fx-pref-width: 692px;
-fx-pref-height: 425px;
-fx-pref-height: 450px;
}
/** Errors **/
@ -55,7 +55,7 @@ .error{
#bar {
-fx-background-color: #323232;
-fx-pref-width: 46px;
-fx-pref-height: 425px;
-fx-pref-height: 450px;
}
/** buttons in bar **/
#close {
@ -90,7 +90,7 @@ #send:pressed { -fx-background-color: #d8d8d8; }
#authPane {
-fx-background-color: rgba(255, 255, 255, 0.71);
-fx-pref-width: 270px;
-fx-pref-height: 425px;
-fx-pref-height: 450px;
}
#logo {
@ -106,13 +106,14 @@ .auth {
-fx-font-weight: bold;
-fx-font-size: 13pt;
-fx-background-radius: 0;
-fx-background-color: #61B373;
-fx-background-color: #5fd97a;
-fx-text-fill: #ffffff;
-fx-pref-width: 240px;
-fx-pref-width: 200px;
-fx-pref-height: 45px;
-fx-effect: dropshadow(gaussian, rgba(23, 25, 29, 0.3), 15,0,0,3);
}
.auth:hover, .auth:pressed { -fx-background-color: #74C085; }
.auth:hover, .auth:pressed { -fx-background-color: #75e18c; }
#password, #login {
-fx-background-radius: 0;
@ -152,49 +153,93 @@ #rememberchb{
}
#combologin {
-fx-text-fill: #909090;
-fx-prompt-text-fill: #909090;
-fx-pref-width: 200px;
-fx-pref-height: 30px;
}
.combologin,
.combologin {
-fx-font-size: 13px;
-fx-prompt-text-fill: #909090;
-fx-text-fill: #909090;
-fx-background-color: transparent;
}
.combologin .list-cell {
-fx-background: white;
-fx-background-color: transparent;
-fx-text-fill: -fx-text-base-color;
}
.combologin-popup .list-view {
-fx-background-color: white, white;
-fx-background-insets: 0, 1;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 8, 0.0 , 0 , 0 );
}
.combologin .list-cell:filled:selected .text,
.combologin .list-cell:filled:selected .text {
-fx-fill: #909090;
}
.combologin .arrow,
.combologin .arrow {
-fx-background-color: #5fd97a;
}
.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
{
-fx-background: -fx-accent;
-fx-background-color: -fx-selection-bar;
-fx-text-fill: -fx-selection-bar-text;
}
.combologin-popup .list-view .list-cell:filled:hover
{
-fx-background-color: white;
-fx-text-fill: -fx-text-inner-color;
}
/** web**/
#news {
-fx-background-color: transparent;
-fx-pref-width: 423px;
-fx-pref-height: 425px;
-fx-pref-height: 450px;
}
/* MenuPane */
.serverentrance {
-fx-background-color: rgba(255, 255, 255, 0.71);
-fx-pref-width: 386px;
-fx-pref-height: 425px;
-fx-pref-height: 450px;
}
/** buttons **/
.clientLaunch{
-jfx-button-type: FLAT;
-fx-font-weight: bold;
-fx-font-size: 18pt;
-fx-font-size: 16pt;
-fx-background-radius: 0;
-fx-background-color: #61B373;
-fx-background-color: #5fd97a;
-fx-text-fill: #ffffff;
-fx-pref-width: 260px;
-fx-pref-height: 45px;
}
.clientSettings{
-fx-background-position: center;
-jfx-button-type: FLAT;
-fx-background-color: #61B373;
-fx-background-color: #5fd97a;
-fx-background-radius: 0;
-fx-pref-width: 85px;
-fx-pref-height: 51px;
}
.clientLaunch:hover, .clientLaunch:pressed { -fx-background-color: #74C085; }
.clientLaunch:hover, .clientLaunch:pressed { -fx-background-color: #75e18c; }
/* Pressets options */
.pressetLight, .pressetMedium, .pressetHigh {
-jfx-toggle-color: #61B373;
-jfx-toggle-color: #5fd97a;
-jfx-untoggle-color: #FAFAFA;
-jfx-toggle-line-color: rgba(116, 192, 133, 0.79);
-jfx-untoggle-line-color: #999999;
@ -243,7 +288,6 @@ .scroll-pane>.corner {
/* OptionsPane */
#optionsPane > #modlist {
-fx-background-color: transparent;
}
#optionsPane > #modlist > .viewport {
@ -256,9 +300,18 @@ .description-text {
-fx-font-size: 12px;
}
.checkboxOpt {
-jfx-checked-color: #5fd97a;
-jfx-unchecked-color: #909090;
}
.modname {
-fx-text-fill: #323232;
}
.lineHead {
-fx-stroke: #d8d8d8;
-fx-stroke-width: 10;
-fx-stroke-width: 1;
}
.separator *.line {

View file

@ -76,9 +76,9 @@ private static void writeUTF16String(HOutput output, String s) throws IOExceptio
private Instant cacheTime = null;
@LauncherAPI
public ServerPinger(InetSocketAddress address, ClientProfile.Version version) {
this.address = Objects.requireNonNull(address, "address");
this.version = Objects.requireNonNull(version, "version");
public ServerPinger(ClientProfile profile) {
this.address = Objects.requireNonNull(profile.getServerSocketAddress(), "address");
this.version = Objects.requireNonNull(profile.getVersion(), "version");
}
private Result doPing() throws IOException {

View file

@ -15,10 +15,12 @@ public static void initGuard(boolean clientInstance) {
case "wrapper":
{
guard = new LauncherWrapperGuard();
break;
}
case "java":
{
guard = new LauncherJavaGuard();
break;
}
default:
{

View file

@ -27,6 +27,8 @@ public abstract class ClientJSONPoint {
private static final EventLoopGroup group = new NioEventLoopGroup();
protected WebSocketClientHandler webSocketClientHandler;
protected Bootstrap bootstrap = new Bootstrap();
protected boolean ssl = false;
protected int port = -1;
public boolean isClosed;
public ClientJSONPoint(final String uri) throws SSLException {
@ -39,11 +41,16 @@ public ClientJSONPoint(URI uri) throws SSLException {
if (!"ws".equals(protocol) && !"wss".equals(protocol)) {
throw new IllegalArgumentException("Unsupported protocol: " + protocol);
}
boolean ssl = false;
if("wss".equals(protocol))
{
ssl = true;
}
if(uri.getPort() == -1)
{
if("ws".equals(protocol)) port = 80;
else port = 443;
}
else port = uri.getPort();
final SslContext sslCtx;
if (ssl) {
sslCtx = SslContextBuilder.forClient().build();
@ -55,7 +62,7 @@ public ClientJSONPoint(URI uri) throws SSLException {
public void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
if (sslCtx != null) {
pipeline.addLast(sslCtx.newHandler(ch.alloc()));
pipeline.addLast(sslCtx.newHandler(ch.alloc(), uri.getHost(), port));
}
pipeline.addLast("http-codec", new HttpClientCodec());
pipeline.addLast("aggregator", new HttpObjectAggregator(65536));
@ -70,7 +77,7 @@ public void open() throws Exception {
new WebSocketClientHandler(
WebSocketClientHandshakerFactory.newHandshaker(
uri, WebSocketVersion.V13, null, false, EmptyHttpHeaders.INSTANCE, 1280000), this);
ch = bootstrap.connect(uri.getHost(), uri.getPort()).sync().channel();
ch = bootstrap.connect(uri.getHost(), port).sync().channel();
webSocketClientHandler.handshakeFuture().sync();
}
public ChannelFuture send(String text)

Binary file not shown.

View file

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

18
gradlew vendored
View file

@ -1,5 +1,21 @@
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
@ -28,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m"'
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

18
gradlew.bat vendored
View file

@ -1,3 +1,19 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem http://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@ -14,7 +30,7 @@ set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m"
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

View file

@ -18,7 +18,7 @@ public final class Version {
public static final int MAJOR = 5;
public static final int MINOR = 0;
public static final int PATCH = 0;
public static final int BUILD = 5;
public static final int BUILD = 6;
public static final Version.Type RELEASE = Version.Type.BETA;
@LauncherAPI

View file

@ -9,12 +9,12 @@
public class JarHelper {
@FunctionalInterface
interface ZipWalkCallback
public interface ZipWalkCallback
{
void process(ZipInputStream input, ZipEntry e);
}
@FunctionalInterface
interface JarWalkCallback
public interface JarWalkCallback
{
void process(ZipInputStream input, ZipEntry e, String fullClassName, String clazz);
}