Skip to content

Commit

Permalink
Som bugfix and implement minecraft launcher
Browse files Browse the repository at this point in the history
  • Loading branch information
LionZXY committed May 10, 2019
1 parent 19659f0 commit 0139ccf
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package ru.lionzxy.tplauncher.downloader

import ru.lionzxy.tplauncher.minecraft.MinecraftAccountManager
import ru.lionzxy.tplauncher.utils.ConfigHelper
import ru.lionzxy.tplauncher.utils.setWritableToFolder
import sk.tomsik68.mclauncher.api.ui.IProgressMonitor

class ComposerDownloader(minecraftAccountManager: MinecraftAccountManager) {
Expand All @@ -13,6 +15,7 @@ class ComposerDownloader(minecraftAccountManager: MinecraftAccountManager) {
download(it, progressMonitor)
}
}
ConfigHelper.getDefaultDirectory().setWritableToFolder()
}

private fun download(downloader: IDownloader, progressMonitor: IProgressMonitor) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,6 @@ class InitialDownloader : IDownloader {
}

override fun shouldDownload(): Boolean {
return ConfigHelper.config.downloadFirstPack ?: false
return !(ConfigHelper.config.downloadFirstPack ?: false)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ class MinecraftAccountManager() {
}
}

fun launch() {
MinecraftLauncher.launch(minecraftInstance, session!!)
}

private fun isLoggedInternal(): Boolean {
val profile = ConfigHelper.config.profile ?: return false
return !profile.email.isNullOrEmpty()
Expand Down
18 changes: 13 additions & 5 deletions src/main/kotlin/ru/lionzxy/tplauncher/view/main/MainController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import ru.lionzxy.tplauncher.utils.runAsync
import ru.lionzxy.tplauncher.view.main.states.*
import sk.tomsik68.mclauncher.api.ui.IProgressMonitor
import sk.tomsik68.mclauncher.impl.login.yggdrasil.YDServiceAuthenticationException
import java.lang.Thread.sleep
import java.util.concurrent.TimeUnit

class MainController(val stateMachine: IImplementState, val progressMonitor: IProgressMonitor) {
val minecraftAccountManager = MinecraftAccountManager()
Expand Down Expand Up @@ -47,16 +49,15 @@ class MainController(val stateMachine: IImplementState, val progressMonitor: IPr

try {
minecraftAccountManager.login(email, password)
stateMachine.setState(LoggedState(email))
onGameStart()
onGameStart(LoggedState(email))
} catch (exp: YDServiceAuthenticationException) {
stateMachine.setState(ErrorInitialState(exp.reason))
exp.printStackTrace()
stateMachine.setState(ErrorInitialState(exp.reason ?: exp.localizedMessage))
}
}

fun onGameStart() {
val currentState = stateMachine.currentState() as? LoggedState ?: return
fun onGameStart(baseState: BaseState = stateMachine.currentState()) {
val currentState = baseState as? LoggedState ?: return
stateMachine.setState(GameLoadingState(currentState))
progressMonitor.setProgress(-1)

Expand All @@ -72,6 +73,13 @@ class MainController(val stateMachine: IImplementState, val progressMonitor: IPr
)
e.printStackTrace()
}

minecraftAccountManager.launch()

progressMonitor.setStatus("Запускаем Minecraft...")
progressMonitor.setProgress(-1)
sleep(TimeUnit.MINUTES.toMillis(1))
stateMachine.setState(MinecraftLaunchedState(currentState))
}

fun onPasswordOrLoginChange() {
Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/ru/lionzxy/tplauncher/view/main/MainWindow.kt
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ class MainWindow : View(), IImplementState {
}

override val root = stackpane {
maxWidth = 592.0
vbox {
titleLabel = label("games.glitchless.ru") {
onMouseClicked =
Expand Down Expand Up @@ -185,7 +186,7 @@ class MainWindow : View(), IImplementState {
margin = Insets(DEFAULT_MARGIN)
}
alignment = Pos.TOP_RIGHT
onMouseClicked = CloseListener()
onMouseClicked = CloseListener(this@MainWindow)
}
val moveWindowHandler = MoveWindowHandler(this@MainWindow)
onMouseDragged = moveWindowHandler
Expand Down Expand Up @@ -263,6 +264,5 @@ class MainWindow : View(), IImplementState {
registerLabel.hide()
}
primaryStage.sizeToScene()
println(root.width)
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package ru.lionzxy.tplauncher.view.main.listener

import javafx.application.Platform
import javafx.event.EventHandler
import javafx.scene.input.MouseEvent
import tornadofx.View

class CloseListener : EventHandler<MouseEvent> {
class CloseListener(val view: View) : EventHandler<MouseEvent> {
override fun handle(p0: MouseEvent?) {
Platform.exit()
view.close()
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ru.lionzxy.tplauncher.view.main.states

class GameLoadingState(email: String) : LoggedState(email) {
open class GameLoadingState(email: String) : LoggedState(email) {
constructor(loggedState: LoggedState) : this(loggedState.email)

override var disableProgressBar = false
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ru.lionzxy.tplauncher.view.main.states

class MinecraftLaunchedState(state: LoggedState) : GameLoadingState(state) {
override var isOpen = false
}
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class SettingsWindow : View() {
margin = Insets(Constants.DEFAULT_MARGIN)
}
alignment = Pos.TOP_RIGHT
onMouseClicked = CloseListener()
onMouseClicked = CloseListener(this@SettingsWindow)
}
val moveWindowHandler = MoveWindowHandler(this@SettingsWindow)
onMouseDragged = moveWindowHandler
Expand Down

0 comments on commit 0139ccf

Please sign in to comment.