LiquidBounce icon indicating copy to clipboard operation
LiquidBounce copied to clipboard

[BUG] Trying to add Microsoft account crashes game

Open kaduvert opened this issue 2 years ago • 2 comments

LiquidBounce Build/Version

b73 release

Operating System

Linux

Minecraft Version

1.8.9

Describe the bug

When clicking on "Login with Microsoft" in the Account Manager, closing the browser window that opens and clicking the button again crashes the game

Steps to reproduce

  • Goto Alt Manager
  • Click on "Login with Microsoft"
  • Click it again

Client Log

[10:20:31] [Client thread/INFO] [net.labymod.support.util.CapturePrintStream]: ---- Minecraft Crash Report ----

WARNING: coremods are present:
  LabyModCoreMod (LabyMod-3.jar)
  TransformerLoader (liquidbounce.jar)
Contact their authors BEFORE contacting forge

// But it works on my machine.

Time: 5/9/22 10:20 AM
Description: Updating screen events

java.net.BindException: Die Adresse wird bereits verwendet // The address is already in use
	at sun.nio.ch.Net.bind0(Native Method)
	at sun.nio.ch.Net.bind(Net.java:461)
	at sun.nio.ch.Net.bind(Net.java:453)
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222)
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
	at sun.net.httpserver.ServerImpl.<init>(ServerImpl.java:100)
	at sun.net.httpserver.HttpServerImpl.<init>(HttpServerImpl.java:50)
	at sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)
	at com.sun.net.httpserver.HttpServer.create(HttpServer.java:130)
	at me.liuli.elixir.compat.OAuthServer.<init>(OAuthServer.kt:13)
	at me.liuli.elixir.account.MicrosoftAccount$Companion.buildFromOpenBrowser(MicrosoftAccount.kt:152)
	at me.liuli.elixir.account.MicrosoftAccount$Companion.buildFromOpenBrowser$default(MicrosoftAccount.kt:151)
	at net.ccbluex.liquidbounce.ui.client.altmanager.menus.GuiLoginIntoAccount.func_146284_a(GuiLoginIntoAccount.kt:124)
	at net.minecraft.client.gui.GuiScreen.func_73864_a(GuiScreen.java:467)
	at net.ccbluex.liquidbounce.ui.client.altmanager.menus.GuiLoginIntoAccount.func_73864_a(GuiLoginIntoAccount.kt:192)
	at net.minecraft.client.gui.GuiScreen.func_146274_d(GuiScreen.java:555)
	at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:524)
	at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1674)
	at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1024)
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:349)
	at net.minecraft.client.main.Main.main(SourceFile:124)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210)
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245)
	at org.multimc.EntryPoint.listen(EntryPoint.java:143)
	at org.multimc.EntryPoint.main(EntryPoint.java:34)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
	at sun.nio.ch.Net.bind0(Native Method)
	at sun.nio.ch.Net.bind(Net.java:461)
	at sun.nio.ch.Net.bind(Net.java:453)
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222)
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
	at sun.net.httpserver.ServerImpl.<init>(ServerImpl.java:100)
	at sun.net.httpserver.HttpServerImpl.<init>(HttpServerImpl.java:50)
	at sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)
	at com.sun.net.httpserver.HttpServer.create(HttpServer.java:130)
	at me.liuli.elixir.compat.OAuthServer.<init>(OAuthServer.kt:13)
	at me.liuli.elixir.account.MicrosoftAccount$Companion.buildFromOpenBrowser(MicrosoftAccount.kt:152)
	at me.liuli.elixir.account.MicrosoftAccount$Companion.buildFromOpenBrowser$default(MicrosoftAccount.kt:151)
	at net.ccbluex.liquidbounce.ui.client.altmanager.menus.GuiLoginIntoAccount.func_146284_a(GuiLoginIntoAccount.kt:124)
	at net.minecraft.client.gui.GuiScreen.func_73864_a(GuiScreen.java:467)
	at net.ccbluex.liquidbounce.ui.client.altmanager.menus.GuiLoginIntoAccount.func_73864_a(GuiLoginIntoAccount.kt:192)
	at net.minecraft.client.gui.GuiScreen.func_146274_d(GuiScreen.java:555)
	at net.minecraft.client.gui.GuiScreen.func_146269_k(GuiScreen.java:524)

-- Affected screen --
Details:
	Screen name: net.ccbluex.liquidbounce.ui.client.altmanager.menus.GuiLoginIntoAccount
Stacktrace:
	at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1674)
	at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1024)
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:349)
	at net.minecraft.client.main.Main.main(SourceFile:124)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210)
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245)
	at org.multimc.EntryPoint.listen(EntryPoint.java:143)
	at org.multimc.EntryPoint.main(EntryPoint.java:34)

Der Prozess wurde mit Status 255 beendet. // The process has ended with Status 255

Screenshots

No response

kaduvert avatar May 09 '22 08:05 kaduvert

It will start up the authentication server and should open your browser. The second click causes another server trying to start up on the same port, which does not work of course. I am going to fix it soon in the Elixir library.

1zun4secondary avatar May 09 '22 16:05 1zun4secondary

i also tried to fix this issue myself but have little kotlin / java experience, made this fork which disables the button while you should be signing in and only reenables it when it either fails or succeeds, also some visual improvements to the add account sceen. i looked at the elixir library but it seems it's pretty incomplete as i didn't find how to detect if the browser window has just been closed, it isn't counted as an "authError" or whatever.

maybe include that in the elixir library and just implement my idea? i try to help out as much as possible, tell me if it's worth a pr but i think my code could be improved in ways that i don't know yet, thats why i didn't. i really got surprised that a new official liquidbounce version has been released, so happy to see development again, this issue got me motivated to look into the code and maybe even contribute. :)

kaduvert avatar May 09 '22 21:05 kaduvert

fixed here https://github.com/CCBlueX/LiquidBounce/commit/2cc061709d6d49b3be487dc33c601f4fa159b92b

1zun4secondary avatar Feb 19 '23 12:02 1zun4secondary