mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-10-01 02:17:35 +00:00
Add on_button method to plugin scripts
This commit is contained in:
@@ -3,6 +3,7 @@ package org.apollo.game.plugin.kotlin
|
||||
import org.apollo.game.command.Command
|
||||
import org.apollo.game.command.CommandListener
|
||||
import org.apollo.game.message.handler.MessageHandler
|
||||
import org.apollo.game.message.impl.ButtonMessage
|
||||
import org.apollo.game.model.World
|
||||
import org.apollo.game.model.entity.Player
|
||||
import org.apollo.game.model.entity.setting.PrivilegeLevel
|
||||
@@ -20,12 +21,26 @@ abstract class KotlinPluginScript(private var world: World, val context: PluginC
|
||||
var startListener: (World) -> Unit = { _ -> };
|
||||
var stopListener: (World) -> Unit = { _ -> };
|
||||
|
||||
/**
|
||||
* Create a new [MessageHandler].
|
||||
*/
|
||||
fun <T : Message> on(type: () -> KClass<T>) = KotlinMessageHandler<T>(world, context, type.invoke())
|
||||
|
||||
/**
|
||||
* Create a new [EventListener] for a type of [PlayerEvent].
|
||||
*/
|
||||
fun <T : PlayerEvent> on_player_event(type: () -> KClass<T>) = KotlinPlayerEventHandler(world, type.invoke())
|
||||
|
||||
/**
|
||||
* Create a new [CommandHandler] for the given _command_ name, which only players with a [PrivelegeLevel]
|
||||
* of _privileges_ and above can use.
|
||||
*/
|
||||
fun on_command(command: String, privileges: PrivilegeLevel) = KotlinCommandHandler(world, command, privileges)
|
||||
|
||||
/**
|
||||
* Create a new [ButtonMessage] [MessageHandler] for the given _button_ id.
|
||||
*/
|
||||
fun on_button(button: Int) = on { ButtonMessage::class }.where { widgetId == button }
|
||||
|
||||
fun start(callback: (World) -> Unit) {
|
||||
this.startListener = callback
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
* required to resolve references within plugin code.
|
||||
*/
|
||||
|
||||
import org.apollo.game.command.Command
|
||||
import org.apollo.game.message.handler.MessageHandlerChainSet
|
||||
import org.apollo.game.message.impl.ButtonMessage
|
||||
import org.apollo.game.model.World
|
||||
import org.apollo.game.model.area.RegionRepository
|
||||
import org.apollo.game.model.entity.*
|
||||
@@ -16,21 +18,11 @@ import org.apollo.game.plugin.kotlin.*
|
||||
import org.apollo.net.message.Message
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
fun <T : Message> on(type: () -> KClass<T>): KotlinMessageHandler<T> {
|
||||
null!!
|
||||
}
|
||||
fun <T : PlayerEvent> on_player_event(type: () -> KClass<T>): KotlinPlayerEventHandler<T> {
|
||||
null!!
|
||||
}
|
||||
fun <T : Message> on(type: () -> KClass<T>): KotlinPlayerHandlerProxyTrait<T> = null!!
|
||||
fun <T : PlayerEvent> on_player_event(type: () -> KClass<T>): KotlinPlayerHandlerProxyTrait<T> = null!!
|
||||
fun on_command(command: String, privileges: PrivilegeLevel): KotlinPlayerHandlerProxyTrait<Command> = null!!
|
||||
fun on_button(button: Int): KotlinPlayerHandlerProxyTrait<ButtonMessage> = null!!
|
||||
|
||||
fun on_command(command: String, privileges: PrivilegeLevel): KotlinCommandHandler {
|
||||
null!!
|
||||
}
|
||||
fun start(callback: (World) -> Unit) = {}
|
||||
fun stop(callback: (World) -> Unit) = {}
|
||||
|
||||
fun start(callback: (World) -> Unit) {
|
||||
|
||||
}
|
||||
|
||||
fun stop(callback: (World) -> Unit) {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user