├── .gitattributes ├── .github └── workflows │ └── push.yml ├── .gitignore ├── .gitlab-ci.yml ├── .idea └── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── .vscode └── launch.json ├── LICENSE ├── build.gradle ├── compat └── lang │ ├── runtime_be.properties │ ├── runtime_en.properties │ ├── runtime_pl.properties │ ├── runtime_ru.properties │ └── runtime_uk.properties ├── convertprops.sh ├── extensions.json ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── runtime ├── components │ ├── background.fxml │ ├── buttons │ │ ├── back.fxml │ │ ├── cancel.fxml │ │ ├── clientSettings.fxml │ │ ├── close.fxml │ │ ├── console.fxml │ │ ├── copy.fxml │ │ ├── customization.css │ │ ├── customization.fxml │ │ ├── deauth.fxml │ │ ├── exit.fxml │ │ ├── kill.css │ │ ├── kill.fxml │ │ ├── lang.fxml │ │ ├── minimize.fxml │ │ └── settings.fxml │ ├── components.css │ ├── notification.fxml │ ├── panels │ │ ├── leftpanel.css │ │ └── leftpanel.fxml │ ├── serverButton.fxml │ ├── userBlock.css │ └── userBlock.fxml ├── dialogs │ ├── apply │ │ └── dialog.fxml │ ├── dialogs.css │ └── info │ │ └── dialog.fxml ├── favicon.png ├── images │ ├── background.png │ ├── icons │ │ ├── checkbox1_off.png │ │ ├── checkbox1_on.png │ │ ├── checkbox_arrow_button.png │ │ ├── checkbox_off.png │ │ ├── checkbox_on.png │ │ ├── default.png │ │ ├── lock.png │ │ └── user.png │ ├── logo.png │ └── servers │ │ └── example.png ├── overlay │ ├── processing │ │ ├── processing.css │ │ └── processing.fxml │ ├── uploadasset │ │ └── uploadasset.fxml │ ├── webauth │ │ ├── webauth.css │ │ └── webauth.fxml │ └── welcome │ │ ├── welcome.css │ │ └── welcome.fxml ├── runtime_be.properties ├── runtime_en.properties ├── runtime_pl.properties ├── runtime_ru.properties ├── runtime_uk.properties ├── scenes │ ├── console │ │ ├── console.css │ │ └── console.fxml │ ├── debug │ │ ├── debug.css │ │ └── debug.fxml │ ├── internal │ │ ├── browser │ │ │ ├── browser.css │ │ │ └── browser.fxml │ │ └── default │ │ │ ├── default.css │ │ │ └── default.fxml │ ├── login │ │ ├── login.css │ │ ├── login.fxml │ │ └── methods │ │ │ ├── loginonly.fxml │ │ │ ├── loginpassword.fxml │ │ │ └── totp.fxml │ ├── options │ │ ├── options.css │ │ └── options.fxml │ ├── serverinfo │ │ ├── serverinfo.css │ │ └── serverinfo.fxml │ ├── servermenu │ │ ├── servermenu.css │ │ └── servermenu.fxml │ ├── settings │ │ ├── globalsettings.fxml │ │ ├── settings.css │ │ └── settings.fxml │ └── update │ │ ├── update.css │ │ └── update.fxml ├── styles │ ├── Comfortaa-Bold.ttf │ ├── Comfortaa-Light.ttf │ ├── Comfortaa-Medium.ttf │ ├── Comfortaa-Regular.ttf │ ├── Comfortaa-SemiBold.ttf │ ├── FONT OFL.txt │ ├── global.css │ └── variables.css └── themes │ └── dark │ ├── images │ └── background.png │ └── styles │ └── variables.css ├── settings.gradle └── src └── main └── java └── pro └── gravit └── launcher └── gui ├── JavaFXApplication.java ├── JavaRuntimeModule.java ├── RuntimeSecurityService.java ├── SkinManager.java ├── StdJavaRuntimeProvider.java ├── commands ├── RuntimeCommand.java ├── VersionCommand.java └── runtime │ ├── DialogCommand.java │ ├── GetSizeCommand.java │ ├── InfoCommand.java │ ├── NotifyCommand.java │ ├── ReloadCommand.java │ ├── ShowFxmlCommand.java │ ├── ThemeCommand.java │ ├── WarpCommand.java │ └── WebViewCommand.java ├── components ├── ServerButton.java └── UserBlock.java ├── config ├── DesignConstants.java ├── GuiModuleConfig.java ├── RuntimeSettings.java └── StdSettingsManager.java ├── dialogs ├── AbstractDialog.java ├── ApplyDialog.java ├── InfoDialog.java └── NotificationDialog.java ├── helper ├── EnFSHelper.java ├── LookupHelper.java └── PositionHelper.java ├── impl ├── AbstractStage.java ├── AbstractVisualComponent.java ├── BackgroundComponent.java ├── ContextHelper.java ├── FXExecutorService.java ├── FXMLFactory.java ├── GuiEventHandler.java ├── GuiObjectsContainer.java ├── MessageManager.java └── TriggerManager.java ├── overlays ├── AbstractOverlay.java ├── CenterOverlay.java ├── ProcessingOverlay.java ├── UploadAssetOverlay.java └── WelcomeOverlay.java ├── scenes ├── AbstractScene.java ├── console │ └── ConsoleScene.java ├── debug │ ├── DebugScene.java │ └── ProcessLogOutput.java ├── interfaces │ └── SceneSupportUserBlock.java ├── internal │ └── BrowserScene.java ├── login │ ├── AuthFlow.java │ ├── LoginAuthButtonComponent.java │ ├── LoginScene.java │ └── methods │ │ ├── AbstractAuthMethod.java │ │ ├── LoginAndPasswordAuthMethod.java │ │ ├── LoginOnlyAuthMethod.java │ │ ├── TotpAuthMethod.java │ │ └── WebAuthMethod.java ├── options │ ├── OptionsScene.java │ └── OptionsTab.java ├── serverinfo │ └── ServerInfoScene.java ├── servermenu │ └── ServerMenuScene.java ├── settings │ ├── BaseSettingsScene.java │ ├── GlobalSettingsScene.java │ ├── SettingsScene.java │ └── components │ │ ├── JavaSelectorComponent.java │ │ ├── LanguageSelectorComponent.java │ │ └── ThemeSelectorComponent.java └── update │ ├── UpdateScene.java │ └── VisualDownloader.java ├── service ├── AuthService.java ├── JavaService.java ├── LaunchService.java ├── OfflineService.java ├── PingService.java ├── ProfilesService.java └── RuntimeDialogService.java ├── stage ├── ConsoleStage.java ├── DialogStage.java └── PrimaryStage.java └── utils ├── AssetIndexHelper.java ├── JavaFxUtils.java ├── RuntimeCryptedFile.java ├── SystemMemory.java └── SystemTheme.java /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | *.[cC][mM][dD] text eol=crlf 3 | *.[bB][aA][tT] text eol=crlf 4 | *.[pP][sS]1 text eol=crlf 5 | *.[sS][hH] text eol=lf 6 | 7 | *.patch text eol=lf 8 | 9 | *.png binary 10 | *.lzma binary 11 | *.zip binary 12 | *.gzip binary 13 | *.exe binary 14 | *.ico binary 15 | *.eot binary 16 | *.ttf binary 17 | *.woff binary 18 | *.woff2 binary 19 | *.a binary 20 | *.lib binary 21 | *.icns binary 22 | *.jpg binary 23 | *.jpeg binary 24 | *.gif binary 25 | *.mov binary 26 | *.mp4 binary 27 | *.mp3 binary 28 | *.flv binary 29 | *.fla binary 30 | *.swf binary 31 | *.gz binary 32 | *.tar binary 33 | *.tar.gz binary 34 | *.7z binary 35 | *.pyc binary 36 | *.gpg binary 37 | *.bin binary 38 | 39 | *.gitattributes text 40 | .gitignore text 41 | 42 | # Java sources 43 | *.java text diff=java 44 | *.kt text diff=kotlin 45 | *.groovy text diff=java 46 | *.scala text diff=java 47 | *.gradle text diff=java 48 | *.gradle.kts text diff=kotlin 49 | 50 | # These files are text and should be normalized (Convert crlf => lf) 51 | *.css text diff=css 52 | *.scss text diff=css 53 | *.sass text 54 | *.df text 55 | *.htm text diff=html 56 | *.html text diff=html 57 | *.js text 58 | *.jsp text 59 | *.jspf text 60 | *.jspx text 61 | *.properties text 62 | *.tld text 63 | *.tag text 64 | *.tagx text 65 | *.xml text 66 | 67 | # These files are binary and should be left untouched 68 | # (binary is a macro for -text -diff) 69 | *.class binary 70 | *.dll binary 71 | *.ear binary 72 | *.jar binary 73 | *.so binary 74 | *.war binary 75 | *.jks binary 76 | 77 | mvnw text eol=lf 78 | gradlew text eol=lf -------------------------------------------------------------------------------- /.github/workflows/push.yml: -------------------------------------------------------------------------------- 1 | name: push 2 | on: 3 | push: 4 | # create: 5 | # tags: 6 | # - v* 7 | jobs: 8 | launcher: 9 | name: LauncherRuntime 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout 13 | uses: actions/checkout@v2 14 | with: 15 | submodules: recursive 16 | 17 | - name: Cache Gradle 18 | uses: actions/cache@v4 19 | with: 20 | path: ~/.gradle/caches 21 | key: gravit-${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}-launcher-runtime 22 | 23 | - name: Set up JDK 21 24 | uses: actions/setup-java@v1 25 | with: 26 | java-version: 21 27 | 28 | - name: Grant execute permission for gradlew 29 | run: chmod +x gradlew 30 | 31 | - name: Build with Gradle 32 | run: ./gradlew build 33 | 34 | - name: Create artifacts 35 | run: | 36 | mkdir -p artifacts 37 | cd runtime 38 | zip -r -9 ../artifacts/runtime.zip * 39 | cd ../build/libs 40 | cp *.jar ../../artifacts 41 | 42 | - name: Upload artifacts 43 | uses: actions/upload-artifact@v4 44 | with: 45 | name: LauncherRuntime 46 | path: artifacts 47 | 48 | - name: Get version value, set to env 49 | if: startsWith(github.event.ref, 'refs/tags') 50 | run: echo "LAUNCHER_VERSION=$(echo ${{ github.event.ref }} | awk -F\/ '{print $3}')" >> $GITHUB_ENV 51 | 52 | - name: Create release 53 | id: create_release 54 | uses: softprops/action-gh-release@v1 55 | if: startsWith(github.event.ref, 'refs/tags') 56 | env: 57 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 58 | # Список настроек тута: https://github.com/softprops/action-gh-release#-customizing 59 | # Можно сделать пуш описания релиза из файла 60 | with: 61 | name: GravitLauncher Runtime ${{ env.LAUNCHER_VERSION }} 62 | draft: false 63 | prerelease: false 64 | files: | 65 | ./artifacts/runtime.zip 66 | ./artifacts/*.jar 67 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Eclipse ### 2 | .metadata 3 | bin/ 4 | tmp/ 5 | *.tmp 6 | *.bak 7 | *.swp 8 | *~.nib 9 | local.properties 10 | .settings/ 11 | .loadpath 12 | .recommenders 13 | tst/ 14 | 15 | # External tool builders 16 | .externalToolBuilders/ 17 | 18 | # Locally stored "Eclipse launch configurations" 19 | *.launch 20 | 21 | # CDT-specific (C/C++ Development Tooling) 22 | .cproject 23 | 24 | # CDT- autotools 25 | .autotools 26 | 27 | # Java annotation processor (APT) 28 | .factorypath 29 | 30 | # sbteclipse plugin 31 | .target 32 | 33 | # Tern plugin 34 | .tern-project 35 | 36 | # TeXlipse plugin 37 | .texlipse 38 | 39 | # STS (Spring Tool Suite) 40 | .springBeans 41 | 42 | # Code Recommenders 43 | .recommenders/ 44 | 45 | # Annotation Processing 46 | .apt_generated/ 47 | 48 | ### Eclipse Patch ### 49 | # Eclipse Core 50 | .project 51 | 52 | # JDT-specific (Eclipse Java Development Tools) 53 | .classpath 54 | 55 | # Annotation Processing 56 | .apt_generated 57 | 58 | ### Intellij+all ### 59 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm 60 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 61 | 62 | # CMake 63 | cmake-build-*/ 64 | 65 | # File-based project format 66 | *.iws 67 | 68 | # IntelliJ 69 | out/ 70 | 71 | # mpeltonen/sbt-idea plugin 72 | .idea_modules/ 73 | 74 | # JIRA plugin 75 | atlassian-ide-plugin.xml 76 | 77 | # Crashlytics plugin (for Android Studio and IntelliJ) 78 | com_crashlytics_export_strings.xml 79 | crashlytics.properties 80 | crashlytics-build.properties 81 | fabric.properties 82 | 83 | ### Intellij+all Patch ### 84 | .idea/ 85 | *.iml 86 | modules.xml 87 | .idea/misc.xml 88 | *.ipr 89 | Launcher.iws 90 | !/.idea/ 91 | /.idea/* 92 | !/.idea/codeStyles 93 | /.idea/codeStyles/* 94 | !/.idea/codeStyles/codeStyleConfig.xml 95 | !/.idea/codeStyles/Project.xml 96 | ### Gradle ### 97 | .gradle 98 | .gradle/ 99 | /build/ 100 | build/ 101 | # Ignore Gradle GUI config 102 | gradle-app.setting 103 | 104 | # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) 105 | !gradle-wrapper.jar 106 | 107 | # Cache of project 108 | .gradletasknamecache 109 | 110 | # Other 111 | buildnumber 112 | *.directory 113 | cmd.bat 114 | cmd.sh 115 | project/target 116 | ## PVS Studio 117 | .PVS-Studio/ 118 | ## VS Code 119 | !/.vscode 120 | /.vscode/* 121 | !/.vscode/launch.json -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | # This file is a template, and might need editing before it works on your project. 2 | # This is the Gradle build system for JVM applications 3 | # https://gradle.org/ 4 | # https://github.com/gradle/gradle 5 | image: gradle:jdk11 6 | 7 | # Disable the Gradle daemon for Continuous Integration servers as correctness 8 | # is usually a priority over speed in CI environments. Using a fresh 9 | # runtime for each build is more reliable since the runtime is completely 10 | # isolated from any previous builds. 11 | variables: 12 | GRADLE_OPTS: "-Dorg.gradle.daemon=false" 13 | 14 | before_script: 15 | - export GRADLE_USER_HOME=`pwd`/.gradle 16 | - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' 17 | - eval $(ssh-agent -s) 18 | - echo "$SSH_PRIVATE_KEY" | base64 -d | ssh-add - > /dev/null 19 | - mkdir -p ~/.ssh 20 | - chmod 700 ~/.ssh 21 | - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config 22 | build: 23 | stage: build 24 | script: gradle -Dorg.gradle.daemon=false --build-cache assemble 25 | after_script: 26 | - apt-get -y update 27 | - apt-get -y install zip 28 | - mkdir -p artifacts 29 | - cd runtime 30 | - zip -r -9 ../artifacts/runtime.zip * 31 | - cd ../build/libs 32 | - cp *.jar ../../artifacts 33 | cache: 34 | key: "$CI_COMMIT_REF_NAME" 35 | policy: push 36 | paths: 37 | - build 38 | - .gradle 39 | artifacts: 40 | expire_in: 6 week 41 | paths: 42 | - artifacts 43 | 44 | test: 45 | stage: test 46 | script: gradle check 47 | cache: 48 | key: "$CI_COMMIT_REF_NAME" 49 | policy: pull 50 | paths: 51 | - build 52 | - .gradle 53 | 54 | deploy-demo: 55 | stage: deploy 56 | only: [master] 57 | script: 58 | - gradle build 59 | - eval $(ssh $SSH_USER@$SSH_HOST 'cd $SSH_DIR && cat deploy-runtime.sh') 60 | cache: 61 | key: "$CI_COMMIT_REF_NAME" 62 | policy: pull 63 | paths: 64 | - build 65 | - .gradle -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 20 | 21 | 23 | 24 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Используйте IntelliSense, чтобы узнать о возможных атрибутах. 3 | // Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов. 4 | // Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "java", 9 | "name": "Debug", 10 | "request": "launch", 11 | "mainClass": "pro.gravit.launcher.runtime.debug.DebugMain", 12 | "vmArgs": [ 13 | "-Dlauncher.debug=true", 14 | "-Dlauncher.stacktrace=true", 15 | "-Dlauncherdebug.modules=pro.gravit.launcher.gui.JavaRuntimeModule", 16 | "-Dlauncherdebug.projectname=MineCraft", // Изменить на projectName из конфигурации LaunchServer.json 17 | "-Dlauncherdebug.websocket=wss://launcher.gravit-support.ru/api" 18 | ], 19 | "classPaths": [ 20 | "$Auto", 21 | "JavaRuntime.main" 22 | ] 23 | }, 24 | { 25 | "type": "java", 26 | "name": "Debug DEV", 27 | "request": "launch", 28 | "mainClass": "pro.gravit.launcher.runtime.debug.DebugMain", 29 | "vmArgs": [ 30 | "-Dlauncher.debug=true", 31 | "-Dlauncher.stacktrace=true", 32 | "-Dlauncher.dev=true", 33 | "-Dlauncherdebug.modules=pro.gravit.launcher.gui.JavaRuntimeModule", 34 | "-Dlauncherdebug.projectname=MineCraft", // Изменить на projectName из конфигурации LaunchServer.json 35 | "-Dlauncherdebug.websocket=wss://launcher.gravit-support.ru/api" 36 | ], 37 | "classPaths": [ 38 | "$Auto", 39 | "JavaRuntime.main" 40 | ] 41 | } 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 GravitLauncherTeam 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /convertprops.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | native2ascii compat/lang/runtime_ru.properties runtime/runtime_ru.properties 3 | native2ascii compat/lang/runtime_en.properties runtime/runtime_en.properties 4 | native2ascii compat/lang/runtime_be.properties runtime/runtime_be.properties 5 | native2ascii compat/lang/runtime_pl.properties runtime/runtime_pl.properties 6 | native2ascii compat/lang/runtime_uk.properties runtime/runtime_uk.properties -------------------------------------------------------------------------------- /extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "redhat.java", 4 | "vscode.github", 5 | "vscode.git", 6 | "redhat.vscode-xml", 7 | "GitHub.vscode-pull-request-github", 8 | "vscjava.vscode-java-dependency", 9 | "vscjava.vscode-gradle", 10 | "vscjava.vscode-java-debug", 11 | "vscode.css-language-features", 12 | "cwan.native-ascii-converter", 13 | "SirTori.indenticator", 14 | "oderwat.indent-rainbow", 15 | "liamhammett.inline-parameters", 16 | "mhutchie.git-graph" 17 | ] 18 | } -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.parallel=true 2 | org.gradle.daemon=false 3 | org.gradle.configureondemand=true 4 | org.gradle.caching=true 5 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GravitLauncher/LauncherRuntime/33b71d2ab09ec1406bb43cb0e6f4ce955ed8d4f4/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | @rem SPDX-License-Identifier: Apache-2.0 17 | @rem 18 | 19 | @if "%DEBUG%"=="" @echo off 20 | @rem ########################################################################## 21 | @rem 22 | @rem Gradle startup script for Windows 23 | @rem 24 | @rem ########################################################################## 25 | 26 | @rem Set local scope for the variables with windows NT shell 27 | if "%OS%"=="Windows_NT" setlocal 28 | 29 | set DIRNAME=%~dp0 30 | if "%DIRNAME%"=="" set DIRNAME=. 31 | @rem This is normally unused 32 | set APP_BASE_NAME=%~n0 33 | set APP_HOME=%DIRNAME% 34 | 35 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 36 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 37 | 38 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 39 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 40 | 41 | @rem Find java.exe 42 | if defined JAVA_HOME goto findJavaFromJavaHome 43 | 44 | set JAVA_EXE=java.exe 45 | %JAVA_EXE% -version >NUL 2>&1 46 | if %ERRORLEVEL% equ 0 goto execute 47 | 48 | echo. 1>&2 49 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 50 | echo. 1>&2 51 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 52 | echo location of your Java installation. 1>&2 53 | 54 | goto fail 55 | 56 | :findJavaFromJavaHome 57 | set JAVA_HOME=%JAVA_HOME:"=% 58 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 59 | 60 | if exist "%JAVA_EXE%" goto execute 61 | 62 | echo. 1>&2 63 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 64 | echo. 1>&2 65 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 66 | echo location of your Java installation. 1>&2 67 | 68 | goto fail 69 | 70 | :execute 71 | @rem Setup the command line 72 | 73 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 74 | 75 | 76 | @rem Execute Gradle 77 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 78 | 79 | :end 80 | @rem End local scope for the variables with windows NT shell 81 | if %ERRORLEVEL% equ 0 goto mainEnd 82 | 83 | :fail 84 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 85 | rem the _cmd.exe /c_ return code! 86 | set EXIT_CODE=%ERRORLEVEL% 87 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 88 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 89 | exit /b %EXIT_CODE% 90 | 91 | :mainEnd 92 | if "%OS%"=="Windows_NT" endlocal 93 | 94 | :omega 95 | -------------------------------------------------------------------------------- /runtime/components/background.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /runtime/components/buttons/back.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /runtime/components/buttons/cancel.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /runtime/components/buttons/clientSettings.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /runtime/components/buttons/close.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /runtime/components/buttons/console.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /runtime/components/buttons/copy.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /runtime/components/buttons/customization.css: -------------------------------------------------------------------------------- 1 | #customization { 2 | -fx-background-color: -fx-colors-text; 3 | -fx-background-radius: 4px; 4 | -fx-opacity: 0; 5 | -fx-effect: none; 6 | } 7 | #customization:hover { 8 | -fx-opacity: 1; 9 | } 10 | #customization>.icons { 11 | -fx-fill: -fx-colors-base; 12 | } -------------------------------------------------------------------------------- /runtime/components/buttons/customization.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /runtime/components/buttons/deauth.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 17 | -------------------------------------------------------------------------------- /runtime/components/buttons/exit.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 17 | -------------------------------------------------------------------------------- /runtime/components/buttons/kill.css: -------------------------------------------------------------------------------- 1 | .kill:hover, 2 | .kill:pressed { 3 | -fx-fill: -fx-red !important; 4 | } -------------------------------------------------------------------------------- /runtime/components/buttons/kill.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /runtime/components/buttons/lang.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /runtime/components/buttons/minimize.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /runtime/components/buttons/settings.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /runtime/components/components.css: -------------------------------------------------------------------------------- 1 | /*-- Уведомления --*/ 2 | .notification { 3 | -fx-padding: 10px; 4 | -fx-background-color: -fx-colors-base; 5 | -fx-background-radius: 10px 0px 0px 10px; 6 | -fx-effect: -fx-effect-dropshadow; 7 | } 8 | .notification HBox VBox { 9 | -fx-padding: 0px 10px 0px 10px; 10 | -fx-spacing: 5; 11 | } 12 | #notificationHeading { 13 | -fx-fill: -fx-colors-text; 14 | -fx-font-weight: bold; 15 | -fx-font-size: 14px; 16 | } 17 | #notificationText { 18 | -fx-text-fill: -fx-colors-text; 19 | -fx-font-size: 10px; 20 | } 21 | /*-- Блок сервера --*/ 22 | .serverButtons { 23 | -fx-background-color: -fx-glass; 24 | -fx-background-radius: 20px; 25 | } 26 | #serverButton { 27 | -fx-background-radius: 20px; 28 | -fx-cursor: hand; 29 | -fx-background-color: -fx-glass; 30 | } 31 | #serverButton:hover { 32 | -fx-background-color: -fx-violet-hover2; 33 | } 34 | #serverButtonSelected, 35 | #serverButtonPressed { 36 | -fx-background-color: -fx-violet-hover2; 37 | } 38 | /*-- Информация о сервере --*/ 39 | #nameServer { 40 | -fx-text-fill: -fx-colors-text; 41 | -fx-font-size: 20px; 42 | -fx-wrap-text: false; 43 | -fx-font-weight: bold; 44 | } 45 | #nameServer:hover { 46 | -fx-text-fill: -fx-colors-text-hover; 47 | } 48 | #genreServer { 49 | -fx-text-fill: -fx-colors-text; 50 | -fx-font-size: 12px; 51 | } 52 | /*-- Индикатор онлайна --*/ 53 | .online-green { 54 | -fx-background-color: -fx-green; 55 | } 56 | .online-violet { 57 | -fx-background-color: -fx-violet; 58 | } 59 | #online, 60 | #speedLoad { 61 | -fx-background-radius: 5px; 62 | -fx-text-fill: -fx-colors-base; 63 | -fx-font-size: 14px; 64 | -fx-font-weight: bold; 65 | -fx-padding: 8px; 66 | } 67 | /*-- Кнопка сохранить (для всех сцен) --*/ 68 | #save { 69 | -fx-font-weight: bold; 70 | -fx-font-size: 18px; 71 | -fx-text-align: center; 72 | -fx-text-fill: -fx-colors-base; 73 | -fx-background-color: -fx-violet; 74 | -fx-background-radius: 10px; 75 | -fx-padding: 8px; 76 | } 77 | #save:hover { 78 | -fx-background-color: -fx-violet-hover; 79 | } 80 | #reset { 81 | -fx-font-weight: bold; 82 | -fx-font-size: 14px; 83 | -fx-text-align: center; 84 | -fx-text-fill: -fx-colors-base; 85 | -fx-background-color: -fx-red; 86 | -fx-background-radius: 5px; 87 | -fx-padding: 8px; 88 | } 89 | #reset:hover { 90 | -fx-background-color: -fx-red-hover; 91 | } 92 | -------------------------------------------------------------------------------- /runtime/components/notification.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /runtime/components/panels/leftpanel.css: -------------------------------------------------------------------------------- 1 | #leftpanel { 2 | -fx-background-color: -fx-glass; 3 | } -------------------------------------------------------------------------------- /runtime/components/panels/leftpanel.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /runtime/components/serverButton.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |