Package-level declarations

Types

Link copied to clipboard

Facade of a coroutine session of a single plugin.

Link copied to clipboard

The mode how suspendable events are executed if dispatched manually.

Link copied to clipboard
interface MCCoroutine
Link copied to clipboard
class MCCoroutineExceptionEvent(val plugin: <Error class: unknown class>, val exception: Throwable)

A sponge event which is called when an exception is raised in one of the coroutines managed by MCCoroutine. Cancelling this exception causes the error to not get logged and offers to possibility for custom logging.

Link copied to clipboard
abstract class SuspendingCommandElement(pluginContainer: <Error class: unknown class>, text: <Error class: unknown class>)
Link copied to clipboard

Interface containing the method directing how a certain command will be executed.

Link copied to clipboard

When injecting this class into one instance of your plugin, the instance of your plugin automatically becomes a suspending listener, so you can append suspend to any of your startup methods.

Properties

Link copied to clipboard
val <Error class: unknown class>.asyncDispatcher: CoroutineContext

Gets the plugin async dispatcher.

Link copied to clipboard
val <Error class: unknown class>.minecraftDispatcher: CoroutineContext

Gets the plugin minecraft dispatcher.

Link copied to clipboard
val <Error class: unknown class>.scope: <Error class: unknown class>

Gets the plugin coroutine scope.

Link copied to clipboard

Converts the number to ticks for being used together with delay(..). E.g. delay(1.ticks). Minecraft ticks 20 times per second, which means a tick appears every 50 milliseconds. However, delay() does not directly work with the SpongeScheduler and needs millisecond manipulation to work as expected. Therefore, 1 tick does not equal 50 milliseconds when using this method standalone and only sums up to 50 milliseconds if you use it together with delay.

Functions

Link copied to clipboard
fun <Error class: unknown class>.launch(    context: CoroutineContext = minecraftDispatcher,     start: <Error class: unknown class> = CoroutineStart.DEFAULT,     block: suspend <Error class: unknown class>.() -> Unit): <Error class: unknown class>

Launches a new coroutine on the minecraft main thread without blocking the current thread and returns a reference to the coroutine as a Job. The coroutine is cancelled when the resulting job is Job.cancel.

Link copied to clipboard
fun <Error class: unknown class>.postSuspending(    event: <Error class: unknown class>,     plugin: <Error class: unknown class>): Collection<<Error class: unknown class>>

Calls an event with the given details. If there are multiple suspend event receivers, each receiver is executed concurrently. Allows to await the completion of suspending event listeners.

fun <Error class: unknown class>.postSuspending(    event: <Error class: unknown class>,     plugin: <Error class: unknown class>,     eventExecutionType: EventExecutionType): Collection<<Error class: unknown class>>

Calls an event with the given details. Allows to await the completion of suspending event listeners.

Link copied to clipboard
fun <Error class: unknown class>.registerSuspendingListeners(plugin: <Error class: unknown class>, listener: Any)

Registers an event listener with suspending functions. Does exactly the same thing as PluginManager.registerEvents but makes suspend functions possible. Example:

Link copied to clipboard
fun <Error class: unknown class>.suspendingExecutor(    plugin: <Error class: unknown class>,     suspendingCommandExecutor: SuspendingCommandExecutor): <Error class: unknown class>

Registers an command executor with suspending function. Does exactly the same as PluginCommand.setExecutor.