[MD]
# Vein
Vein 是一个 Paper 服务端连锁挖掘插件,支持自定义连锁方块列表、工具耐久检查、经验掉落与冷却控制。
---
## 功能特性
- **按住 Shift 触发连锁** — 玩家按下蹲键挖掘指定方块时自动连锁破坏相邻的同类型方块
- **可配置方块列表** — 通过 `config.yml` 自由增删可连锁的方块(Material 枚举名,不区分大小写)
- **工具耐久保护** — 可选在连锁过程中检查主手工具剩余耐久,剩余不足时自动中断并提示玩家
- **连锁数量上限** — 单次连锁最大方块数可配置,避免一次性破坏过多方块导致性能问题或意外损失
- **经验球掉落** — 矿石类方块支持按原版概率分布掉落经验球(煤/铁/铜 0-2、红石 1-5、钻石 3-7)
- **冷却机制** — 两次连锁之间可设置冷却时间(毫秒),防止瞬间高频触发
- **生存模式限定** — 可配置仅允许生存模式玩家触发连锁
- **准星瞄准提示** — 当玩家准星对准可连锁方块时,ActionBar 显示白色提示文字
---
## 环境要求
- **服务端**: Paper 1.21.1(或更高,同样支持Spigot核心)
- **Java**: JDK 21 或更高版本
---
## 安装
1. 将构建产物 `Vein-1.0.jar` 放入服务端 `plugins/` 目录
2. 启动服务端以生成默认配置文件 `plugins/Vein/config.yml`
3. 编辑 `config.yml`,填写授权卡密及个人化配置
4. 重启服务端或执行 `/vein reload` 重载配置
---
## 配置
```yaml
# 授权卡密
# 请填写您的授权卡密,验证失败则插件无法启动
license-key: ""
# 单次连锁最大方块数(安全上限)
max-blocks: 64
# 是否检查工具耐久(防止中途爆掉)
check-durability: true
# 是否掉落矿石经验球
drop-xp: true
# 仅限生存模式
only-survival: true
# 冷却时间(毫秒,0=无冷却)
cooldown-ms: 300
# 可连锁方块列表
# 添加或删除 Material 枚举名即可
# 不区分大小写,可加 minecraft: 前缀
blocks:
- IRON_ORE
- DEEPSLATE_IRON_ORE
- IRON_BLOCK
- COAL_ORE
- DEEPSLATE_COAL_ORE
- COAL_BLOCK
- DIAMOND_ORE
- DEEPSLATE_DIAMOND_ORE
- DIAMOND_BLOCK
- REDSTONE_ORE
- DEEPSLATE_REDSTONE_ORE
- REDSTONE_BLOCK
- GOLD_ORE
- DEEPSLATE_GOLD_ORE
- GOLD_BLOCK
- COPPER_ORE
- DEEPSLATE_COPPER_ORE
- COPPER_BLOCK
```
### 配置项说明
| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `license-key` | String | `""` | 授权卡密,为空或错误时插件拒绝启动 |
| `max-blocks` | Integer | `64` | 单次连锁破坏的最大方块数 |
| `check-durability` | Boolean | `true` | 是否在连锁前检查主手工具剩余耐久 |
| `drop-xp` | Boolean | `true` | 破坏矿石类方块时是否掉落经验球 |
| `only-survival` | Boolean | `true` | 是否仅允许生存模式触发连锁 |
| `cooldown-ms` | Long | `300` | 两次连锁之间的冷却时间(毫秒),设为 0 取消冷却 |
| `blocks` | List[String] | — | 可连锁的方块 Material 列表 |
---
## 指令与权限
| 指令 | 权限 | 默认 | 说明 |
|------|------|------|------|
| `/vein reload` | `vein.reload` | OP | 重载插件配置文件 |
| — | `vein.use` | 所有玩家 | 允许使用连锁挖掘功能(按住 Shift) |
---
## 许可
本插件为付费授权软件。未经授权禁止分发、反编译或二次打包。
[/MD]