给 Minecraft 服主的「交互工作台」。不用写代码,改改配置、套模板、执行指令,就能做出主菜单、商店、活动、VIP 和奖励页面。全核心兼容 Bukkit / Spigot / Paper / Purpur。
内置 8 套模板,一条指令生成可编辑的菜单文件。按钮、动作、条件、商店、奖励全部走 YAML,不用编程。
main / shop / activity / vip / reward / guide / teleport / rules 共 8 套模板,/jwb create 一条指令生成。
标题、行数、权限、音效、背景填充、多槽位按钮、发光、CustomModelData、动态变量、显示/点击条件、禁止拿取拖拽。
打开/关闭/返回菜单、玩家或控制台指令、消息、标题、ActionBar、音效、扣钱给钱、给物品、传送、跳服、冷却、标记奖励。左右键 Shift 可分别配置。
金币购买、出售、权限商品、一次性购买、每日限购、购买冷却、确认页。先扣款后发货,发货失败自动退款,防连点重复扣款。
每日 / 每周 / 一次性 / 在线时长奖励,领取记录持久化到 data/,玩家重进仍有效。发放失败不会误标记已领取。
/jwb validate 检查行数、slot、材质、价格、目标菜单、依赖状态并给修复建议。单个菜单写错不会让插件崩溃。
把 JibaiWorkbench-1.0.0.jar 放进 plugins/,重启服务器。首次启动会自动在 plugins/JibaiWorkbench/menus/ 生成 8 套默认菜单。
游戏内输入 /jwb open main,主菜单就出来了。
编辑 menus/main.yml,改完执行 /jwb reload,再 /jwb open main 看效果。
用 /jwb create shop myshop 新建商店,编辑 menus/myshop.yml,再用 /jwb validate 检查有没有写错。
| 指令 | 说明 | 权限 |
|---|---|---|
/jwb help | 查看帮助 | jibaiworkbench.use |
/jwb open <菜单> [玩家] | 打开菜单,可为他人打开 | .open / .open.others |
/jwb list | 列出所有菜单 | jibaiworkbench.use |
/jwb create <模板> <ID> | 从模板创建菜单 | jibaiworkbench.create |
/jwb copy <源> <目标> | 复制菜单 | jibaiworkbench.copy |
/jwb reload | 重载配置与菜单 | jibaiworkbench.reload |
/jwb validate | 校验所有菜单配置(只读,不动缓存) | jibaiworkbench.validate |
/jwb preview <菜单> | 预览菜单 | jibaiworkbench.preview |
/jwb debug <菜单> | 查看菜单调试信息 | jibaiworkbench.debug |
/jwb giveitem <玩家> <菜单> | 给玩家一个打开菜单的快捷物品(PDC 绑定,右键打开) | jibaiworkbench.giveitem |
菜单文件在 plugins/JibaiWorkbench/menus/,一个菜单一个 YAML。下面是一个带商店功能的按钮:插件自动处理扣款、发货、限购,你不用自己写扣钱动作。
# 商品按钮:左键购买 / 右键出售 diamond: slot: 10 material: DIAMOND name: "&b钻石 x8" lore: - "&7购买价:&a100 金币" - "&7出售价:&e60 金币" - "&e左键购买 &7/ &e右键出售" glow: true shop: buy-price: 100.0 # >=0,0=免费领取 sell-price: 60.0 # 省略=不可出售 give-item: "DIAMOND:8" daily-limit: 10 # 每日限购,0=不限 confirm: false # true=购买前确认页
动作按顺序执行,格式 "类型: 参数"。支持 open / close / back / player-command / console-command / message / title / sound / give-item / teleport 等十余种。
插件本体单独放进 plugins/ 就能跑。以下全部是软依赖,不装也不会报错、不会导致加载失败。
商店购买/出售、金币动作、{balance} 变量。Vault 只是桥梁,还需装 EssentialsX 等经济插件。缺失时商店提示「经济功能不可用」。
解析 %papi% 外部变量。内置 {player} {online} {balance} 等变量不装也能用;缺失时 %xxx% 保持原文本。
让 {group} 显示真实权限组名、VIP 菜单按组显示。缺失时显示 default,权限判断退回 Bukkit 原生,照常工作。
server: 跳服动作需要代理群组,并在 config 里手动开启 allow-server-jump。单服时该动作无效但不报错。
所有 YAML 用 UTF-8 保存,别用记事本另存为 ANSI,否则中文乱码。推荐 VS Code / Notepad++。
编辑任何 YAML 后执行 /jwb reload 才生效。reload 会关闭所有玩家正在看的菜单,属正常行为。
一行 9 格,菜单总格 = 行数×9。3 行合法 slot 是 0~26,6 行是 0~53。超出会在 validate 报错。
material、音效名用 Bukkit 枚举(全大写下划线)。材质写错会回退 STONE 并报错;音效写错静默跳过,不崩溃。
console-command 以控制台身份执行,config 有 allow-console-command 开关,请确保菜单配置可信。
只用 Spigot 通用 API,理论兼容全核心;实测在 Paper 1.21.8。不支持 Folia。上线前建议在目标核心自测。
当前版本 v1.0.0 · 在 Paper 1.21.8 完成全流程验证 · 全核心编译。