Doc ID:
SIRC-129
TrMenu-V3 API 文档
TrMenu-V3 是一个 Minecraft 服务器菜单插件,提供丰富的 API 用于插件开发集成。
Overview
TrMenu-V3 API 文档
概述
TrMenu-V3 是一个 Minecraft 服务器菜单插件,提供丰富的 API 用于插件开发集成。
包名
- 主包:
me.arasple.mc.trmenu - API 事件包:
me.arasple.mc.trmenu.api.event - 显示模块包:
me.arasple.mc.trmenu.module.display - 数据库模块包:
me.arasple.mc.trmenu.module.internal.database
API 事件
1. CustomDatabaseEvent
包名: me.arasple.mc.trmenu.api.event
用途: 自定义数据库事件
构造函数:
CustomDatabaseEvent(name: String, database: Database? = null)
属性:
name: String– 数据库名称database: Database?– 数据库实例(可空)
2. MenuOpenEvent
包名: me.arasple.mc.trmenu.api.event
用途: 菜单打开事件
构造函数:
MenuOpenEvent(session: MenuSession, menu: Menu, page: Int, reason: Reason = Reason.UNKNOWN)
属性:
session: MenuSession– 菜单会话menu: Menu– 菜单实例page: Int– 页码reason: Reason– 打开原因
Reason 枚举:
RELOAD– 重新加载PLAYER_COMMAND– 玩家命令CONSOLE– 控制台BINDING_COMMANDS– 绑定命令BINDING_ITEMS– 绑定物品BINDING_SHORTCUT– 绑定快捷键UNKNOWN– 未知
3. MenuPageChangeEvent
包名: me.arasple.mc.trmenu.api.event
用途: 菜单翻页事件
构造函数:
MenuPageChangeEvent(session: MenuSession, from: Int, to: Int, override: Boolean)
属性:
session: MenuSession– 菜单会话from: Int– 原页码to: Int– 目标页码override: Boolean– 是否覆盖
4. MenuCloseEvent
包名: me.arasple.mc.trmenu.api.event
用途: 菜单关闭事件
构造函数:
MenuCloseEvent(session: MenuSession)
属性:
session: MenuSession– 菜单会话
模块 API
1. Receptacle 模块
模块名称: receptacle
用途: TrMenu 的菜单底层处理
2. Actions 模块
模块名称: action
用途: TrMenu 的动作组处理器,支持自定义动作
PAPI 变量(PlaceholderAPI 占位符)
菜单总量
%trmenu_menus%– 菜单总数
传递参数
%trmenu_args_<Index>%– 传递的参数,<Index>为参数索引(从0开始)
Metadata 数据
%trmenu_meta_<key>%– Metadata 数据%trmenu_data_<key>%– 数据存储
Menu 菜单数据
%trmenu_menu_page%– 当前正在查看的页码%trmenu_menu_pages%– 菜单总页码量%trmenu_menu_next%– 下一页的页码%trmenu_menu_prev%– 上一页的页码%trmenu_menu_title%– 当前访问的菜单标题
JavaScript 运算
%trmenu_js_<Context>%– JavaScript 运算
警告: 该变量可能会被恶意利用,请在确保玩家无法主动访问 PlaceholderAPI 变量的情况使用。
启用方式: 前往settings.yml将节点Options.Placeholders.JavaScript-Parse启用
Jexl 运算
%trmenu_jexl_<Context>%– Jexl 运算
警告: 该变量可能会被恶意利用,请在确保玩家无法主动访问 PlaceholderAPI 变量的情况使用。
启用方式: 前往settings.yml将节点Options.Placeholders.Jexl-Parse启用
使用示例
事件监听示例(Kotlin)
package com.github.username
import taboolib.common.platform.event.SubscribeEvent
object Demo {
@SubscribeEvent
fun e(e: MenuOpenEvent) {
println("玩家: ${e.session.viewer.name} 打开了菜单: ${e.menu.id}")
}
}
事件监听说明
- 使用 TabooLib 插件框架的事件系统
- 通过
@SubscribeEvent注解注册事件监听器 - 可以监听
MenuOpenEvent,MenuPageChangeEvent,MenuCloseEvent,CustomDatabaseEvent等事件
注意事项
- 所有事件都继承自
BukkitProxyEvent CustomDatabaseEvent的allowCancelled属性固定为false- 使用 PAPI 变量时需要注意安全性,特别是 JavaScript 和 Jexl 运算功能
- 插件基于 TabooLib 框架开发,事件监听需要遵循 TabooLib 的事件系统
版本信息
- 文档最后更新:2年前(API部分)
- PAPI 变量最后更新:1年前