页面、动作与生命周期
UiPage.key() 是逻辑页面 ID,UiPage.template() 是主题选择 ID。原版 menus 配置按逻辑 ID,IA pages 按模板 ID。
完整35页及主要动作如下,标记“同名”的页面使用自己的页面 ID 作为模板。
市场与发布
发布编辑器的模板依步骤为
wizard-type、wizard-item、wizard-terms(收购)、wizard-sale-terms(出售)、wizard-auction-terms(拍卖);最后确认使用 wizard-confirm。
输入与条件
资产与管理
首页与个人中心槽位
默认紧凑首页的原始槽位为0 头像、4 提示、8 领取、20/22/24 三类交易、45 钱包、53 我的挂单。
profile 使用 20 界面偏好、22 待核对、24 历史、31 管理与 49 返回;管理入口随权限显示。待核对列表复用 history 页面。
首页布局可通过 gui.home-layout: auto|compact|legacy 选择;已有 menus.home 在 auto 下保留旧首页,迁移规则见原版 GUI 个性化。
呈现器应读取当前快照和动作,不假设所有首页都使用同一组槽位。
数量、金额与结果
数量最大值按实际钱包、可用背包物品及币种限额计算,拍卖只取主手这一堆;充值和提现使用真实余额及可预查的后端容量。 报价变化会要求重新选择,最终提交仍重新校验,主题不得自行放宽上限。 收据提供独立的“查看/复制操作编号”动作,在聊天中显示完整编号和复制入口;摘要保持简短,inspect 与只读 API 仍保留编号。
交易展示
一口价按每件单价部分购买,每单最低购买量默认1,可在发布时设为1至发布数量;余量不足最低量时只能买完全部余量。收购按单价分批供货,竞拍起价为整标总价。 主题直接使用服务端金额、输入范围与商品说明。数量、总量与已成交量独立展示,保留真实物品属性。 商品时间和倒计时只反映当前展示,不替代数据库截止校验。领取仍遵守物品自身堆叠上限,空间不足时留在领取箱。动作与输入
动作清单以当前page.actions() 的槽位→不透明令牌为准。没有令牌的格子只展示信息;不得自己制造动作字符串,或将上一页面的令牌复用到新页。
每次打开或更新都替换页面身份、令牌与回调。
输入通过 UiCallbacks.input(raw),关闭通过 closed();prompt() 返回 false 时主插件继续使用聊天输入并保留草稿。
提供者生命周期
服务可能在数据库初始化后才注册。获取为空时监听
ServiceRegisterEvent,服务替换时丢弃旧句柄与页面;所属插件停用时注销,主插件会按会话保护回退。
不要在 Folia 全局线程读写玩家库存,示例不声明 Folia 认证。
Java 呈现器开发
提供者注册、页面更新、同页刷新与资源状态检查。