diff --git a/pom.xml b/pom.xml
index 1b28ddf56..4e361764f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -474,7 +474,7 @@
de.bixilon
kutil
- 1.10.4
+ 1.10.5
io.netty
diff --git a/src/main/java/de/bixilon/minosoft/config/key/KeyActions.kt b/src/main/java/de/bixilon/minosoft/config/key/KeyActions.kt
index bbb3e9db2..daea28bea 100644
--- a/src/main/java/de/bixilon/minosoft/config/key/KeyActions.kt
+++ b/src/main/java/de/bixilon/minosoft/config/key/KeyActions.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020 Moritz Zwerger
+ * Copyright (C) 2020-2022 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.config.key
-enum class KeyAction {
+enum class KeyActions {
// primitive ones
/**
diff --git a/src/main/java/de/bixilon/minosoft/config/key/KeyBinding.kt b/src/main/java/de/bixilon/minosoft/config/key/KeyBinding.kt
index cfed41e95..f85bd73ef 100644
--- a/src/main/java/de/bixilon/minosoft/config/key/KeyBinding.kt
+++ b/src/main/java/de/bixilon/minosoft/config/key/KeyBinding.kt
@@ -1,6 +1,6 @@
/*
* Minosoft
- * Copyright (C) 2020 Moritz Zwerger
+ * Copyright (C) 2020-2022 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@@ -17,7 +17,7 @@ import com.fasterxml.jackson.annotation.JsonInclude
import de.bixilon.minosoft.util.KUtil.synchronizedDeepCopy
class KeyBinding(
- val action: Map>,
+ val action: Map>,
@JsonInclude(JsonInclude.Include.NON_DEFAULT) var ignoreConsumer: Boolean = false,
) {
constructor(keyBinding: KeyBinding) : this(keyBinding.action.synchronizedDeepCopy()) // ToDo: Deep copy
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/entity/EntityHitboxRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/entity/EntityHitboxRenderer.kt
index c067ebb7b..a5edf3ffd 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/entity/EntityHitboxRenderer.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/entity/EntityHitboxRenderer.kt
@@ -18,7 +18,7 @@ import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedSet
import de.bixilon.kutil.collections.map.LockMap
import de.bixilon.kutil.latch.CountUpAndDownLatch
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatch
@@ -96,8 +96,8 @@ class EntityHitboxRenderer(
renderWindow.inputHandler.registerKeyCallback(HITBOX_TOGGLE_KEY_COMBINATION,
KeyBinding(
mapOf(
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_F3),
- KeyAction.STICKY to setOf(KeyCodes.KEY_B),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_F3),
+ KeyActions.STICKY to setOf(KeyCodes.KEY_B),
),
), defaultPressed = profile.enabled) {
profile.enabled = it
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/fun/FunEffectManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/fun/FunEffectManager.kt
index 0f4d6a233..0b00abe7a 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/fun/FunEffectManager.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/fun/FunEffectManager.kt
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.framebuffer.world.`fun`
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.registries.ResourceLocation
@@ -36,8 +36,8 @@ class FunEffectManager(
renderWindow.inputHandler.registerKeyCallback("minosoft:switch_fun_settings".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
- KeyAction.PRESS to setOf(KeyCodes.KEY_J),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_F4),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_J),
),
)) {
effectUsed++
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/gui/GUIManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/gui/GUIManager.kt
index 8ec41d7b1..b51625832 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/gui/GUIManager.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/gui/GUIManager.kt
@@ -17,7 +17,7 @@ import de.bixilon.kotlinglm.vec2.Vec2d
import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.time.TimeUtil
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.gui.rendering.gui.GUIElement
@@ -66,7 +66,7 @@ class GUIManager(
renderWindow.inputHandler.registerKeyCallback("minosoft:back".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.RELEASE to setOf(KeyCodes.KEY_ESCAPE),
+ KeyActions.RELEASE to setOf(KeyCodes.KEY_ESCAPE),
),
ignoreConsumer = true,
)) { popOrPause() }
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/gui/screen/container/ContainerGUIManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/gui/screen/container/ContainerGUIManager.kt
index a6a5e0189..960b43694 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/gui/screen/container/ContainerGUIManager.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/gui/screen/container/ContainerGUIManager.kt
@@ -13,7 +13,7 @@
package de.bixilon.minosoft.gui.rendering.gui.gui.screen.container
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.container.Container
@@ -30,7 +30,7 @@ object ContainerGUIManager {
private fun registerLocalContainerEvent(guiRenderer: GUIRenderer) {
guiRenderer.renderWindow.inputHandler.registerKeyCallback("minosoft:local_inventory".toResourceLocation(), KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_E),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_E),
),
)) { guiRenderer.gui.open(LocalInventoryScreen) }
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/HUDManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/HUDManager.kt
index 3b5cc3d73..85f14061f 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/HUDManager.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/HUDManager.kt
@@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.gui.hud
import de.bixilon.kutil.cast.CastUtil.unsafeCast
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.registries.ResourceLocation
@@ -91,7 +91,7 @@ class HUDManager(
renderWindow.inputHandler.registerKeyCallback("minosoft:enable_hud".toResourceLocation(), KeyBinding(
mapOf(
- KeyAction.STICKY to setOf(KeyCodes.KEY_F1),
+ KeyActions.STICKY to setOf(KeyCodes.KEY_F1),
),
), defaultPressed = enabled) { enabled = it }
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/chat/ChatElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/chat/ChatElement.kt
index cf1571f06..77598419b 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/chat/ChatElement.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/chat/ChatElement.kt
@@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.gui.hud.elements.chat
import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatchRendering
@@ -90,7 +90,7 @@ class ChatElement(guiRenderer: GUIRenderer) : AbstractChatElement(guiRenderer) {
renderWindow.inputHandler.registerKeyCallback("minosoft:open_chat".toResourceLocation(), KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_T),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_T),
),
)) { guiRenderer.gui.open(ChatElement) }
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/DebugHUDElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/DebugHUDElement.kt
index a926b8a2f..5b0802839 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/DebugHUDElement.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/other/DebugHUDElement.kt
@@ -17,7 +17,7 @@ import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kotlinglm.vec4.Vec4i
import de.bixilon.kutil.math.simple.DoubleMath.rounded10
import de.bixilon.kutil.unit.UnitFormatter.formatBytes
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.direction.Directions
@@ -311,7 +311,7 @@ class DebugHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), Layouted
override val DEFAULT_ENABLED: Boolean = false
override val ENABLE_KEY_BINDING: KeyBinding = KeyBinding(
mapOf(
- KeyAction.STICKY to setOf(KeyCodes.KEY_F3),
+ KeyActions.STICKY to setOf(KeyCodes.KEY_F3),
),
)
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/tab/TabListElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/tab/TabListElement.kt
index d1a5de58d..926b52d7c 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/tab/TabListElement.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/hud/elements/tab/TabListElement.kt
@@ -17,7 +17,7 @@ import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.collections.CollectionUtil.toSynchronizedMap
import de.bixilon.kutil.primitive.BooleanUtil.decide
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.registries.ResourceLocation
@@ -256,7 +256,7 @@ class TabListElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedE
override val ENABLE_KEY_BINDING_NAME: ResourceLocation = "minosoft:enable_tab_list".toResourceLocation()
override val ENABLE_KEY_BINDING: KeyBinding = KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_TAB),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_TAB),
),
)
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/CameraInput.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/CameraInput.kt
index 04a74a5d9..389131f12 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/CameraInput.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/CameraInput.kt
@@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.input
import de.bixilon.kotlinglm.GLM
import de.bixilon.kotlinglm.vec2.Vec2d
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.entities.EntityRotation
@@ -46,52 +46,52 @@ class CameraInput(
renderWindow.inputHandler.registerCheckCallback(
MOVE_SPRINT_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_LEFT_CONTROL),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_LEFT_CONTROL),
),
),
MOVE_FORWARDS_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_W),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_W),
),
),
MOVE_BACKWARDS_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_S),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_S),
),
),
MOVE_LEFT_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_A),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_A),
),
),
MOVE_RIGHT_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_D),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_D),
),
),
FLY_UP_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_SPACE),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_SPACE),
),
),
FLY_DOWN_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_LEFT_SHIFT),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_LEFT_SHIFT),
),
),
JUMP_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_SPACE),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_SPACE),
),
),
SNEAK_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_LEFT_SHIFT),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_LEFT_SHIFT),
),
),
TOGGLE_FLY_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.DOUBLE_PRESS to setOf(KeyCodes.KEY_SPACE),
+ KeyActions.DOUBLE_PRESS to setOf(KeyCodes.KEY_SPACE),
),
),
)
@@ -99,7 +99,7 @@ class CameraInput(
renderWindow.inputHandler.registerKeyCallback(ZOOM_KEYBINDING, KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.KEY_C),
+ KeyActions.CHANGE to setOf(KeyCodes.KEY_C),
),
)) { matrixHandler.zoom = if (it) 2.0f else 0.0f }
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/AttackInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/AttackInteractionHandler.kt
index 5dacc0d27..cb69b495b 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/AttackInteractionHandler.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/AttackInteractionHandler.kt
@@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kutil.rate.RateLimiter
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.abilities.Gamemodes
@@ -45,7 +45,7 @@ class AttackInteractionHandler(
fun init() {
renderWindow.inputHandler.registerKeyCallback(ATTACK_ENTITY_KEYBINDING, KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.MOUSE_BUTTON_LEFT),
+ KeyActions.PRESS to setOf(KeyCodes.MOUSE_BUTTON_LEFT),
),
), false) { tryAttack() }
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt
index 2c78fc211..299eb989f 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/BreakInteractionHandler.kt
@@ -17,7 +17,7 @@ import de.bixilon.kotlinglm.pow
import de.bixilon.kotlinglm.vec3.Vec3i
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
import de.bixilon.kutil.time.TimeUtil
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.abilities.Gamemodes
@@ -250,7 +250,7 @@ class BreakInteractionHandler(
fun init() {
renderWindow.inputHandler.registerCheckCallback(DESTROY_BLOCK_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.MOUSE_BUTTON_LEFT),
+ KeyActions.CHANGE to setOf(KeyCodes.MOUSE_BUTTON_LEFT),
),
))
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/DropInteractionManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/DropInteractionManager.kt
index d0865dccb..5cfe70b54 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/DropInteractionManager.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/DropInteractionManager.kt
@@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kutil.rate.RateLimiter
import de.bixilon.kutil.time.TimeUtil
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.gui.rendering.RenderWindow
@@ -33,13 +33,13 @@ class DropInteractionManager(
// ToDo: Does this swing the arm?
renderWindow.inputHandler.registerKeyCallback(DROP_ITEM_STACK_KEYBINDING, KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_Q),
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_LEFT_CONTROL)
+ KeyActions.PRESS to setOf(KeyCodes.KEY_Q),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_LEFT_CONTROL)
),
)) { dropItem(true) }
renderWindow.inputHandler.registerKeyCallback(DROP_ITEM_KEYBINDING, KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_Q),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_Q),
),
)) { dropItem(false) }
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/HotbarInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/HotbarInteractionHandler.kt
index a32528cef..1e95a7c16 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/HotbarInteractionHandler.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/HotbarInteractionHandler.kt
@@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kutil.collections.CollectionUtil.synchronizedSetOf
import de.bixilon.kutil.rate.RateLimiter
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.abilities.Gamemodes
@@ -78,7 +78,7 @@ class HotbarInteractionHandler(
for (i in 1..PlayerInventory.HOTBAR_SLOTS) {
renderWindow.inputHandler.registerKeyCallback("minosoft:hotbar_slot_$i".toResourceLocation(), KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_CODE_MAP["$i"]!!),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_CODE_MAP["$i"]!!),
),
)) { selectSlot(i - 1) }
}
@@ -108,7 +108,7 @@ class HotbarInteractionHandler(
renderWindow.inputHandler.registerKeyCallback("minosoft:swap_items".toResourceLocation(), KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_F),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_F),
),
)) { swapItems() }
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/InteractInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/InteractInteractionHandler.kt
index 013ee729b..8b2444b41 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/InteractInteractionHandler.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/InteractInteractionHandler.kt
@@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kotlinglm.vec3.Vec3
import de.bixilon.kutil.time.TimeUtil
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.abilities.Gamemodes
@@ -52,7 +52,7 @@ class InteractInteractionHandler(
fun init() {
renderWindow.inputHandler.registerCheckCallback(USE_ITEM_KEYBINDING to KeyBinding(
mapOf(
- KeyAction.CHANGE to setOf(KeyCodes.MOUSE_BUTTON_RIGHT),
+ KeyActions.CHANGE to setOf(KeyCodes.MOUSE_BUTTON_RIGHT),
),
))
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/ItemPickInteractionHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/ItemPickInteractionHandler.kt
index 2ad8f9489..bd7406beb 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/ItemPickInteractionHandler.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/ItemPickInteractionHandler.kt
@@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kutil.rate.RateLimiter
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.container.InventorySlots
@@ -38,7 +38,7 @@ class ItemPickInteractionHandler(
fun init() {
renderWindow.inputHandler.registerKeyCallback("minosoft:pick_item".toResourceLocation(), KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.MOUSE_BUTTON_MIDDLE),
+ KeyActions.PRESS to setOf(KeyCodes.MOUSE_BUTTON_MIDDLE),
),
)) {
pickItem(true) // ToDo: Combination for not copying nbt
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/SpectateInteractionManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/SpectateInteractionManager.kt
index 169e016aa..a0f599216 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/SpectateInteractionManager.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/interaction/SpectateInteractionManager.kt
@@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.rendering.input.interaction
import de.bixilon.kutil.rate.RateLimiter
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.abilities.Gamemodes
@@ -34,7 +34,7 @@ class SpectateInteractionManager(
fun init() {
renderWindow.inputHandler.registerKeyCallback(STOP_SPECTATING, KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_LEFT_SHIFT),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_LEFT_SHIFT),
),
)) { spectate(null) }
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/DefaultKeyCombinations.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/DefaultKeyCombinations.kt
index c43399bee..7385a0935 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/DefaultKeyCombinations.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/DefaultKeyCombinations.kt
@@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.rendering.input.key
import de.bixilon.kutil.primitive.BooleanUtil.decide
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.gui.rendering.RenderWindow
@@ -32,8 +32,8 @@ object DefaultKeyCombinations {
inputHandler.registerKeyCallback("minosoft:enable_debug_polygon".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
- KeyAction.STICKY to setOf(KeyCodes.KEY_P),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_F4),
+ KeyActions.STICKY to setOf(KeyCodes.KEY_P),
),
)) {
val nextMode = it.decide(PolygonModes.LINE, PolygonModes.FILL)
@@ -44,7 +44,7 @@ object DefaultKeyCombinations {
inputHandler.registerKeyCallback("minosoft:take_screenshot".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_F2),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_F2),
),
ignoreConsumer = true,
)) { renderWindow.screenshotTaker.takeScreenshot() }
@@ -52,8 +52,8 @@ object DefaultKeyCombinations {
inputHandler.registerKeyCallback("minosoft:pause_incoming_packets".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
- KeyAction.STICKY to setOf(KeyCodes.KEY_I),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_F4),
+ KeyActions.STICKY to setOf(KeyCodes.KEY_I),
),
ignoreConsumer = true,
)) {
@@ -64,8 +64,8 @@ object DefaultKeyCombinations {
inputHandler.registerKeyCallback("minosoft:pause_outgoing_packets".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
- KeyAction.STICKY to setOf(KeyCodes.KEY_O),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_F4),
+ KeyActions.STICKY to setOf(KeyCodes.KEY_O),
),
ignoreConsumer = true,
)) {
@@ -76,7 +76,7 @@ object DefaultKeyCombinations {
inputHandler.registerKeyCallback("minosoft:toggle_fullscreen".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.PRESS to setOf(KeyCodes.KEY_F11),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_F11),
),
ignoreConsumer = true,
)) {
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/RenderWindowInputHandler.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/RenderWindowInputHandler.kt
index 37d27b55a..dd34dea63 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/RenderWindowInputHandler.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/input/key/RenderWindowInputHandler.kt
@@ -17,7 +17,7 @@ import de.bixilon.kotlinglm.vec2.Vec2d
import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.config.StaticConfiguration
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.config.profile.delegate.watcher.entry.MapProfileDelegateWatcher.Companion.profileWatchMap
@@ -78,8 +78,8 @@ class RenderWindowInputHandler(
registerKeyCallback("minosoft:debug_change_cursor_mode".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_F4),
- KeyAction.PRESS to setOf(KeyCodes.KEY_M),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_F4),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_M),
),
ignoreConsumer = true,
), defaultPressed = StaticConfiguration.DEBUG_MODE) {
@@ -139,10 +139,10 @@ class RenderWindowInputHandler(
}
// ToDo
- if (pair.keyBinding.action[KeyAction.DOUBLE_PRESS] != null) {
+ if (pair.keyBinding.action[KeyActions.DOUBLE_PRESS] != null) {
continue
}
- if (pair.keyBinding.action[KeyAction.STICKY] != null) {
+ if (pair.keyBinding.action[KeyActions.STICKY] != null) {
continue
}
@@ -182,7 +182,7 @@ class RenderWindowInputHandler(
var thisIsChange = true
var saveDown = true
- pair.keyBinding.action[KeyAction.PRESS]?.let {
+ pair.keyBinding.action[KeyActions.PRESS]?.let {
if (!keyDown) {
thisIsChange = false
}
@@ -194,7 +194,7 @@ class RenderWindowInputHandler(
checksRun++
}
- pair.keyBinding.action[KeyAction.RELEASE]?.let {
+ pair.keyBinding.action[KeyActions.RELEASE]?.let {
if (keyDown) {
thisIsChange = false
}
@@ -206,21 +206,21 @@ class RenderWindowInputHandler(
checksRun++
}
- pair.keyBinding.action[KeyAction.CHANGE]?.let {
+ pair.keyBinding.action[KeyActions.CHANGE]?.let {
if (!it.contains(keyCode)) {
thisIsChange = false
}
checksRun++
}
- pair.keyBinding.action[KeyAction.MODIFIER]?.let {
+ pair.keyBinding.action[KeyActions.MODIFIER]?.let {
if (!keysDown.containsAll(it)) {
thisIsChange = false
}
checksRun++
}
- pair.keyBinding.action[KeyAction.STICKY]?.let {
+ pair.keyBinding.action[KeyActions.STICKY]?.let {
checksRun++
if (!it.contains(keyCode)) {
thisIsChange = false
@@ -233,7 +233,7 @@ class RenderWindowInputHandler(
thisKeyBindingDown = !keyBindingsDown.contains(resourceLocation)
}
- pair.keyBinding.action[KeyAction.DOUBLE_PRESS]?.let {
+ pair.keyBinding.action[KeyActions.DOUBLE_PRESS]?.let {
checksRun++
if (!keyDown) {
thisIsChange = false
@@ -310,7 +310,7 @@ class RenderWindowInputHandler(
val callbackPair = keyBindingCallbacks.getOrPut(resourceLocation) { KeyBindingCallbackPair(keyBinding, defaultKeyBinding, defaultPressed) }
callbackPair.callback += callback
- if (keyBinding.action.containsKey(KeyAction.STICKY) && defaultPressed) {
+ if (keyBinding.action.containsKey(KeyActions.STICKY) && defaultPressed) {
keyBindingsDown += resourceLocation
}
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/world/WorldRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/world/WorldRenderer.kt
index def9bb8b7..a83a1e3a6 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/world/WorldRenderer.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/world/WorldRenderer.kt
@@ -27,7 +27,7 @@ import de.bixilon.kutil.concurrent.pool.ThreadPoolRunnable
import de.bixilon.kutil.latch.CountUpAndDownLatch
import de.bixilon.kutil.time.TimeUtil
import de.bixilon.kutil.watcher.DataWatcher.Companion.observe
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.config.profile.delegate.watcher.SimpleProfileDelegateWatcher.Companion.profileWatch
@@ -251,8 +251,8 @@ class WorldRenderer(
renderWindow.inputHandler.registerKeyCallback("minosoft:clear_chunk_cache".toResourceLocation(),
KeyBinding(
mapOf(
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_F3),
- KeyAction.PRESS to setOf(KeyCodes.KEY_A),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_F3),
+ KeyActions.PRESS to setOf(KeyCodes.KEY_A),
),
)) { clearChunkCache() }
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/world/chunk/ChunkBorderRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/world/chunk/ChunkBorderRenderer.kt
index 25ae3cd5a..a61693346 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/world/chunk/ChunkBorderRenderer.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/world/chunk/ChunkBorderRenderer.kt
@@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.world.chunk
import de.bixilon.kotlinglm.vec2.Vec2i
import de.bixilon.kotlinglm.vec3.Vec3
import de.bixilon.kutil.latch.CountUpAndDownLatch
-import de.bixilon.minosoft.config.key.KeyAction
+import de.bixilon.minosoft.config.key.KeyActions
import de.bixilon.minosoft.config.key.KeyBinding
import de.bixilon.minosoft.config.key.KeyCodes
import de.bixilon.minosoft.data.registries.ResourceLocation
@@ -49,8 +49,8 @@ class ChunkBorderRenderer(
renderWindow.inputHandler.registerKeyCallback(CHUNK_BORDER_TOGGLE_KEY_COMBINATION,
KeyBinding(
mapOf(
- KeyAction.MODIFIER to setOf(KeyCodes.KEY_F3),
- KeyAction.STICKY to setOf(KeyCodes.KEY_G),
+ KeyActions.MODIFIER to setOf(KeyCodes.KEY_F3),
+ KeyActions.STICKY to setOf(KeyCodes.KEY_G),
),
), defaultPressed = profile.chunkBorder.enabled) {
profile.chunkBorder.enabled = it
diff --git a/src/main/java/de/bixilon/minosoft/protocol/network/connection/play/PlayConnection.kt b/src/main/java/de/bixilon/minosoft/protocol/network/connection/play/PlayConnection.kt
index 8bf27c1f3..b0f126b18 100644
--- a/src/main/java/de/bixilon/minosoft/protocol/network/connection/play/PlayConnection.kt
+++ b/src/main/java/de/bixilon/minosoft/protocol/network/connection/play/PlayConnection.kt
@@ -127,7 +127,6 @@ class PlayConnection(
network.state = ProtocolStates.LOGIN
} else {
wasConnected = true
- //ToDo: Minosoft.CONNECTIONS.remove(connectionId)
if (CLI.getCurrentConnection() == this) {
CLI.setCurrentConnection(null)
Command.print("Disconnected from current connection!")
diff --git a/src/main/java/de/bixilon/minosoft/protocol/network/connection/status/StatusConnection.kt b/src/main/java/de/bixilon/minosoft/protocol/network/connection/status/StatusConnection.kt
index 03fe356b4..ef706e9a4 100644
--- a/src/main/java/de/bixilon/minosoft/protocol/network/connection/status/StatusConnection.kt
+++ b/src/main/java/de/bixilon/minosoft/protocol/network/connection/status/StatusConnection.kt
@@ -15,6 +15,7 @@ package de.bixilon.minosoft.protocol.network.connection.status
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
import de.bixilon.kutil.concurrent.time.TimeWorker
+import de.bixilon.kutil.concurrent.time.TimeWorkerTask
import de.bixilon.kutil.watcher.DataWatcher.Companion.observe
import de.bixilon.kutil.watcher.DataWatcher.Companion.watched
import de.bixilon.minosoft.data.registries.versions.Version
@@ -57,6 +58,8 @@ class StatusConnection(
var state by watched(StatusConnectionStates.WAITING)
+ private var timeoutTask: TimeWorkerTask? = null
+
override var error: Throwable?
get() = super.error
@@ -105,6 +108,14 @@ class StatusConnection(
}
}
}
+ this::state.observe(this) {
+ if (it == StatusConnectionStates.PING_DONE) {
+ val timeoutTask = timeoutTask ?: return@observe
+ timeoutTask.interrupt()
+ TimeWorker.removeTask(timeoutTask)
+ this.timeoutTask = null
+ }
+ }
}
@@ -135,8 +146,7 @@ class StatusConnection(
state = StatusConnectionStates.RESOLVING
// timeout task
- // ToDo: Cancel on success
- TimeWorker.runIn(30000) {
+ timeoutTask = TimeWorker.runIn(30000) {
if (state == StatusConnectionStates.ERROR) {
return@runIn
}
diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/ProtocolDefinition.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/ProtocolDefinition.java
index a70d3400f..65bb5dc76 100644
--- a/src/main/java/de/bixilon/minosoft/protocol/protocol/ProtocolDefinition.java
+++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/ProtocolDefinition.java
@@ -63,16 +63,6 @@ public final class ProtocolDefinition {
public static final int BLOCKS_PER_SECTION = SECTION_WIDTH_X * SECTION_HEIGHT_Y * SECTION_WIDTH_X;
public static final int ITEM_STACK_MAX_SIZE = 64;
-
- // public static final String MICROSOFT_ACCOUNT_APPLICATION_ID = "00000000402b5328"; // ToDo: Should we use our own application id?
- public static final String MICROSOFT_ACCOUNT_APPLICATION_ID = "feb3836f-0333-4185-8eb9-4cbf0498f947"; // Minosoft 2 (microsoft-bixilon2)
- public static final String MICROSOFT_ACCOUNT_OAUTH_FLOW_URL = "https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize?client_id=" + MICROSOFT_ACCOUNT_APPLICATION_ID + "&scope=XboxLive.signin%20offline_access&response_type=code";
- public static final String MICROSOFT_ACCOUNT_AUTH_TOKEN_URL = "https://login.live.com/oauth20_token.srf";
- public static final String MICROSOFT_ACCOUNT_XBOX_LIVE_AUTHENTICATE_URL = "https://user.auth.xboxlive.com/user/authenticate";
- public static final String MICROSOFT_ACCOUNT_XSTS_URL = "https://xsts.auth.xboxlive.com/xsts/authorize";
- public static final String MICROSOFT_ACCOUNT_MINECRAFT_LOGIN_WITH_XBOX_URL = "https://api.minecraftservices.com/authentication/login_with_xbox";
- public static final String MICROSOFT_ACCOUNT_GET_MOJANG_PROFILE_URL = "https://api.minecraftservices.com/minecraft/profile";
-
public static final char[] OBFUSCATED_CHARS = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~".toCharArray();
@@ -83,9 +73,6 @@ public final class ProtocolDefinition {
public static final float VELOCITY_NETWORK_DIVIDER = 8000.0f;
- public static final float GRAVITY = 32;
- public static final boolean FAST_MOVEMENT = true;
-
public static final int SEA_LEVEL_HEIGHT = 62;
public static final float HEIGHT_SEA_LEVEL_MODIFIER = 0.00166667f;
diff --git a/src/main/java/de/bixilon/minosoft/recipes/RecipeRegistry.kt b/src/main/java/de/bixilon/minosoft/recipes/RecipeRegistry.kt
index 896d3cefa..6cd91b186 100644
--- a/src/main/java/de/bixilon/minosoft/recipes/RecipeRegistry.kt
+++ b/src/main/java/de/bixilon/minosoft/recipes/RecipeRegistry.kt
@@ -41,7 +41,7 @@ class RecipeRegistry(
is ResourceLocation -> resourceLocationRecipeMap[any]
is String -> get(any.toResourceLocation())
is ResourceLocationAble -> get(any.resourceLocation)
- else -> TODO()
+ else -> throw IllegalArgumentException("Can not get recipe from $any")
} ?: parent?.get(any)
}
diff --git a/src/main/java/de/bixilon/minosoft/util/account/AccountUtil.kt b/src/main/java/de/bixilon/minosoft/util/account/AccountUtil.kt
index 7f916c912..e7dffdd21 100644
--- a/src/main/java/de/bixilon/minosoft/util/account/AccountUtil.kt
+++ b/src/main/java/de/bixilon/minosoft/util/account/AccountUtil.kt
@@ -15,7 +15,6 @@ package de.bixilon.minosoft.util.account
import de.bixilon.kutil.uuid.UUIDUtil.trim
import de.bixilon.minosoft.data.accounts.types.microsoft.MinecraftTokens
-import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.account.microsoft.minecraft.MinecraftAPIException
import de.bixilon.minosoft.util.account.microsoft.minecraft.MinecraftProfile
import de.bixilon.minosoft.util.http.HTTP2.getJson
@@ -27,10 +26,11 @@ import de.bixilon.minosoft.util.logging.LogMessageType
import java.util.*
object AccountUtil {
+ private const val GET_PROFILE_URL = "https://api.minecraftservices.com/minecraft/profile"
private const val MOJANG_URL_JOIN = "https://sessionserver.mojang.com/session/minecraft/join"
fun fetchMinecraftProfile(token: MinecraftTokens): MinecraftProfile {
- val response = ProtocolDefinition.MICROSOFT_ACCOUNT_GET_MOJANG_PROFILE_URL.getJson(mapOf(
+ val response = GET_PROFILE_URL.getJson(mapOf(
"Authorization" to "Bearer ${token.accessToken}",
))
diff --git a/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt b/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt
index 480f23958..aa2b2c794 100644
--- a/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt
+++ b/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt
@@ -21,7 +21,6 @@ import de.bixilon.minosoft.data.accounts.AccountStates
import de.bixilon.minosoft.data.accounts.types.microsoft.MicrosoftAccount
import de.bixilon.minosoft.data.accounts.types.microsoft.MicrosoftTokens
import de.bixilon.minosoft.data.player.properties.PlayerProperties
-import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.account.AccountUtil
import de.bixilon.minosoft.util.account.microsoft.code.MicrosoftDeviceCode
import de.bixilon.minosoft.util.account.microsoft.minecraft.MinecraftAPIException
@@ -39,9 +38,14 @@ import de.bixilon.minosoft.util.logging.LogMessageType
import java.util.concurrent.TimeoutException
object MicrosoftOAuthUtils {
+ const val CLIENT_ID = "feb3836f-0333-4185-8eb9-4cbf0498f947" // Minosoft 2 (microsoft-bixilon2)
const val TENANT = "consumers"
+
const val DEVICE_CODE_URL = "https://login.microsoftonline.com/$TENANT/oauth2/v2.0/devicecode"
const val TOKEN_CHECK_URL = "https://login.microsoftonline.com/$TENANT/oauth2/v2.0/token"
+ const val XBOX_LIVE_AUTH_URL = "https://user.auth.xboxlive.com/user/authenticate"
+ const val XSTS_URL = "https://xsts.auth.xboxlive.com/xsts/authorize"
+ const val LOGIN_WITH_XBOX_URL = "https://api.minecraftservices.com/authentication/login_with_xbox"
const val MAX_CHECK_TIME = 900
fun obtainDeviceCodeAsync(
@@ -80,7 +84,7 @@ object MicrosoftOAuthUtils {
fun obtainDeviceCode(): MicrosoftDeviceCode {
val response = mapOf(
- "client_id" to ProtocolDefinition.MICROSOFT_ACCOUNT_APPLICATION_ID,
+ "client_id" to CLIENT_ID,
"scope" to "XboxLive.signin offline_access",
).postData(DEVICE_CODE_URL)
@@ -94,7 +98,7 @@ object MicrosoftOAuthUtils {
fun checkDeviceCode(deviceCode: MicrosoftDeviceCode): AuthenticationResponse? {
val response = mapOf(
"grant_type" to "urn:ietf:params:oauth:grant-type:device_code",
- "client_id" to ProtocolDefinition.MICROSOFT_ACCOUNT_APPLICATION_ID,
+ "client_id" to CLIENT_ID,
"device_code" to deviceCode.deviceCode,
).postData(TOKEN_CHECK_URL)
@@ -111,7 +115,7 @@ object MicrosoftOAuthUtils {
fun refreshToken(token: MicrosoftTokens): AuthenticationResponse {
val response = mapOf(
- "client_id" to ProtocolDefinition.MICROSOFT_ACCOUNT_APPLICATION_ID,
+ "client_id" to CLIENT_ID,
"grant_type" to "refresh_token",
"scope" to "XboxLive.signin offline_access",
"refresh_token" to token.refreshToken,
@@ -165,7 +169,7 @@ object MicrosoftOAuthUtils {
),
"RelyingParty" to "http://auth.xboxlive.com",
"TokenType" to "JWT",
- ).postJson(ProtocolDefinition.MICROSOFT_ACCOUNT_XBOX_LIVE_AUTHENTICATE_URL)
+ ).postJson(XBOX_LIVE_AUTH_URL)
if (response.statusCode != 200 || response.body == null) {
@@ -183,7 +187,7 @@ object MicrosoftOAuthUtils {
),
"RelyingParty" to "rp://api.minecraftservices.com/",
"TokenType" to "JWT",
- ).postJson(ProtocolDefinition.MICROSOFT_ACCOUNT_XSTS_URL)
+ ).postJson(XSTS_URL)
if (response.statusCode != 200) {
val error = Jackson.MAPPER.convertValue(response.body, XboxAPIError::class.java)
@@ -204,7 +208,7 @@ object MicrosoftOAuthUtils {
val response = mapOf(
"identityToken" to "XBL3.0 x=${xBoxLiveToken.userHash};${xstsToken.token}",
"ensureLegacyEnabled" to true,
- ).postJson(ProtocolDefinition.MICROSOFT_ACCOUNT_MINECRAFT_LOGIN_WITH_XBOX_URL)
+ ).postJson(LOGIN_WITH_XBOX_URL)
if (response.statusCode != 200) {
throw MinecraftAPIException(response)