PLUGIN DOCS
CyRedeem
材料兑换菜单:左侧选物品,右侧放材料,支持分页、管理后台和完整物品序列化。
简介
CyRedeem 是一个材料兑换插件:玩家打开兑换菜单,选择要换的物品,把材料放进提交槽,确认后获得产物。
核心功能
- 主界面商品区,每页 28 格,支持翻页
- 提交界面:顶部产物预览 + 14 格材料槽 + 一键放入
- 管理界面:手持物品创建兑换项,编辑产物和材料
- 完整保留物品名称、lore、附魔、NBT、模型和耐久
- 支持 CraftEngine 物品作为图标、产物或材料
- SQLite 存储,关闭界面自动退回材料
- 兑换日志和后台操作日志
支持环境
| 项目 | 要求 |
|---|---|
| 服务端 | Paper 1.21.11 |
| Java | Java 21 |
| 数据库 | SQLite,插件自带 |
| 数据文件 | plugins/CyRedeem/cyredeem.db |
| 软依赖 | CraftEngine(可选) |
| 硬依赖 | 无 |
安装
- 把
CyRedeem-1.4.7.jar放进plugins/。 - 重启服务器,生成
config.yml、messages.yml、gui/和数据库。 - 进服执行
/cr打开兑换菜单。 - 管理员手持要作为产物的物品,执行
/cr create <名字>创建兑换项。 - 在管理界面编辑产物、材料、图标,保存后即可使用。
玩家命令
| 命令 | 作用 |
|---|---|
/cr | 打开兑换主界面 |
/cr open | 打开兑换主界面 |
/cr help | 查看帮助 |
别名:/cyredeem、/redeem。
界面操作:
- 左键「操作」:从背包一键放入所需材料。
- 右键「操作」:直接兑换。
- 材料不足时红字提示;多余材料会留在槽里,可连续兑换。
- 关闭界面时材料自动退回背包;背包满时产物掉在脚下。
管理命令
需要 cyredeem.admin。
| 命令 | 作用 |
|---|---|
/cr create <名字> | 以主手物品创建兑换项,并打开管理界面 |
/cr list [页码] | 列出兑换项,每页 10 条 |
/cr show <编号> | 在菜单中显示该兑换项 |
/cr hide <编号> | 隐藏该兑换项 |
/cr toggle <编号> | 切换显示/隐藏 |
/cr remove <编号> | 删除兑换项(需 /cr confirm 二次确认) |
/cr confirm | 确认删除 |
/cr cancel | 取消删除 |
/cr reload | 重载配置、消息、GUI 和兑换数据 |
权限
| 权限 | 默认 | 说明 |
|---|---|---|
cyredeem.use | 所有人 | 打开兑换菜单 |
cyredeem.admin | OP | 创建、编辑、删除兑换项,重载配置 |
配置
主配置在 plugins/CyRedeem/config.yml。
材料比对
| 字段 | 默认 | 说明 |
|---|---|---|
match.material | true | 材质不同就不算同一种材料 |
match.name | true | 显示名参与比对 |
match.lore | true | lore 参与比对 |
match.enchantments | true | 附魔参与比对 |
match.nbt | true | NBT / PDC(含 CE 组件)参与比对 |
match.model | true | item_model / custom_model_data 参与比对 |
match.durability | true | 剩余耐久参与比对 |
数量永远不参与“是否同一种材料”的比对,需求量单独累计。
match:
material: true
name: true
lore: true
enchantments: true
nbt: true
model: true
durability: true
日志
logs:
enabled: true
keep-days: 7
cleanup-time: "00:00"
record:
redeem: true
redeem-failed: false
admin: true
open-menu: false
system: true
console: false
界面配置
三个界面都在 plugins/CyRedeem/gui/:
| 文件 | 界面 |
|---|---|
main.yml | 兑换主界面 |
submit.yml | 材料提交界面 |
manage.yml | 管理编辑界面 |
可以改标题、材质、名称、lore 和按钮;功能槽位固定,不能随意移动。具体槽位以 gui/Layout.java 为准:
- 主界面商品区:第 2–5 行第 2–8 列
- 顶部图标:4
- 产物预览:10–16
- 材料槽:28–34、37–43
- 返回:45
- 上一页 / 操作 / 下一页:48 / 49 / 50
- 关闭:53
变量与 API
CyRedeem 当前版本没有公开 API,也没有注册独立的 PlaceholderAPI 变量。
许可证验证
本插件启用前会校验许可证:插件把 license.yml 里的许可证号发送到授权服务器,服务器用私钥签名,插件用内置公钥验证签名。校验不通过时插件不会启用。
首次启动
- 必须联网:第一次启动没有缓存,联网校验失败会直接停止加载。
- 首次启动会在插件目录生成
license.yml。 - 控制台出现「许可证验证通过」表示正常。
license.yml
# 插件目录下的 license.yml
license:
key: "CYP-XXXX-XXXX-XXXX"
许可证号在网站 用户中心 查看,一个账号只有一个许可证,所有插件共用。
免费插件与付费插件
| 类型 | 是否需要填许可证 | 说明 |
|---|---|---|
| 免费插件 | 不需要 | 留空即可,插件仍会联网确认「免费」状态 |
| 付费插件 | 需要 | 先用兑换码在网站开通,再填入许可证号 |
心跳与缓存
- 运行期间每小时向服务器发一次心跳。
- 服务器临时无法连接时,有 7 天宽限期,期间插件继续可用。
- 服务器明确返回「许可证无效 / 已被禁用」时,立即停止,没有宽限。
- 插件被禁用后,需要到网站解绑或联系作者处理。
常见问题
控制台提示「无法连接验签服务器」
检查服务器能否访问 https://license.mc33.top,以及是否只启用了 IPv6(授权站仅支持 IPv4)。
提示「当前许可证未开通本插件」
到网站 兑换码 页面输入兑换码开通,或确认购买的是这个插件。
提示「IP 数量已达上限」
每个插件最多绑定 2 个 IP,到用户中心解绑旧服务器后再启动。
更换服务器后无法启动
旧 IP 仍占用名额,先在网站解绑,再在新服务器启动。
常见问题
/cr 打不开?
确认玩家有 cyredeem.use 权限,并且不是控制台执行。
材料明明够,为什么不能兑换?
检查 match 配置。默认名称、lore、附魔、NBT、模型、耐久都会参与比对;其中一项不同就会被当成不同材料。
关闭界面后材料去哪了?
材料会自动退回背包;背包满时掉在脚下。兑换后多余材料也会退回。
支持 CraftEngine 物品吗?
支持。物品通过完整序列化保存,CE 组件会保留;没有安装 CE 或 ID 写错时会回退到纸。
删除兑换项能恢复吗?
删除是永久操作,需要二次确认。建议先备份 plugins/CyRedeem/cyredeem.db。
更新日志
按时间倒序,最新的在最上面。当前版本是 1.4.6。
1.4.6(2026-10-22 · 当前版本)
- 当前构建版本;项目更新记录的早期条目主要记录 1.0.x 的界面与 CE 支持。
- 完整历史见插件根目录
更新日志.md。
1.0.1(2026-10-22)
- 修复边框漏画:补全 20 格玻璃板。
- 主界面 slot 4 默认显示 33 兑换卡(CE 物品)。
/cr create支持保留 CE 图标、产物和材料组件。
1.0.0(2026-10-22 · 首发)
- 三个界面:主界面、材料提交、管理界面。
- SQLite 存储兑换项和材料。
- 物品完整序列化,保留名称、lore、附魔、NBT、模型和耐久。
- 材料保护:关闭界面退回、兑换后多余材料退回、产物掉落在脚下。