# Chestify
**用密码保护你的珍宝!**
## 概述
Chestify 是一个 Minecraft 插件,它通过允许玩家创建密码保护的箱子,即 **保险箱**,为你的宝贵物品带来新的安全级别。有了 Chestify,你可以在需要 4 位数字密码才能访问的保险箱中存储你的珍贵物品,确保只有授权的玩家才能打开它们。这个插件非常适合那些旨在增强玩家安全,同时又不会对原版游戏体验进行重大改变的服务器。
## 功能
- **密码保护的保险箱**: 创建需要 4 位数字密码才能打开的箱子。
- **图形 PIN 输入**: 一个直观的 GUI 允许玩家使用从 0 到 9 的数字输入他们的 PIN 代码。
- **玩家授权**: 正确输入 PIN 代码的玩家将获得授权,并且无需重新输入代码即可访问保险箱。
- **可配置的制作配方**: 自定义保险箱的制作配方或完全禁用制作。
- **视觉和声音效果**: 享受在成功或失败访问保险箱时可定制的视觉和音频反馈。
- **破坏保护**: 保险箱不能被爆炸、火灾或未授权玩家破坏。
- **自定义消息和设置**: 所有消息和插件设置都可以通过 `config.yml` 进行配置。
- **错误 PIN 时造成伤害**: 可选地对输入错误 PIN 代码的玩家造成伤害。
## 安装
1. **下载**: 从 [Modrinth](#) 下载 `Chestify.jar` 插件文件。
2. **安装**: 将 `Chestify.jar` 文件放入你服务器的 `plugins` 目录。
3. **重启服务器**: 重启你的服务器以生成默认的配置文件。
4. **配置**: 编辑位于 `plugins/Chestify` 的 `config.yml` 文件以根据需要自定义设置。
5. **重新加载插件**: 使用 `/chestify reload` 命令在不重启服务器的情况下应用配置更改。
## 配置
`config.yml` 文件允许你自定义:
- **制作配方**: 定义或禁用保险箱的制作配方。
- **效果和声音**: 自定义成功和失败保险箱交互的视觉和声音效果。
- **消息**: 编辑所有面向玩家的消息以进行本地化或个性化。
- **伤害设置**: 配置对错误 PIN 输入造成的伤害。
- **制作切换**: 启用或禁用制作保险箱的能力。
### 示例 `config.yml`
```yaml
settings:
enable_crafting: true
safe_recipe:
shape:
- 'III'
- 'ICI'
- 'IBI'
ingredients:
I: 'IRON_BLOCK'
C: 'CHEST'
B: 'DIAMOND_BLOCK'
damage_on_incorrect_pin: true
damage_amount: 2.0
effects:
success:
sound: 'ENTITY_PLAYER_LEVELUP'
sound_volume: 1.0
sound_pitch: 1.0
particle: 'VILLAGER_HAPPY'
particle_count: 10
failure:
sound: 'ENTITY_VILLAGER_NO'
sound_volume: 1.0
sound_pitch: 1.0
particle: 'SMOKE_NORMAL'
particle_count: 10
messages:
safe_placed: '&a你放置了一个保险箱。设置你的 PIN 代码。'
enter_pin: '输入你的 PIN 代码'
pin_set_success: '&aPIN 代码设置成功!'
pin_correct: '&a正确的 PIN。保险箱已解锁。'
pin_incorrect: '&c错误的 PIN。'
cannot_break_safe: '&c你不能破坏这个保险箱。'
safe_given: '&a你收到一个保险箱。'
safe_given_to_other: '&a你把一个保险箱给了 {player}。'
no_permission: '&c你没有使用此命令的权限。'
player_not_found: '&c未找到玩家。'
specify_player: '&c请指定要给予保险箱的玩家。'
reload_success: '&aChestify 配置文件已成功重新加载。'
set_your_pin: '设置你的 PIN 代码'
```
## 命令和权限
- **命令**: `/givesafe [player]`
- **描述**: 将一个保险箱给予给自己或指定的玩家。
- **权限**: `chestify.give`
- **命令**: `/chestify reload`
- **描述**: 重新加载插件配置。
- **权限**: `chestify.reload`
- **权限**:
- `chestify.bypass.open` — 允许在不输入 PIN 代码的情况下打开密码保护的保险箱。
- `chestify.bypass.break` — 允许在未授权的情况下破坏密码保护的保险箱。
## 如何使用
### 1. 获取一个保险箱
- **制作**: 使用在 `config.yml` 中定义的自定义配方制作一个保险箱(如果启用了制作)。
- **命令**: 使用 `/givesafe` 命令来接收一个保险箱(需要适当的权限)。
### 2. 放置保险箱
- 在世界中的所需位置放置保险箱。
### 3. 设置你的 PIN 代码
- 放置保险箱后,一个 GUI 将提示你使用从 0 到 9 的数字设置一个 4 位数字 PIN 代码。
### 4. 访问保险箱
- **授权访问**: 如果你是所有者或已经输入过正确的 PIN 代码,则无需输入 PIN 即可打开保险箱。
- **未授权访问**: 其他玩家必须输入正确的 PIN 代码才能访问保险箱。
### 5. 分享访问
- 将 PIN 代码与可信任的玩家共享,以授予他们访问你的保险箱的权限。
### 6. 破坏保险箱
- 只有所有者或授权的玩家才能破坏保险箱。
- 保险箱不能被爆炸、火灾和其他环境因素破坏。
## 兼容性
- **Minecraft 版本**: 1.19 - 1.21
- **服务器软件**: Spigot, Paper, Purpur
## 要求
- **Java 版本**: Java 17 或更高版本
- **权限插件** (可选): 用于管理用户权限。
## 详细功能
### 密码保护的保险箱
- 保险箱的功能类似于常规箱子,但需要 PIN 代码才能访问。
- PIN 代码存储在安全位置,并与保险箱的位置相关联。
### 图形 PIN 输入
- 玩家使用 GUI 中的从 0 到 9 的数字来输入他们的 PIN 代码。
- GUI 直观且用户友好,增强了游戏体验。
### 视觉和声音效果
- **成功效果**: 成功输入 PIN 代码后会播放可定制的声音和粒子效果。
- **失败效果**: 不同的声音和粒子表示错误的 PIN 代码输入。
- 效果可以在配置中进行定制或禁用。
### 错误 PIN 时造成伤害
- 可选地对尝试用错误的 PIN 代码打开保险箱的玩家造成伤害。
- 可以配置伤害量,从而对强行尝试起到威慑作用。
### 破坏保护
- 未授权的玩家、爆炸或环境危害不能破坏保险箱。
- 只有所有者或授权的玩家才能破坏和移动保险箱。
## 已知问题
- **与其他插件的兼容性**: 如果其他插件更改了箱子机制,则可能需要进行测试。
- **伤害设置**: 错误的配置可能会导致玩家意外受到伤害。请确保设置正确。
## 许可证
此插件在 [MIT 许可证](#) 下发布。
## 增强和未来计划
- **本地化**: 虽然消息可以自定义,但未来的更新可能会包含对多种语言的内置支持。
- **扩展授权**: 潜在地添加限时访问或访问日志。
- **定制**: 更多关于保险箱外观以及其他安全功能的选项。
---
**用 Chestify 保护你的宝贵物品,为你的 Minecraft 服务器带来新的安全性和互动性!**