mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 16:49:11 +00:00
Update kotlin and coroutines dependencies
This commit is contained in:
@@ -3,14 +3,10 @@ package org.apollo.game.action
|
||||
import java.util.concurrent.CancellationException
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
import kotlin.coroutines.experimental.Continuation
|
||||
import kotlin.coroutines.experimental.CoroutineContext
|
||||
import kotlin.coroutines.experimental.EmptyCoroutineContext
|
||||
import kotlin.coroutines.experimental.RestrictsSuspension
|
||||
import kotlin.coroutines.experimental.intrinsics.COROUTINE_SUSPENDED
|
||||
import kotlin.coroutines.experimental.intrinsics.createCoroutineUnchecked
|
||||
import kotlin.coroutines.experimental.intrinsics.suspendCoroutineOrReturn
|
||||
import kotlinx.coroutines.experimental.suspendCancellableCoroutine
|
||||
import kotlin.coroutines.intrinsics.COROUTINE_SUSPENDED
|
||||
import kotlin.coroutines.intrinsics.suspendCoroutineUninterceptedOrReturn
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import kotlin.coroutines.*
|
||||
|
||||
typealias ActionPredicate = () -> Boolean
|
||||
typealias ActionBlock = suspend ActionCoroutine.() -> Unit
|
||||
@@ -57,7 +53,7 @@ class ActionCoroutine : Continuation<Unit> {
|
||||
*/
|
||||
fun start(block: ActionBlock): ActionCoroutine {
|
||||
val coroutine = ActionCoroutine()
|
||||
val continuation = block.createCoroutineUnchecked(coroutine, coroutine)
|
||||
val continuation = block.createCoroutine(coroutine, coroutine)
|
||||
|
||||
coroutine.resumeContinuation(continuation)
|
||||
|
||||
@@ -66,8 +62,11 @@ class ActionCoroutine : Continuation<Unit> {
|
||||
}
|
||||
|
||||
override val context: CoroutineContext = EmptyCoroutineContext
|
||||
override fun resume(value: Unit) {}
|
||||
override fun resumeWithException(exception: Throwable) = throw exception
|
||||
override fun resumeWith(result: Result<Unit>) {
|
||||
if (result.isFailure) {
|
||||
throw result.exceptionOrNull()!!
|
||||
}
|
||||
}
|
||||
|
||||
private fun resumeContinuation(continuation: Continuation<Unit>, allowCancellation: Boolean = true) {
|
||||
try {
|
||||
@@ -108,7 +107,7 @@ class ActionCoroutine : Continuation<Unit> {
|
||||
}
|
||||
|
||||
private suspend fun awaitCondition(condition: ActionCoroutineCondition) {
|
||||
return suspendCoroutineOrReturn { cont ->
|
||||
return suspendCoroutineUninterceptedOrReturn { cont ->
|
||||
next.compareAndSet(null, ActionCoroutineStep(condition, cont))
|
||||
COROUTINE_SUSPENDED
|
||||
}
|
||||
@@ -118,7 +117,7 @@ class ActionCoroutine : Continuation<Unit> {
|
||||
* Stop execution of this continuation.
|
||||
*/
|
||||
suspend fun stop(): Nothing {
|
||||
suspendCancellableCoroutine<Unit>(true) { cont ->
|
||||
suspendCancellableCoroutine<Unit> { cont ->
|
||||
next.set(null)
|
||||
cont.cancel()
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package org.apollo.game.plugin.kotlin
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.script.experimental.annotations.KotlinScript
|
||||
import kotlin.script.experimental.annotations.KotlinScriptFileExtension
|
||||
import org.apollo.game.command.Command
|
||||
import org.apollo.game.command.CommandListener
|
||||
import org.apollo.game.message.handler.MessageHandler
|
||||
@@ -16,8 +15,7 @@ import org.apollo.game.model.event.PlayerEvent
|
||||
import org.apollo.game.plugin.PluginContext
|
||||
import org.apollo.net.message.Message
|
||||
|
||||
@KotlinScript("Apollo Plugin Script")
|
||||
@KotlinScriptFileExtension("plugin.kts")
|
||||
@KotlinScript("Apollo Plugin Script", fileExtension = "plugin.kts")
|
||||
abstract class KotlinPluginScript(private var world: World, val context: PluginContext) {
|
||||
var startListener: (World) -> Unit = { _ -> }
|
||||
var stopListener: (World) -> Unit = { _ -> }
|
||||
|
||||
Reference in New Issue
Block a user