Coder Social home page Coder Social logo

launcherruntime's Issues

warning: [deprecation]

Phase 3: Clone runtime repository
Cloning into 'srcRuntime'...
remote: Enumerating objects: 142, done.
remote: Counting objects: 100% (142/142), done.
remote: Compressing objects: 100% (51/51), done.
remote: Total 2674 (delta 53), reused 113 (delta 37), pack-reused 2532
Receiving objects: 100% (2674/2674), 1.34 MiB | 1.01 MiB/s, done.
Resolving deltas: 100% (1237/1237), done.
/home/launcher/server_5.1.8/srcRuntime /home/launcher/server_5.1.8
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/6.1.1/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing
Configuration on demand is an incubating feature.

Task :compileJava
/home/launcher/server_5.1.8/srcRuntime/src/main/java/pro/gravit/launcher/client/gui/overlay/OptionsOverlay.java:161: warning: [deprecation] getOptionalFile(String,OptionalType) in ClientProfile has been deprecated
OptionalFile file = selectedProfile.getOptionalFile(entryPair.name, entryPair.type);
/home/launcher/server_5.1.8/srcRuntime/src/main/java/pro/gravit/launcher/client/gui/overlay/OptionsOverlay.java:182: warning: [deprecation] type in OptionalFile has been deprecated
type = optionalFile.type;
2 warnings

BUILD SUCCESSFUL in 12s
2 actionable tasks: 2 executed

openjdk version "11.0.8" 2020-07-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.8+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode, sharing)

NPE при пинге сервера в лаунчере

Если сервер на перезагрузке или еще не включился, лаунчер выдаст NPE при попытке зайти на него (при открытии профиля даже не отобразит кнопку запуска клиента).

В самом лаунчере так же будут валиться NPE уведомления
2021.10.02 16:16:49 [DEBUG] Ping response (modern): '{"text":"Server is still starting! Please wait before reconnecting."}'
Exception in thread "ServerPinger" java.lang.NullPointerException

runtime 2.0.2

Не рабочая кнопка "Отмена" в сцене 2FA

В сцене 2fa кнопка "Отмена" не работает. Я нашел и скопировал реализацию кнопки "Отмена" в сцене логина и пароля, и она заработала - вернула меня на начальную сцену, но при нажатии кнопки "Войти" на начальной сцене меня сразу перекидывает на сцену 2fa, не давая ввести логин и пароль

Custom serverImage

Для сцены servermenu использовать кастомный serverImage-фон. Для каждого игрового сервера своя фоновая картинка.

Исправление заголовка названия функции (размер шрифта) и описания функции, это относится к элементам в сценах settings и options

image

Размытие SkinHead в окне выбора сервера

Выполнить скалирование через
image.getScaledInstance(imageWidth, imageHeight, java.awt.Image.SCALE_FAST);
Указав в качестве ширины и высоты ширину и высоту #avatar
Скалирование проводить после downloadSkinHead и до convertToFxImage

Баги рантайма

Создал ишую для сбора багов визуальной части. По возможности буду фиксить. Просьба прикреплять скриншот и краткое описание бага.

Не обрабатываемая ошибка.

СПАСИБО гравит за ахренительный код.
@radioegor146
@Zaxar163
будьте добры, пожалуйста - добавьте обработку траблы на 82 строке, которая и может вызывать луп лаунчера при обновлении
Вот ссылка: https://github.com/GravitLauncher/LauncherRuntime/blob/master/src/main/java/pro/gravit/launcher/client/gui/scene/LoginScene.java#L82
ДЛЯ ГРАВИТА ОТДЕЛЬНО: НА 5.0.11 ТАКОЙ ХЕРНИ НЕ БЫЛО.
АПД от 13.04.2020(~0:54МСК). Был проведен эксперимент с последним билдом и настройками из коробки - всё-равно.
апд2(~1:03) Я устал это дерьмо терпеть и ливнул с гравита. СПАСИБО гравит

Не корректно работает выход из аккаунта в мастере

Причина:
При успешном входе AuthFlow не сбрасывается до 0-ого уровня, либо не выгружается из памяти Login сцена, соответственно не вызывается повторный init() (в котором как раз происходит обнуление)

authFlow.clear()
authFlow.add(0)

К чему приводит?
После выхода из аккаунта, и при повторном нажатии на кнопку вход, вызывается функция start(), которая триггерит флоу авторизации без логина и пароля(null, null), т.к. authFlow на 1(а не на нуле), включается TOTP авторизация, поскольку она идет второй.

Рантайм отправляет на бэкенд не полный payload
{"password":{"totp":"239258","type":"totp"}}
А должен отправляться
{"login":"qwerty","password":{"firstPassword":{"password":"superUberPassword","type":"plain"},"secondPassword":{"totp":"496799","type":"totp"},"type":"2fa"}

Бэкэнд такой пейлоад обрабатывать не умеет, т.к. не может понять для какого пользователя пришел totp

Возможный костыль:
В функции start() обнулять authflow т.к. запускается это все дело только без пароля, не должно задеть авторизацию по токену

Куда посмотреть тоже можно:
по логам складывается впечатление, что сцена логина не закрывается после успешной авторизации, а остальные сцены рисуются поверх. Возможно, если закрывать ее корректно, при выходе повторно запустится init(), и флоу обновится

Не собирается (нет библиотек)

  • What went wrong:
    Execution failed for task ':compileJava'.

Could not resolve all files for configuration ':compileClasspath'.
Could not find pro.gravit.launcher:launcher-core:5.2.3-SNAPSHOT.
Searched in the following locations:
- https://oss.sonatype.org/content/repositories/snapshots/pro/gravit/launcher/launcher-core/5.2.3-SNAPSHOT/maven-metadata.xml
- https://oss.sonatype.org/content/repositories/snapshots/pro/gravit/launcher/launcher-core/5.2.3-SNAPSHOT/launcher-core-5.2.3-SNAPSHOT.pom
- https://repo.maven.apache.org/maven2/pro/gravit/launcher/launcher-core/5.2.3-SNAPSHOT/maven-metadata.xml
- https://repo.maven.apache.org/maven2/pro/gravit/launcher/launcher-core/5.2.3-SNAPSHOT/launcher-core-5.2.3-SNAPSHOT.pom
Required by:
project :
Аналогично для pro.gravit.launcher:launcher-ws-api:5.2.3-SNAPSHOT и pro.gravit.launcher:launcher-client-api:5.2.3-SNAPSHOT

IOException Удаленный хост принудительно разорвал существующее подключение

java.io.IOException: Удаленный хост принудительно разорвал существующее подключение
    at sun.nio.ch.SocketDispatcher.read0(SocketDispatcher.java)
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
    at sun.nio.ch.IOUtil.read(IOUtil.java:192)
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379)
    at pro.gravit.repackage.io.netty.buffer.PooledByteBuf.setBytes
    at pro.gravit.repackage.io.netty.buffer.AbstractByteBuf.writeBytes
    at pro.gravit.repackage.io.netty.channel.socket.nio.NioSocketChannel.doReadBytes
    at pro.gravit.repackage.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKey
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKeys
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.run
    at pro.gravit.repackage.io.netty.util.concurrent.SingleThreadEventExecutor$4.run
    at pro.gravit.repackage.io.netty.util.internal.ThreadExecutorMap$2.run
    at java.lang.Thread.run(Thread.java:750)

К сожалению не мог сказать где это и из-за чего произошло
Статистика 25 полученных ошибок
image

Сломанный 2FA в новых версиях

Решился на обновление с версии 5.2.12 до 5.3.5.
Появилась неизвестная мне проблема с юзерами у которых включен 2FA, если точнее - сцена с вводом 2FA кода не открывается и валится экзепшн.

Идентичная проблема: https://discord.com/channels/853340557522370561/853340558470414358/1023488180697190470
https://discord.com/channels/853340557522370561/853340558470414358/1019665673665916968

У меня по стактрейсу такие же ошибки, API работает без ошибок и возвращает все что нужно лаунчеру.

Поиск файлов в других клиентах.

Предлагаю вернуть данную фитчу.
Кто-то говорил что между проектами это работало криво, однако работало прекрасно в пределах одного проекта.
Не нужно было скачивать моды которые уже есть в соседнем клиенте.

Отмена процесса загрузки

Предусмотреть возможность отмены процесса скачивания файлов посредством нажатия на кнопку "закрыть", вместо закрытия лаунчера пользователь будет направлен в servermenu

Неправильная обработка уведомлений

image
Все эти уведомления создают стактрейс

pro.gravit.launcher.request.RequestException: Don't skip Launcher Update
    at pro.gravit.launcher.client.gui.scenes.login.LoginScene.lambda$loginWithOAuth$20
    at pro.gravit.launcher.client.gui.scenes.login.LoginScene.lambda$processing$14
    at java.util.concurrent.CompletableFuture.uniExceptionally
    at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire
    at java.util.concurrent.CompletableFuture.postComplete
    at java.util.concurrent.CompletableFuture.completeExceptionally
    at pro.gravit.launcher.request.websockets.StdWebSocketService.eventHandle
    at pro.gravit.launcher.request.websockets.ClientWebSocketService.onMessage
    at pro.gravit.launcher.request.websockets.WebSocketClientHandler.channelRead0
    at pro.gravit.repackage.io.netty.channel.SimpleChannelInboundHandler.channelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.channelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead
    at pro.gravit.repackage.io.netty.handler.ssl.SslHandler.unwrap
    at pro.gravit.repackage.io.netty.handler.ssl.SslHandler.decodeJdkCompatible
    at pro.gravit.repackage.io.netty.handler.ssl.SslHandler.decode
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.callDecode
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.channelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead
    at pro.gravit.repackage.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.DefaultChannelPipeline.fireChannelRead
    at pro.gravit.repackage.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKey
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKeys
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.run
    at pro.gravit.repackage.io.netty.util.concurrent.SingleThreadEventExecutor$4.run
    at pro.gravit.repackage.io.netty.util.internal.ThreadExecutorMap$2.run
    at java.lang.Thread.run

При этом очень странно что есть некоторые из них вообще, игроков не так много на проекте
однако превышение лимита уже довольно много было

    "authLimiter": {
      "message": "Превышен лимит авторизаций",
      "exclude": [],
      "rateLimit": 3,
      "rateLimitMillis": 8000,
      "type": "authLimiter"
    },

Если это 8 секунд на 3 авторизации, то нужно увеличить, как минимум до 8-10 в секунду по умолчанию
с двойной авторизацией не уверен что ошибка есть в чистом рантайме, но думаю возможно ещё осталась

Не закрывается старый лаунчер после обновления

Версия: v5.1.4-1 stable

После обновления(build) лаунчера не закрывается старый лаунчер

Из логов:
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at com.sun.javafx.tk.quantum.QuantumToolkit.isSupported(QuantumToolkit.java:1196)
at com.sun.javafx.application.PlatformImpl.isSupportedImpl(PlatformImpl.java:809)
at com.sun.javafx.application.PlatformImpl.isSupported(PlatformImpl.java:482)
at javafx.application.Platform.isSupported(Platform.java:168)
at com.sun.javafx.scene.input.PickResultChooser.processOffer(PickResultChooser.java:182)
at com.sun.javafx.scene.input.PickResultChooser.offer(PickResultChooser.java:143)
at javafx.scene.Node.impl_intersects(Node.java:4943)
at javafx.scene.layout.Region.impl_pickNodeLocal(Region.java:2942)
at javafx.scene.Node.impl_pickNode(Node.java:4912)
at javafx.scene.layout.Region.impl_pickNodeLocal(Region.java:2936)
at javafx.scene.Node.impl_pickNode(Node.java:4912)
at javafx.scene.Scene$MouseHandler.pickNode(Scene.java:3899)
at javafx.scene.Scene$MouseHandler.access$1600(Scene.java:3485)
at javafx.scene.Scene.pick(Scene.java:1942)
at javafx.scene.Scene.access$6700(Scene.java:159)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3711)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:432)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:410)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:937)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$4(WinApplication.java:186)
at java.lang.Thread.run(Unknown Source)

Редактирование файлов опций клиента как опц. мода

Поддержка редактирования файла опций майнкрафта как опционального мода, где язык в триггерах опц модов.
И, желательно, подтянуть опцию смены названия файла при установке, чтобы на сервере хранились options_en.txt, а на клиенте при запуске майнкрафта становилось options.txt

Ошибка Permissions denied

pro.gravit.launcher.request.RequestException: Permissions denied
    at pro.gravit.launcher.request.websockets.StdWebSocketService.eventHandle
    at pro.gravit.launcher.request.websockets.ClientWebSocketService.onMessage
    at pro.gravit.launcher.request.websockets.WebSocketClientHandler.channelRead0
    at pro.gravit.repackage.io.netty.channel.SimpleChannelInboundHandler.channelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.channelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead
    at pro.gravit.repackage.io.netty.handler.ssl.SslHandler.unwrap
    at pro.gravit.repackage.io.netty.handler.ssl.SslHandler.decodeJdkCompatible
    at pro.gravit.repackage.io.netty.handler.ssl.SslHandler.decode
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.callDecode
    at pro.gravit.repackage.io.netty.handler.codec.ByteToMessageDecoder.channelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead
    at pro.gravit.repackage.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead
    at pro.gravit.repackage.io.netty.channel.DefaultChannelPipeline.fireChannelRead
    at pro.gravit.repackage.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKey
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.processSelectedKeys
    at pro.gravit.repackage.io.netty.channel.nio.NioEventLoop.run
    at pro.gravit.repackage.io.netty.util.concurrent.SingleThreadEventExecutor$4.run
    at pro.gravit.repackage.io.netty.util.internal.ThreadExecutorMap$2.run
    at java.lang.Thread.run

Не корректно работают и отображаются ссылки в runtime!

Доброго времени суток! Занялся созданием макета дизайна под лаунчер. Как мне сказали в сообществе, чтобы создать ссылку нужно в конфиге JavaRuntime указать ссылки, сделал. Залезть в сам JavaRuntime.jar и в файле LoginScene прописать теги необходимым ссылкам, сделал. Добавил в JavaFXSceneBuilder fx:id для моей сцены. Собрал клиент - картина маслом. Иконки не отображаются, ссылки не работают, черти что! Хотя в JavaFXSceneBuilder всё корректно отображается. Помогите!
Вот, что добавил в LoginScene.java:

        if (application.guiModuleConfig.webURL != null)
            LookupHelper.<Hyperlink>lookup(layout, "#web").setOnAction((e) ->
                    application.openURL(application.guiModuleConfig.webURL));

Скрины fx:id и визуальная часть лаунчера ниже
unknown2
unknown1
Вместо цифр, должны быть кнопки
unknown

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.