一个全面的 Minecraft Bukkit 插件,它会自动保护带有朋友列表的容器,并提供视觉指示器、所有权转移和自动清理功能,以清理不活跃玩家的容器。
## 🔒 **核心保护功能**
### **自动容器保护**
- **即时保护**: 玩家放置的容器会自动保护
- **广泛的容器支持**: 保护 30 多种容器类型,包括:
- **存储**: 箱子、铁箱子、木桶、末影箱
- **所有调色板的刷刷箱**: 所有 17 种颜色(可配置)
- **加工**: 熔炉、高炉、烟熏炉、酿造台
- **红石**: 发射器、投掷器、漏斗
- **实用工具**: 信标、铁砧、附魔台、讲台、留声机等等
- **双箱支持**: 自动保护双箱的两个半部分
- **SQLite 数据库**: 持久的保护存储,具有高效索引
### **访问控制系统**
- **仅限所有者访问**: 默认情况下,只有放置容器的玩家才能访问它
- **管理员绕过**: 可配置的管理员覆盖,权限为 `chestprotect.admin.bypass`
- **破坏保护**: 防止未经授权的玩家破坏受保护的容器
## 👥 **朋友系统**
### **全局朋友列表**
- **添加朋友**: `/chestprotect friend add <玩家>` - 将玩家添加到您的朋友列表
- **移除朋友**: `/chestprotect friend remove <玩家>` - 从列表中移除玩家
- **查看朋友**: `/chestprotect friend list` - 查看您的所有朋友
- **清除列表**: `/chestprotect friend clear` - 一次性移除所有朋友
### **朋友访问权限**
- **全局访问**: 朋友可以访问您 *所有* 受保护的容器
- **离线玩家支持**: 即使他们在离线状态,也可以添加朋友
- **缓存性能**: 朋友列表被缓存,以实现快速访问检查
- **数据库持久性**: 朋友关系在服务器重启后依然存在
## 🎨 **视觉指示器**
### **粒子特效系统**
- **实时视觉反馈**: 通过粒子效果查看保护状态
- **颜色编码指示器**:
- 🟢 **绿色粒子** (快乐村民) - 您拥有的容器
- 🔵 **蓝色粒子** (附魔) - 您的朋友与您分享的容器
- 🔴 **红色粒子** (生气村民) - 您无法访问的受保护容器
- **智能显示**: 仅在玩家 10 个方块范围内显示粒子
- **性能优化**: 每 2 秒更新一次以最大限度减少滞后
- **可配置**: 在配置中启用/禁用视觉指示器
## 🔄 **所有权转移**
### **容器转移系统**
- **轻松转移**: `/chestprotect transfer <玩家>` - 将所有权转移给另一个人
- **瞄准目标**: 只需要看着您想转移所有权的那只容器 (不需要坐标)
- **即时转移**: 数据库更新后所有权立即发生变化
- **通知**: 两位玩家都会收到确认消息
- **验证**: 确保您拥有容器,并且目标玩家存在
## 🧹 **自动清理**
### **不活跃玩家管理**
- **上次访问跟踪**: 记录容器上次打开的时间
- **自动过期**: 删除 30 天以上未使用 (可配置) 的容器的保护
- **后台清理**: 每 24 小时自动运行
- **手动清理**: 管理员可以通过 `/chestprotect cleanup` 触发清理
- **世界清理**: 删除已删除世界的容器
## ⚙️ **高级配置**
### **漏斗控制**
- **可配置漏斗访问**: 选择漏斗是否可以从受保护的容器中提取/插入物品
- **完全阻止**: 在禁用时,漏斗不能与受保护的容器交互
- **所有容器类型**: 适用于箱子、熔炉、发射器和所有其他容器
### **可定制消息**
- **颜色代码支持**: 所有消息的完整 `&` 颜色代码支持
- **动态占位符**: `{容器}` 占位符显示实际的容器类型
- **多语言支持**: 所有消息都可以在 config.yml 中配置
- **管理员通知**: 管理员绕过动作的单独消息
### **保护设置**
- **管理员绕过开关**: 启用/禁用管理员覆盖权限
- **双箱保护**: 自动保护双箱的两个半部分
- **刷刷箱开关**: 启用/禁用刷刷箱保护
- **放置通知**: 配置玩家是否看到保护消息
## 📊 **信息和统计**
### **玩家信息**
- **保护统计**: `/chestprotect info` 显示:
- 您保护的容器数量
- 朋友列表中的朋友数量
- 自动清理过期设置
- **数据库查询**: 数据库中的实时统计信息
## 🛡️ **安全功能**
### **数据库安全**
- **SQLite 后端**: 轻量级、可靠的数据库存储
- **预处理语句**: 预防 SQL 注入攻击
- **事务安全**: 原子操作,确保数据一致性
- **索引优化**: 即使有数千个容器,也能进行快速查找
### **权限系统**
- **细粒度权限**: 为每个功能提供单独的权限
- **默认访问**: 默认情况下,所有玩家都可以访问基本功能
- **管理员控制**: 仅管理员才能使用的命令得到适当保护
- **权限继承**: 合理的权限层次结构
## 🚀 **性能特征**
### **优化系统**
- **朋友列表缓存**: 将朋友列表缓存到内存中,以便立即访问
- **高效的数据库查询**: 索引数据库和优化后的 SQL
- **最小的视觉影响**: 视觉指示器仅限于附近的容器
- **异步任务**: 清理操作不会影响服务器性能
### **资源管理**
- **轻量级设计**: 最小的内存占用
- **智能缓存**: 仅缓存频繁访问的数据
- **自动清理**: 后台任务可防止数据库膨胀
## 💻 **命令参考**
| 命令 | 描述 | 权限 |
|---|---|---|
| `/chestprotect` | 显示帮助菜单 | `chestprotect.use` |
| `/chestprotect friend add <玩家>` | 添加朋友 | `chestprotect.friend` |
| `/chestprotect friend remove <玩家>` | 移除朋友 | `chestprotect.friend` |
| `/chestprotect friend list` | 列出朋友 | `chestprotect.friend` |
| `/chestprotect friend clear` | 清除朋友 | `chestprotect.friend` |
| `/chestprotect transfer <玩家>` | 转移所有权 | `chestprotect.transfer` |
| `/chestprotect info` | 查看统计信息 | `chestprotect.info` |
| `/chestprotect cleanup` | 清理过期容器 | `chestprotect.admin.cleanup` |
| `/chestprotect reload` | 重新加载配置 | `chestprotect.admin.reload` |
**别名**: `/cp`, `/protect`, `/lockchest` 可用于 `/chestprotect`
## 🔧 **技术要求**
- **Minecraft 版本**: 1.21+ (API 版本 1.21)
- **服务器软件**: Bukkit, Spigot, Paper
- **依赖项**: SQLite JDBC 驱动程序 (通常包含)
- **Java 版本**: Java 17+ (符合 Minecraft 1.21 要求)
## 📋 **安装**
1. 下载 ChestProtect.jar
2. 放置在服务器的 `/plugins/` 文件夹中
3. 重启服务器以生成默认配置
4. 在 `/plugins/ChestProtect/config.yml` 中自定义设置
5. 使用 `/chestprotect reload` 重新加载配置
## ✨ **主要优势**
- **零配置**: 具有合理的默认设置即可立即运行
- **用户友好**: 简单命令和清晰的反馈消息
- **管理员友好**: 综合管理员工具和控制
- **性能有保障**: 针对多玩家服务器进行了优化
- **功能丰富**: 高级功能,却不复杂
- **可靠**: 强大的数据库存储和错误处理
---
**本插件提供完全实施的功能——不多,也不少。这里描述的每个功能都是完全可用的,并且经过了测试。**