开发文档
注意
插件由 YeePlugin 在 onEnable 时云端加载,建议延迟 10–15 秒后再注册 Trigger 事件监听
API
TrigrexAPI
kotlin
object TrigrexAPI {
/**
* 触发事件
* @param type 触发器类型
* @param player 玩家
* @param entity 目标实体
* @param item 目标物品
* @param location 目标路径,无目标时使用玩家路径
* @param params 额外参数,可在处理器中作为变量使用
* @param matcher 匹配回调,可使用处理器参数进行更多逻辑处理
*/
fun fire(
type: String,
player: Player,
entity: Entity? = null,
item: ItemStack? = null,
location: Location? = player.location,
params: MutableMap<String, Any> = mutableMapOf(),
matcher: Function<TriggerHandle, Boolean>? = null
): TriggerEvent {
return TriggerEvent(
type, player, entity, item, location, params, matcher ?: Function { true }).apply { call() }
}
/**
* 触发(结束)事件
* @param type 触发器类型
* @param player 玩家
* @param entity 目标实体
* @param item 目标物品
* @param location 目标路径,无目标时使用玩家路径
* @param params 额外参数,可在处理器中作为变量使用
* @param matcher 匹配回调,可使用处理器参数进行更多逻辑处理
*/
fun end(
type: String,
player: Player,
entity: Entity? = null,
item: ItemStack? = null,
location: Location? = player.location,
params: MutableMap<String, Any> = mutableMapOf(),
matcher: Function<TriggerHandle, Boolean>? = null
): TriggerEvent {
return TriggerEvent(
"$type-end", player, entity, item, location, params, matcher ?: Function { true }).apply { call() }
}
}触发器示例
kotlin
fun onEnable() {
registerBukkitListener(EntityDamageByEntityEvent::class.java) { event ->
val damager = event.damager as? Player ?: return@registerBukkitListener
val entity = event.entity
TrigrexAPI.fire("example", damager, entity, damager.inventory.itemInMainHand, entity.location)
}
}Event
提示
由于 YeePlugins 在 onEnable 阶段执行云端加载,若需注册监听,请在插件加载完成后通过循环检测再进行注册
触发器事件
kotlin
data class TriggerEvent(
// 类型
val type: String,
// 触发者
val player: Player,
// 触发者目标实体
val entity: Entity? = null,
// 目标物品
val item: ItemStack? = null,
// 目标位置,交互方块坐标等
val position: Location? = null,
// 额外参数
val params: MutableMap<String, Any> = mutableMapOf(),
// 触发器匹配回调
val matcher: Function<TriggerHandle, Boolean> = Function { true }
) : BukkitProxyEvent(), Cancellable处理器注册事件
kotlin
data class HandleRegisterEvent(
// 处理器
var handle: TriggerHandle
) : BukkitProxyEvent(), Cancellable处理器卸载事件
kotlin
data class HandleUnregisterEvent(
// 插件名
val plugin: JavaPlugin,
val handles: List<TriggerHandle>
) : BukkitProxyEvent()