fix microsoft account stay logged in, hud: title position fixes, bossbar center fixes

This commit is contained in:
Bixilon 2021-10-30 20:41:34 +02:00
parent a03f63b874
commit 2efe05d61b
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
4 changed files with 9 additions and 8 deletions

View File

@ -25,8 +25,7 @@ import java.util.*
class MicrosoftAccount( class MicrosoftAccount(
val uuid: UUID, val uuid: UUID,
username: String, username: String,
@Json(name = "user_hash") private val userHash: String, @Json(name = "authorization_token") private val authorizationToken: String,
@Json(name = "xsts_token") private val xstsToken: String,
) : Account(username) { ) : Account(username) {
@Transient var accessToken: String? = null @Transient var accessToken: String? = null
override val id: String = uuid.toString() override val id: String = uuid.toString()
@ -42,6 +41,9 @@ class MicrosoftAccount(
if (accessToken != null) { if (accessToken != null) {
return return
} }
val (xboxLiveToken, userHash) = MicrosoftOAuthUtils.getXboxLiveToken(authorizationToken)
val xstsToken = MicrosoftOAuthUtils.getXSTSToken(xboxLiveToken)
accessToken = MicrosoftOAuthUtils.getMinecraftBearerAccessToken(userHash, xstsToken) accessToken = MicrosoftOAuthUtils.getMinecraftBearerAccessToken(userHash, xstsToken)
} }
@ -49,8 +51,7 @@ class MicrosoftAccount(
return mapOf( return mapOf(
"uuid" to uuid, "uuid" to uuid,
"username" to username, "username" to username,
"user_hash" to userHash, "authorization_token" to authorizationToken,
"xsts_token" to xstsToken,
"type" to type, "type" to type,
) )
} }

View File

@ -46,9 +46,10 @@ class BossbarElement(
} }
override fun forceRender(offset: Vec2i, z: Int, consumer: GUIVertexConsumer, options: GUIVertexOptions?): Int { override fun forceRender(offset: Vec2i, z: Int, consumer: GUIVertexConsumer, options: GUIVertexOptions?): Int {
val size = size
val titleSize = titleElement.size val titleSize = titleElement.size
titleElement.render(offset + Vec2i(HorizontalAlignments.CENTER.getOffset(size.x, titleSize.x), 0), z, consumer, options) titleElement.render(offset + Vec2i(HorizontalAlignments.CENTER.getOffset(size.x, titleSize.x), 0), z, consumer, options)
progress.render(offset + Vec2i(0, titleSize.y), z, consumer, options) progress.render(offset + Vec2i(HorizontalAlignments.CENTER.getOffset(size.x, progress.size.x), titleSize.y), z, consumer, options)
return TextElement.LAYERS return TextElement.LAYERS
} }

View File

@ -33,7 +33,7 @@ class TitleHUDElement(hudRenderer: HUDRenderer) : LayoutedHUDElement<TitleElemen
val scaledSize = hudRenderer.scaledSize val scaledSize = hudRenderer.scaledSize
layoutOffset.x = (scaledSize.x - layout.size.x / 2) / 2 layoutOffset.x = (scaledSize.x - layout.size.x / 2) / 2
layoutOffset.y = (scaledSize.y - layout.title.size.y) / 2 layoutOffset.y = (scaledSize.y / 2 - layout.title.size.y)
return layoutOffset return layoutOffset
} }

View File

@ -46,8 +46,7 @@ object MicrosoftOAuthUtils {
val account = MicrosoftAccount( val account = MicrosoftAccount(
uuid = accountInfo.id.asUUID(), uuid = accountInfo.id.asUUID(),
username = accountInfo.name, username = accountInfo.name,
userHash = userHash, authorizationToken = authorizationToken,
xstsToken = xstsToken,
) )
account.accessToken = accessToken account.accessToken = accessToken