Skip to content
On this page
Common

ManagedEvents

top.katton.api.event.managedcommon/src/main/kotlin/top/katton/api/event/managed/ManagedEvents.kt
Managed event listener handle — returned to scripts when registering a native listener. Can be used to manually unregister the listener before reload.

ManagedEventHandle

ManagedEventHandleCommonData Class
kotlin
data class ManagedEventHandle( val id: Long, val eventClass: Class<*> )

Managed event listener handle — returned to scripts when registering a native listener. Can be used to manually unregister the listener before reload.

ManagedListenerProvider

ManagedListenerProviderCommonInterface
kotlin
interface ManagedListenerProvider

Platform-provided implementation of managed event listener registry. Each platform (Paper, Fabric, NeoForge) sets [provider] during initialization.

Managed listeners are automatically cleaned up on reload (GLOBAL scope persists, WORLD/SERVER_CACHE scope is cleared, all listeners cleared on full reload).

provider

providerCommonProperty
kotlin
@Volatile
@JvmField
@Volatile @JvmField var provider: ManagedListenerProvider?

Platform sets this during initialization (e.g., PaperManagedEvents.initialize()). Must be set before any script calls [registerEvent].

registerEvent

registerEventCommonFunction
kotlin
inline fun <reified T : Any> registerEvent(priority: Int = 2, ignoreCancelled: Boolean = false, handler: (T) -> Unit): ManagedEventHandle

Register a managed native event listener.

The listener is automatically cleaned up on /katton reload for WORLD/SERVER_CACHE scopes. GLOBAL scope listeners persist across reloads until manually [unregisterEvent]ed.

Parameters

ParameterDescription
TThe native event class (e.g., org.bukkit.event.player.PlayerMoveEvent)
priorityEvent priority (0=LOWEST, 1=LOW, 2=NORMAL, 3=HIGH, 4=HIGHEST, 5=MONITOR)
ignoreCancelledIf true, the handler is not called for cancelled events
handlerThe callback receiving the typed event

Returns

A handle that can be used with [unregisterEvent] to manually remove the listener

unregisterEvent

unregisterEventCommonFunction
kotlin
fun unregisterEvent(handle: ManagedEventHandle)

Manually unregister a managed listener created by [registerEvent].

clearManagedByScope

clearManagedByScopeCommonFunction
kotlin
fun clearManagedByScope(scope: ScriptPackScope)

Unregister all managed listeners registered under [scope]. Called by [top.katton.Katton.clearWorldAndServerEvents].

clearAllManaged

clearAllManagedCommonFunction
kotlin
fun clearAllManaged()

Unregister ALL managed listeners. Called on full reload or server shutdown.