AdventureChest
Minecraft 死亡保护箱插件 — 玩家死亡时自动生成保护箱保存物品
📦 Paper / Purpur 1.21.4+
🎨 11种死亡盒风格
🗄️ MySQL / SQLite
🔗 跨服同步
🔒 物品绑定
核心功能
死亡保护箱
玩家死亡自动生成MythicMobs/ArmorStand保护箱, 保存全部物品和经验
11种风格
潜影盒/末影箱/木桶/蛙鸣灯/萤石灯/钻石块等, 管理员指令给予+天数
赎回限制
每日免费次数(权限分级VIP/MVP/PRO), 超限需GUI付费赎回
物品绑定
Lore含"绑定 @"自动绑定, 防止丢弃/他人拾取, GUI解绑
数据库
MySQL + SQLite 双模, 死亡记录历史, BungeeCord/Velocity跨服
性能优化
粒子限流/ArmorStand泄露防护/异步IO/5分钟自动保存
下一篇安装 →
安装
环境要求
| 项目 | 要求 |
|---|---|
| 服务端 | Paper / Purpur 1.21.4+ |
| Java | Java 21+ |
| 必须依赖 | Vault (经济) |
| 可选依赖 | PlaceholderAPI, WorldGuard, MythicMobs |
安装步骤
- 将
AdventureChest-1.2.0.jar放入plugins/ - 重启服务器, 首次启动自动生成配置文件
- 编辑
config.yml调整核心设置 - 编辑
styles.yml自定义死亡盒风格 - 如需数据库, 编辑
database.yml - 如需赎回限制, 编辑
redemption.yml - 执行
/achest reload热重载
配置文件列表
| 文件 | 说明 |
|---|---|
config.yml | 核心配置 (箱子/音效/粒子/惩罚/绑定/跨服) |
messages.yml | 所有消息文本 (99%可自定义) |
styles.yml | 死亡盒风格定义 |
database.yml | 数据库配置 (MySQL/SQLite) |
redemption.yml | 赎回限制配置 (每日次数/权限分级/费用) |
groups.yml | 死亡箱组配置 (不同权限组不同持续时间) |
上一篇← 概览
下一篇更新日志 →
更新日志
v1.2.1 (2026-04-08)
修复
- 普通玩家无法右键死亡箱拿取物品 — 不可见 ArmorStand 在 Paper 1.21+ 可能不触发客户端实体交互包。新增
PlayerInteractEvent回退机制: 通过视线方向+距离锥形检测自动匹配附近死亡箱 - 悬浮字(全息)导致卡顿 — 全息更新新增文本缓存(未变化时跳过), 移除每秒
teleport()调用(ArmorStand 位置在创建时已固定) - 悬浮字残留无法清除 — 所有插件 ArmorStand 现在标记
AChest_Entity/AChest_Hologramscoreboard tag, 泄露清理改用 tag 精确识别,替代之前不可靠的名称匹配
新增
- 全息开关 — 新增配置项
hologram-enabled: true/false,关闭后不再生成全息 ArmorStand,大幅降低实体数量 - 默认全息文本简化为仅显示玩家名
☠ {player} ☠
v1.2.0 (2026-04-04)
新功能
- 死亡盒风格系统 — 11种预设风格 (潜影盒/末影箱/木桶/蛙鸣灯/萤石灯/海晶灯/钻石块/黑曜石等), 管理员可通过
/achest style给予玩家风格+天数 - 赎回限制系统 — 每日免费死亡次数(权限分级: VIP 5次, MVP 7次, PRO 8次, MAX 10次), 超限后物品存入赎回队列, 需在GUI中付费赎回
- 数据库支持 — MySQL + SQLite 双模, 死亡记录历史表, 每日死亡计数表, 玩家风格表, 赎回队列表
- 跨服同步 — BungeeCord/Velocity 插件消息通道, 同步死亡通知/风格/赎回数据
GUI 重制
- 详情GUI 3按钮布局 — 传送(末影珍珠)+5s无敌保护、远程赎回(漏斗)、丢弃(岩浆桶)
- 虚空检测 — 虚空箱子自动禁用传送按钮(显示屏障),只允许赎回或丢弃
- 5秒无敌保护 — 传送到箱子后自动获得5秒伤害免疫(岩浆/高空安全)
- 地图信息物品 — FILLED_MAP 显示坐标、世界名(Multiverse别名)、死因、物品数、经验
- Multiverse-Core — GUI世界名自动显示Multiverse别名
- AdventureManage兼容 — 死亡时自动过滤AM绑定物品,不放入死亡箱
改进
- 命令前缀变更 —
/ac→/achest(别名/ach), 避免与AdventureCrats冲突 - 绑定机制简化 — 移除color-rules, 简化为Lore含"绑定 @"即触发, 忽略颜色代码
- 性能优化 — 粒子限流(仅附近有玩家时播放, 每3秒一次), ArmorStand泄露防护, 异步文件保存(每5分钟), tick优化
- 消息完善 — 新增绑定GUI/风格/赎回相关消息, 所有消息可在 messages.yml 自定义
修复
- 修复GUI切换视图时session被误删导致物品可被拿取、按钮无响应的严重BUG
- 移除残留的/acbind命令注册
- 修复绑定系统在不同颜色代码下无法正确识别的问题
- 修复无主ArmorStand可能泄露的问题
v1.1.0
- 初始版本: 死亡保护箱核心系统
- MythicMobs / ArmorStand 双模显示
- 物品绑定系统 (color-rules)
- GUI管理界面
- 新手保护系统
上一篇← 安装
下一篇主命令 →
主命令
管理员命令
| 命令 | 说明 | 权限 |
|---|---|---|
/achest reload | 重新加载所有配置 | adventurechest.admin |
/achest version | 查看版本信息和箱子数量 | adventurechest.admin |
/achest debug | 切换调试模式 | adventurechest.admin |
/achest style <玩家> <风格> [天数] | 设置玩家死亡盒风格 | adventurechest.admin |
/achest help | 显示帮助信息 | adventurechest.admin |
别名:
/achest 可缩写为 /ach风格命令详解
/achest style Steve shulker 30 # 给Steve潜影盒风格30天
/achest style Steve diamond -1 # 给Steve钻石块风格永久
/achest style Steve default # 恢复默认风格
上一篇← 更新日志
下一篇玩家命令 →
玩家命令
| 命令 | 说明 | 权限 |
|---|---|---|
/acgui [玩家] | 打开死亡箱GUI | adventurechest.gui |
/aclist [玩家] | 列出所有死亡箱 | adventurechest.use |
/actp [编号] | 传送到指定死亡箱 | adventurechest.tp |
/acfetch [编号] | 将死亡箱传送到身边 | adventurechest.fetch |
/acunlock [编号] | 解锁受保护的死亡箱 | adventurechest.protect |
/actoggle | 开关死亡箱功能 | adventurechest.toggle |
上一篇← 主命令
下一篇绑定命令 →
绑定命令
| 命令 | 说明 | 权限 |
|---|---|---|
/acbind | 打开物品解绑GUI | adventurechest.binding.use |
/acbind unbind | 直接解绑手中物品 | adventurechest.binding.use |
绑定机制
v1.2.0 起绑定机制已简化:
- 物品Lore中包含
绑定 @即视为可绑定物品 (忽略颜色代码) - 玩家首次拾取/使用时自动绑定, Lore变为
绑定 @玩家名 - 绑定后: 不可丢弃, 其他玩家不可拾取/使用
- 解绑: 通过GUI支付费用解绑, 或管理员命令强制解绑
注意: 不再需要
binding.yml 的 color-rules 配置, 所有绑定共用 config.yml 中的全局解绑费用.上一篇← 玩家命令
下一篇死亡箱系统 →
死亡箱系统
死亡流程
- 玩家死亡 → 检查权限/冷却/世界黑名单
- 赎回限制检查: 增加今日死亡计数
- 若 未超限: 生成MythicMobs/ArmorStand实体, 保存全部物品+经验+装备
- 若 超限: 物品存入赎回队列, 不生成实体 (减少服务器负担)
- 播放音效/粒子/图腾动画
- 全息文字显示箱子信息 (玩家名/物品数/倒计时)
交互方式
- 右键点击 实体 → 弹出物品取回GUI
- 命令 /acgui → 打开死亡箱列表GUI
- 命令 /actp → 传送到箱子位置
- 命令 /acfetch → 将箱子传送到身边
过期处理
- 箱子有持续时间 (可配置), 到期后根据配置 掉落物品 或 删除物品
- 离线暂停: 箱主离线时倒计时暂停 (可配置)
- 保护锁定: 其他玩家一定时间内无法打开 (可配置)
上一篇← 绑定命令
下一篇风格系统 →
风格系统
v1.2.0 新增. 管理员可为玩家设置不同的死亡盒外观风格.
预设风格
| ID | 名称 | 锁定材质 | 解锁材质 |
|---|---|---|---|
default | 默认箱子 | CHEST | ENDER_CHEST |
shulker | 潜影盒 | SHULKER_BOX | PURPLE_SHULKER_BOX |
ender | 末影箱 | ENDER_CHEST | ENDER_CHEST |
barrel | 木桶 | BARREL | BARREL |
froglight_ochre | 赭黄蛙鸣灯 | OCHRE_FROGLIGHT | OCHRE_FROGLIGHT |
froglight_pearlescent | 珠光蛙鸣灯 | PEARLESCENT_FROGLIGHT | PEARLESCENT_FROGLIGHT |
froglight_verdant | 翠绿蛙鸣灯 | VERDANT_FROGLIGHT | VERDANT_FROGLIGHT |
glowstone | 萤石灯 | GLOWSTONE | GLOWSTONE |
sea_lantern | 海晶灯 | SEA_LANTERN | SEA_LANTERN |
diamond | 钻石块 | DIAMOND_BLOCK | DIAMOND_BLOCK |
obsidian | 黑曜石 | OBSIDIAN | CRYING_OBSIDIAN |
使用方式
# 给予风格 (天数为-1=永久)
/achest style <玩家> <风格ID> [天数]
# 示例
/achest style Steve shulker 30
/achest style Alex diamond -1
自定义风格
编辑 styles.yml 添加新风格:
styles:
my_style:
display-name: "&6我的风格"
material: GOLD_BLOCK
material-unlocked: GOLD_BLOCK
permission: ""
description: "金块外观"
上一篇← 死亡箱系统
下一篇赎回限制 →
赎回限制
v1.2.0 新增. 限制每日免费死亡次数, 超限后物品不生成MM实体, 减少服务器负担.
流程
- 玩家死亡 → 今日死亡次数 +1
- 判断是否超过免费上限 (基于权限分级)
- 未超限 → 正常生成死亡箱实体
- 超限 → 物品存入赎回队列 (数据库), 需在GUI中付费赎回
权限分级
| 权限 | 每日免费次数 |
|---|---|
| 默认 (所有玩家) | 3 |
adventurechest.limit.vip | 5 |
adventurechest.limit.mvp | 7 |
adventurechest.limit.pro | 8 |
adventurechest.limit.max | 10 |
提示: 拥有多个权限的玩家取最高次数. 费用 =
redeem-cost-per-death × 超限次数.配置
编辑 redemption.yml:
enabled: true
redeem-cost-per-death: 100.0
permission-limits:
default: 3
adventurechest.limit.vip: 5
adventurechest.limit.mvp: 7
上一篇← 风格系统
下一篇物品绑定 →
物品绑定
工作原理
- 物品Lore中包含
绑定 @(忽略颜色代码) → 标记为可绑定 - 玩家首次拾取/使用 → 自动绑定, Lore变为
绑定 @玩家名 - 绑定后效果: 不可丢弃, 其他玩家不可拾取/使用
- 解绑方式: GUI支付费用 或 管理员命令
配置 (config.yml)
binding:
enable: true
can-gui-unbind: true
unbind-cost-money: 500
unbind-cost-xp: 0
unbind-cost-item: ""
unbind-cost-item-amount: 0
unbind-permission: ""
绕过权限
拥有 adventurechest.binding.bypass 的玩家不受绑定限制.
上一篇← 赎回限制
下一篇数据库 →
数据库
v1.2.0 新增. 支持 MySQL 和 SQLite 双模式.
数据表
| 表名 | 说明 |
|---|---|
achest_death_records | 死亡记录历史 (玩家/位置/原因/物品数/击杀者) |
achest_daily_deaths | 每日死亡计数 (赎回限制用) |
achest_player_styles | 玩家死亡盒风格 (风格ID/过期时间) |
achest_redemption_queue | 赎回队列 (超限物品/费用/状态) |
MySQL 配置
编辑 database.yml:
enabled: true
type: mysql
table-prefix: "achest_"
server-id: "lobby"
mysql:
host: localhost
port: 3306
database: minecraft
username: root
password: ""
use-ssl: false
SQLite 配置
enabled: true
type: sqlite
SQLite 数据库文件自动创建在插件目录: plugins/AdventureChest/data.db
跨服同步
启用 config.yml 中的 cross-server.enabled: true, 需要 BungeeCord/Velocity 代理.
同步内容: 死亡通知 / 风格变更 / 赎回数据刷新.
上一篇← 物品绑定
下一篇配置文件 →
配置文件
config.yml 核心配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
chest-duration | 箱子持续时间(秒), -1=永久 | 300 |
protect-time | 保护锁定时间(秒) | 60 |
max-chests | 每个玩家最大箱子数 | 3 |
drop-on-expire | 过期是否掉落物品 | true |
suspend-when-offline | 离线暂停倒计时 | true |
void-detection | 虚空检测(避免箱子在虚空生成) | true |
show-location | 死亡时显示箱子位置 | true |
totem-animation | 播放不死图腾动画 | false |
音效配置
| 配置项 | 说明 |
|---|---|
sound-chest-spawn | 箱子生成音效 |
sound-chest-expire | 箱子过期音效 |
sound-chest-unlock | 箱子解锁音效 |
sound-chest-loot | 取回物品音效 |
粒子配置
| 配置项 | 说明 |
|---|---|
particle-enabled | 是否启用粒子效果 |
particle-type | 粒子类型 (Bukkit Particle枚举) |
particle-count | 粒子数量 |
particle-radius | 粒子范围 |
性能: 粒子已优化为每3秒播放一次, 且仅在48格内有玩家时才播放.
上一篇← 数据库
下一篇权限节点 →
权限节点
| 权限 | 说明 | 默认 |
|---|---|---|
adventurechest.use | 死亡时生成保护箱 | true |
adventurechest.protect | 保护箱对其他玩家锁定 | true |
adventurechest.protect.bypass | 可以打开他人锁定的箱子 | op |
adventurechest.tp | 传送到死亡箱 | false |
adventurechest.fetch | 将死亡箱传送到身边 | false |
adventurechest.toggle | 开关死亡箱功能 | true |
adventurechest.preview | 预览死亡箱内容 | true |
adventurechest.others | 操作他人死亡箱 | op |
adventurechest.admin | 管理员权限 | op |
adventurechest.gui | 使用GUI | true |
adventurechest.unlock | 解锁保护箱 | true |
adventurechest.binding.use | 使用物品绑定 | true |
adventurechest.binding.bypass | 绕过物品绑定限制 | op |
adventurechest.protection.bypass | 绕过新手保护 | false |
adventurechest.penalty.bypass | 绕过死亡惩罚 | false |
adventurechest.limit.vip | VIP每日5次免费死亡 | false |
adventurechest.limit.mvp | MVP每日7次免费死亡 | false |
adventurechest.limit.pro | PRO每日8次免费死亡 | false |
adventurechest.limit.max | MAX每日10次免费死亡 | false |
上一篇← 配置文件
下一篇PAPI 占位符 →
PAPI 占位符
需安装 PlaceholderAPI.
| 占位符 | 说明 |
|---|---|
%adventurechest_count% | 玩家当前死亡箱数量 |
%adventurechest_total_deaths% | 历史总死亡次数 (需数据库) |
%adventurechest_today_deaths% | 今日死亡次数 |
%adventurechest_free_left% | 今日剩余免费死亡次数 |
%adventurechest_style% | 当前死亡盒风格 |
上一篇← 权限节点