Closed KidTechnical closed 9 months ago
I think this was "fixed" by https://github.com/CCBlueX/LiquidBounce/commit/5edbe850c8938af1662c2fdf05d99a49d17e38e3
No, it was not. It fixed that the user was not getting any response, but in this case it is the Altening authentication servers being offline
There is nothing we can do (i think).
Facing the same problem here. Here's a log from a user perspective using LiquidLauncher:
2023-12-16T22:33:31.297486Z INFO liquidlauncher::app::gui: [23:33:31] [Render thread/ERROR]: Failed to login into altening account (for add-process)
java.net.SocketTimeoutException: Read timed out
at sun.nio.ch.NioSocketImpl.timedRead(Unknown Source) ~[?:?]
at sun.nio.ch.NioSocketImpl.implRead(Unknown Source) ~[?:?]
at sun.nio.ch.NioSocketImpl.read(Unknown Source) ~[?:?]
at sun.nio.ch.NioSocketImpl$1.read(Unknown Source) ~[?:?]
at java.net.Socket$SocketInputStream.read(Unknown Source) ~[?:?]
at java.io.BufferedInputStream.fill(Unknown Source) ~[?:?]
at java.io.BufferedInputStream.read1(Unknown Source) ~[?:?]
at java.io.BufferedInputStream.read(Unknown Source) ~[?:?]
at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) ~[?:?]
at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) ~[?:?]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) ~[?:?]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) ~[?:?]
at java.net.HttpURLConnection.getResponseCode(Unknown Source) ~[?:?]
at net.ccbluex.liqui
2023-12-16T22:33:31.297583Z INFO liquidlauncher::app::gui: dbounce.authlib.utils.HttpUtils.request(HttpUtils.kt:65) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.authlib.utils.HttpUtils.request$default(HttpUtils.kt:59) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.authlib.utils.HttpUtils.post(HttpUtils.kt:79) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.authlib.yggdrasil.YggdrasilUserAuthentication.authenticate(YggdrasilUserAuthentication.kt:85) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.authlib.account.AlteningAccount.refresh(AlteningAccount.kt:87) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.authlib.account.AlteningAccount$Companion.fromToken(AlteningAccount.kt:105) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.features.misc.AccountManager.newAlteningAccount(AccountManager.kt:204) ~[LiquidBounce.jar:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Sou
2023-12-16T22:33:31.297630Z INFO liquidlauncher::app::gui: rce) ~[?:?]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
at com.labymedia.ultralight.databind.call.property.ReflectivePropertyCaller.callMethod(ReflectivePropertyCaller.java:40) ~[LiquidBounce.jar:?]
at com.labymedia.ultralight.databind.DatabindJavascriptMethodHandler.onCallAsFunction(DatabindJavascriptMethodHandler.java:123) ~[LiquidBounce.jar:?]
at com.labymedia.ultralight.UltralightView.fireMouseEvent(Native Method) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.base.ultralight.ViewOverlay.fireMouseEvent(ViewOverlay.kt:176) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.base.ultralight.impl.glfw.GlfwInputAdapter.mouseButtonCallback(GlfwInputAdapter.kt:149) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.base.ultralight.hooks.UltralightIntegrationHook$mouseButtonHandler$1.invoke(UltralightIntegrationHook.kt:55) ~[LiquidBounce.jar:?]
at net.ccbluex.liquidbounce.base.ultralight.hooks.UltralightIntegrationHook$mouseButtonHandler$1.invoke(UltralightIntegrationHook.kt:54) ~[LiquidBou
2023-12-16T22:33:31.297643Z INFO liquidlauncher::app::gui: nce.jar:?]
at net.ccbluex.liquidbounce.event.EventManager.callEvent(EventManager.kt:155) ~[LiquidBounce.jar:?]
at net.minecraft.class_312.handler$bll000$liquidbounce$hookMouseButton(class_312.java:1544) ~[client-intermediary.jar:?]
at net.minecraft.class_312.method_1601(class_312.java:86) ~[client-intermediary.jar:?]
at net.minecraft.class_312.method_22686(class_312.java:180) ~[client-intermediary.jar:?]
at net.minecraft.class_1255.execute(class_1255.java:102) ~[client-intermediary.jar:?]
at net.minecraft.class_312.redirect$bbk001$viafabricplus$storeEvent(class_312.java:1055) ~[client-intermediary.jar:?]
at net.minecraft.class_312.method_22684(class_312.java:180) ~[client-intermediary.jar:?]
at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.2.jar:?]
at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.2.jar:?]
at org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3509) ~[lwjgl-glfw-3.3.2.jar:?]
at com.mojang.blaze3d.systems.RenderSystem.li
2023-12-16T22:33:31.297678Z INFO liquidlauncher::app::gui: mitDisplayFPS(RenderSystem.java:238) ~[client-intermediary.jar:?]
at net.minecraft.class_310.method_1523(class_310.java:1352) ~[client-intermediary.jar:?]
at net.minecraft.class_310.method_1514(class_310.java:888) ~[client-intermediary.jar:?]
at net.minecraft.client.main.Main.main(Main.java:265) ~[fabric-loader-0.15.1-1.20.4.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.1.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.15.1.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.15.1.jar:?]
2023-12-16T22:33:31.298587Z INFO liquidlauncher::app::gui: [23:33:31] [Render thread/INFO]: View message: [CONSOLE_API/LOG] file:////home/michael/.local/share/liquidlauncher/gameDir/nextgen/LiquidBounce/themes/default/altmanager/index.html:200:24: Read timed out
When I try to login into an ALT using an "Account Token" from the TheAltening, the game freezes for a few seconds, then proceeds to give me the green "Account added!" checkmark without actually adding the account to the drop-down list.
I think that this should be a bug of major concerning since there is no safe way to prevent getting banned without the use of ALT Accounts alongside different IP Addresses, therefore there would be no reason to use the hack client either.
I don't know the exact issue here but from what I have read this seems to be a problem originating form TheAltening. What if we just used a different provider?
Yes they already know about this issue, but so far I have not received any response when this is being fixed...?
So I was trying to check what authentication servers we are posting the token to, to see if maybe those endpoints were outdated. I was thinking that if TheAltening authentication servers were truly down, then how come I can still use their app to authenticate a token? Are they not using the same API?
My search ended in src/main/kotlin/net/ccbluex/liquidbounce/features/misc/AccountManager.kt
where some library is used to get the relevant information from theAltening.
import net.ccbluex.liquidbounce.authlib.account.AlteningAccount
@RequiredByScript
@JvmName("newAlteningAccount")
fun newAlteningAccount(accountToken: String) = runCatching {
accounts += AlteningAccount.fromToken(accountToken)
// Store configurable
ConfigSystem.storeConfigurable(this@AccountManager)
}.onFailure {
logger.error("Failed to login into altening account (for add-process)", it)
EventManager.callEvent(AltManagerUpdateEvent(false, it.message ?: "Unknown error"))
}
However I am kind of new to this and can't seem to find the library anywhere in the source code. Could someone guide me to the right file here? I was also trying to see if I could replicate the same feature with EasyMC, they seem to have a straightforward approach for this type of stuff.
The library you are referring to is our own mc-authlib library, which not only takes the token when an account is created, but also logs in to the account.
Since the auth server does not respond within the timeout, it will throw an error and the add process will fail. Authentication is needed to make sure the token is valid and to get the correct username and UUID for us to see.
Here's some network traffic I've captured where 15.235.51.175 is the authserver owned by TheAltening and 51.68.162.194 is the LiquidBounce API.
2023-12-17 16:43:58 192.168.0.100 15.235.51.175 > GET authserver.thealtening.com / HTTP/1.1 - -
2023-12-17 16:43:58 15.235.51.175 192.168.0.100 < - - - HTTP/1.1 200 OK
2023-12-17 16:44:33 192.168.0.100 51.68.162.194 > GET capes.liquidbounce.net /api/v1/cape/carriers HTTP/1.1 - -
2023-12-17 16:44:33 51.68.162.194 192.168.0.100 < - - - HTTP/1.1 200 OK
2023-12-17 16:45:02 192.168.0.100 15.235.51.175 > POST authserver.thealtening.com /authenticate HTTP/1.1 - -
2023-12-17 16:46:08 192.168.0.100 15.235.51.175 > POST authserver.thealtening.com /authenticate HTTP/1.1 - -
A request to /
is working fine but a request to /authenticate
won't get a response and will therefore time out as described by @1zun4. Unfortunately, at least on Google, there is no documentation of their API to be found. All I got was a description with the information "Alternative authentication server."
.
So yes, it is very likely that they are using a different server for their own tool to authenticate. They made this library which uses the same endpoint but it seems to be dead, last change was 2 years ago, also all issues are ignored. The server itself is vulnerable running nginx 1.18.0
(an open-source software for web serving from 4 years ago) but that's besides the point.
They probably won't fix something that isn't being used, though we could contact them for further insight. I see two options here:
IMO being able to select some mods in the LiquidLauncher that allow you to add an ALT Manager from a service of a users choice (ex. EasyMC mod) might serve a better UX. Right now we're relying on only one provider that doesn't have a mod or library which means that we have to hardcode and maintain everything ourselves.
Pros | Cons |
---|---|
Users are able to use an ALT Provider of their choice | less straighforward approach, which might throw off newbies |
Contributors wouldn't have to maintain or hardcode anything regarding something that will always change with time | Users will be forced to use the minecraft version their ALT mod is written for (which might not even be compatible) |
A more reliable way of managing ALTs, a situation like the one we're currently in wouldn't happen |
There might even be a better solution to this, I'm in no way a minecraft expert so the one I came up with is kind of janky.
the authentication servers are back
Good
LiquidBounce Branch
Nextgen
LiquidBounce Build/Version
1.0.0
Operating System
Windows 11
Minecraft Version
1.20.1
Describe the bug
If you go to the alt manager and add a thealtening account token, the game freezes for ten seconds and then doesn't add the alt.
Steps to reproduce
-Go to Alt Manager -Under Altening Login, enter a valid TheAltening account token. -Click on Add -Game will freeze for ten seconds -Game will then unfreeze, but the alt won't be added
Client Log
Screenshots
No response