TSTMenu
服务器菜单,一个插件搞定。
主菜单、快捷传送、动态价格系统商店、玩家自由市场、签到与在线奖励——装进 plugins/ 就能用。源码开放,免费分发,不收钱也不锁功能。
功能
金色标签是商业授权版才开的部分,其余全部免费。
主菜单 免费
54 格箱子界面,余额、在线时长常驻底部。内置七类入口按 menu.modules 开关显示,商业版还能加自定义按钮。品牌名与标题走配置,{brand} 自动替换。
快捷传送 免费
主城、地标、随机传送、玩家互传四合一。地标走 EssentialsX 的 /warp,列表在配置里改。
系统商店 免费
库存驱动的浮动价格:买得越多越贵,库存每小时按 restock-rate 回归基准。买入、卖出、一键回收身上的可卖物。
玩家市场 免费
玩家自己挂单、定价、购买、撤单。每人限单数、挂单过期天数、成交手续费全部可配,手续费可以为 0。
每日与在线奖励 免费
每日签到、在线满 N 分钟领金币、新手礼包。全部按玩家 UUID 记在本地 SQLite,重启不丢。
界面与数据 免费
纯箱子 GUI,不依赖资源包。分类、商品、价格、限额都写在 YAML,改完 /tstshop reload 生效。
排行榜 商业版
金币、在线时长、死亡、击杀四榜。接官网接口可跨服,不接就用本服统计。
个人中心与社交 商业版
资产、云仓库、账户绑定;在线玩家列表、戳一戳、站内邮件。依赖官网接口的部分自动降级。
自定义菜单项 商业版
任意图标、任意槽位、多行说明、权限门槛,点击执行 command / console / message / url / 打开内置页。
免费版与商业授权版
同一个 jar。免费版把外围功能固定在代码层关闭,配置改成 true 也不会生效。
| 能力 | 免费(默认) | 商业授权版 | 说明 |
|---|---|---|---|
| 主菜单 / 快捷传送 | ✓ | ✓ | 核心,永久免费 |
| 系统商店 / 玩家市场 | ✓ | ✓ | 含动态价格、挂单、回收 |
| 签到 / 在线奖励 / 新手礼包 | ✓ | ✓ | 数据存本地 SQLite |
| 排行榜 | × | ✓ | 代码层锁定 |
| 个人中心 | × | ✓ | 代码层锁定 |
| 社交(在线玩家 / 戳一戳 / 邮件入口) | × | ✓ | 代码层锁定 |
| 邮件系统 | × | ✓ | 代码层锁定 |
自定义菜单项 menu.custom | × | ✓ | 只在商业授权下渲染 |
| 离线授权校验 | 不需要 | 需要 | license.enforce: true |
免费版日志会显示「公益模式」;商业版权限、品牌、自定义项全部打开。演示模式(授权码错误)时连主菜单都会拦,已有数据不动。
命令与权限
插件注册了 menu / shop / market / tstmenu / tstshop 五组命令。
| 命令 | 作用 | 权限 |
|---|---|---|
| /menu | 打开主菜单 | tstmenu.use |
| /menu mail | 直接打开邮件页 | tstmenu.use |
| /menu reload | 重载配置、品牌、模块与授权 | tstmenu.admin |
| /shop [分类] | 打开系统商店,别名 /store | tstshop.use |
| /market [sell|my|cancel] | 玩家市场:浏览、挂单、我的挂单、撤单 | tstshop.market |
| /tstmenu reload|license|send | 管理:重载、查看授权标识、发系统邮件 | tstmenu.admin |
| /tstshop reload|setstock|setprice|sync|license | 商店管理:重载、改库存、改价、同步、授权 | tstshop.admin |
安装
三分钟,不需要资源包,不需要数据库服务器。
放插件
把 TSTMenu-2.1.0.jar 丢进 plugins/。确认装了 Vault 和一个经济插件(EssentialsX 自带)。
启动一次
生成 plugins/TSTMenu/:config.yml、shops.yml、shop.db。默认是空的三个商品分类,没有预装任何商品。
改完重载
编辑配置后游戏内执行 /menu reload,不用重启服务器。商品改完 /tstshop reload。
# 最简配置:先能用起来 brand: name: "我的服务器" menu: modules: teleport: true shop: true daily: true shop: restock-rate: 0.10 market: fee-percent: 0.0 max-listings: 10
地标传送需要在 EssentialsX 建同名 warp(默认 resource / end / event / trade),名字在 menu.warps 里改。
配置要点
常改的几项,其余都在 config.yml 注释里。
| 键 | 默认 | 作用 |
|---|---|---|
| brand.name | 服务器 | 界面标题里的服务器名,{brand} 占位 |
| shop.restock-rate | 0.10 | 每小时库存向基准回归的比例 |
| shop.price-decimals | 2 | 价格显示小数位 |
| market.fee-percent | 0.0 | 成交手续费百分比,0 就是不收 |
| market.max-listings | 10 | 每个玩家最多同时挂几单 |
| market.expire-days | 7 | 挂单过期自动退回 |
| menu.warps | resource/end/event/trade | 地标传送列表 |
| menu.daily.* | 50 / 30 / 120 | 签到金币、在线分钟数、在线奖励 |
| license.enforce | false | false 即公益模式,全功能无需授权 |
| website.enabled | false | 官网对接总开关,没有官网就保持关闭 |
常见问题
- 真的免费吗?有没有暗桩?
- 免费版就是完整核心:菜单、传送、商店、市场、签到奖励,没有时间限制、没有人数限制、不联网校验、不回传任何数据。日志里显示「公益模式」表示授权拦截没启用。
- 为什么排行榜、邮件这些被砍了?
- 这几个是外围功能,缺了不影响开服。做成商业授权的差异项,才能让愿意付钱的服主支撑后续维护;代码层面锁定,配置改 true 也不生效。
- 能改代码自己发布吗?
- 可以。MIT 协议,保留版权声明即可,改完再分发、甚至拿去卖都允许。源码包里带
LICENSE。 - 需要什么服务端?
- Java 21 运行环境,Paper / Purpur 1.20 及以上(编译目标 21,
api-version: 1.20)。Vault 必需,EssentialsX 与 PlaceholderAPI 为软依赖。 - 数据存在哪?换周目会丢吗?
- 存在
plugins/TSTMenu/shop.db(SQLite),库存、挂单、签到记录都在里面。升级或换版本时保留这个文件和shops.yml即可。 - 能商用分发吗?
- 能,但要注意:商业分发请把
license.enforce打开并自备授权码体系,否则你发出去的每一份都是免费版。授权私钥在License.java里,随源码公开,改掉它才能防止别人自己算码。
下载
v2.1.0,2026-11-13 构建。校验值放在下面,装前可核对。
插件本体
Java 21 编译,400 个条目,内含 SQLite JDBC 与 Gson,不需要额外装依赖库。
下载 jar · 13.2 MBAD9FD4028BD5E0716342B1046ABECEA9D75B2977E1950CE90E208769D639A831
源码包
三个 java 文件 + 配置模板 + 空商品模板 + LICENSE + 编译说明。MIT,随便改。
下载源码 · 38 KB25B16E1BB0EFAB973B7BEDF8726A435BDBA66B05BBFEE98A646C0EF10B3B35E2