File tree Expand file tree Collapse file tree 9 files changed +43
-15
lines changed
mcutils-msmp/src/commonMain/kotlin/tech/aliorpse/mcutils/api
mcutils-player/src/commonMain/kotlin/tech/aliorpse/mcutils/internal/impl
commonMain/kotlin/tech/aliorpse/mcutils/internal/util
jsMain/kotlin/tech/aliorpse/mcutils/internal/util
jvmMain/kotlin/tech/aliorpse/mcutils/internal/util
nativeMain/kotlin/tech/aliorpse/mcutils/internal/util
wasmJsMain/kotlin/tech/aliorpse/mcutils/internal/util Expand file tree Collapse file tree 9 files changed +43
-15
lines changed Original file line number Diff line number Diff line change @@ -16,7 +16,6 @@ import kotlinx.coroutines.flow.firstOrNull
1616import kotlinx.coroutines.flow.flatMapLatest
1717import kotlinx.coroutines.flow.takeWhile
1818import kotlinx.coroutines.launch
19- import kotlinx.coroutines.runBlocking
2019import kotlinx.coroutines.withTimeout
2120import kotlinx.serialization.KSerializer
2221import kotlinx.serialization.json.Json
@@ -29,6 +28,7 @@ import tech.aliorpse.mcutils.entity.MsmpEvent
2928import tech.aliorpse.mcutils.internal.MsmpConnection
3029import tech.aliorpse.mcutils.internal.MsmpLifecycleManager
3130import tech.aliorpse.mcutils.internal.util.SpinLockedMutableMap
31+ import tech.aliorpse.mcutils.internal.util.runBlocking
3232import kotlin.concurrent.atomics.ExperimentalAtomicApi
3333
3434@Suppress(" MagicNumber" )
Original file line number Diff line number Diff line change @@ -3,7 +3,6 @@ package tech.aliorpse.mcutils.internal.impl
33import io.ktor.client.call.body
44import io.ktor.client.request.get
55import io.ktor.client.statement.bodyAsText
6- import io.ktor.util.decodeBase64Bytes
76import kotlinx.serialization.json.Json
87import kotlinx.serialization.json.jsonObject
98import kotlinx.serialization.json.jsonPrimitive
@@ -13,6 +12,7 @@ import tech.aliorpse.mcutils.internal.entity.DecodedTextures
1312import tech.aliorpse.mcutils.internal.entity.PlayerProfileResponse
1413import tech.aliorpse.mcutils.internal.util.HttpClientProvider.httpClient
1514import tech.aliorpse.mcutils.internal.util.withDispatchersIO
15+ import kotlin.io.encoding.Base64
1616
1717internal object PlayerInfoImpl {
1818 const val UUID_LENGTH = 32
@@ -35,7 +35,7 @@ internal object PlayerInfoImpl {
3535 httpClient.get(" $MOJANG_SESSION_BASE /session/minecraft/profile/$id " ).body()
3636
3737 val decoded = json.decodeFromString<DecodedTextures >(
38- rawProfile.properties.first().value.decodeBase64Bytes( ).decodeToString()
38+ Base64 .decode( rawProfile.properties.first().value).decodeToString()
3939 )
4040
4141 PlayerProfile (
Original file line number Diff line number Diff line change 11package tech.aliorpse.mcutils.internal.util
22
33import kotlinx.coroutines.CoroutineDispatcher
4+ import kotlinx.coroutines.CoroutineScope
45import kotlinx.coroutines.currentCoroutineContext
56import kotlinx.coroutines.withContext
67
78public expect val DispatchersIO : CoroutineDispatcher
89
10+ public expect fun <T > runBlocking (block : suspend CoroutineScope .() -> T ): T
11+
912public suspend fun <T > withDispatchersIO (block : suspend () -> T ): T {
1013 val currentContext = currentCoroutineContext()
1114 return if (DispatchersIO .isDispatchNeeded(currentContext)) {
Original file line number Diff line number Diff line change 1+ package tech.aliorpse.mcutils.internal.util
2+
3+ import kotlinx.coroutines.CoroutineDispatcher
4+ import kotlinx.coroutines.CoroutineScope
5+ import kotlinx.coroutines.DelicateCoroutinesApi
6+ import kotlinx.coroutines.Dispatchers
7+ import kotlinx.coroutines.GlobalScope
8+ import kotlinx.coroutines.async
9+
10+ public actual val DispatchersIO : CoroutineDispatcher = Dispatchers .Unconfined
11+
12+ @OptIn(DelicateCoroutinesApi ::class )
13+ public actual fun <T > runBlocking (block : suspend CoroutineScope .() -> T ): T =
14+ GlobalScope .async { block(this ) }.asDynamic()
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 11package tech.aliorpse.mcutils.internal.util
22
33import kotlinx.coroutines.CoroutineDispatcher
4+ import kotlinx.coroutines.CoroutineScope
45import kotlinx.coroutines.Dispatchers
6+ import kotlinx.coroutines.runBlocking
57
68public actual val DispatchersIO : CoroutineDispatcher = Dispatchers .IO
9+
10+ public actual fun <T > runBlocking (block : suspend CoroutineScope .() -> T ): T = runBlocking(block = block)
Original file line number Diff line number Diff line change 11package tech.aliorpse.mcutils.internal.util
22
33import kotlinx.coroutines.CoroutineDispatcher
4+ import kotlinx.coroutines.CoroutineScope
45import kotlinx.coroutines.Dispatchers
56import kotlinx.coroutines.IO
7+ import kotlinx.coroutines.runBlocking
68
79public actual val DispatchersIO : CoroutineDispatcher = Dispatchers .IO
10+
11+ public actual fun <T > runBlocking (block : suspend CoroutineScope .() -> T ): T = runBlocking(block = block)
Original file line number Diff line number Diff line change 1+ package tech.aliorpse.mcutils.internal.util
2+
3+ import kotlinx.coroutines.CoroutineDispatcher
4+ import kotlinx.coroutines.CoroutineScope
5+ import kotlinx.coroutines.DelicateCoroutinesApi
6+ import kotlinx.coroutines.Dispatchers
7+ import kotlinx.coroutines.ExperimentalCoroutinesApi
8+ import kotlinx.coroutines.GlobalScope
9+ import kotlinx.coroutines.async
10+
11+ public actual val DispatchersIO : CoroutineDispatcher = Dispatchers .Unconfined
12+
13+ @OptIn(DelicateCoroutinesApi ::class , ExperimentalCoroutinesApi ::class )
14+ public actual fun <T > runBlocking (block : suspend CoroutineScope .() -> T ): T =
15+ GlobalScope .async { block(this ) }.getCompleted()
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments