# RegenSystem
[](https://modrinth.com/plugin/regensystem)
[](https://modrinth.com/plugin/regensystem)
[](https://jitpack.io/#DarkLash1/RegenSystem)

[](https://github.com/DarkLash1/RegenSystem/blob/main/LICENSE)
一个强大的、灵活的方块再生系统,专为 PvP 箱、生存区域或采矿区域设计。定义长方体区域,并让它们自动在一段时间内再生——一切都只需一个命令。
---
### ✅ 版本
- 🟢 目前在 **Paper API 1.20.6** 上开发中
- ⚡ 兼容 **Paper 1.20.x → 1.21.x**
- ⏳ 对旧版本的支持将在未来到来,但目前尚未提供
---
### ✅ 服务器兼容性
- ✅ 完全兼容 Paper — RegenSystem 使用现代 Adventure 组件,这些组件不受 Spigot 和 Bukkit 的部分支持。
- ⚠️ Spigot 支持将在未来到来 — 由于缺少 Adventure 支持,插件可能无法在 Spigot 上正常工作。
- ⚠️ 未在 Purpur 或 Folia 上进行测试 — 兼容性可能会有所不同。
---
### ✅ RegenSystem API
**🔗 完整的文档在这里:**
[RegenSystem API](https://github.com/DarkLash1/RegenSystem/wiki/RegenSystem-API)
了解如何通过自定义事件和干净的接口与插件交互,以便构建兼容的扩展或插件。
---
### ✅ 命令
| 命令 | 描述 |
|------------------------------------------------|----------------------------------------------------------------------------|
| `/regen pos1` | 在您的当前位置设置区域的第一角点。 |
| `/regen pos2` | 在您的当前位置设置区域的第二个角点。 |
| `/regen save [delay] [f:flag=value]...` | 保存一个新的区域,带有可选的再生延迟(秒)和可选标志。 |
| `/regen reload [zone]` | 重新加载所有区域,或者如果提供了名称,则重新加载特定的区域。 |
| `/regen delete ` | 删除一个区域及其存储的数据。 |
| `/regen snapshot ` | 使用当前方块更新区域的存储状态。 |
| `/regen wand` | 接收一把钻石斧头,用于左键/右键选择 pos1/pos2 。 |
| `/regen enable ` | 全局启用再生,或为特定区域启用再生。 |
| `/regen disable ` | 全局禁用再生,或为特定区域禁用再生。 |
| `/regen menu` | 打开菜单以修改选项。 |
| `/regen help [page]` | 显示帮助菜单(有 3 页可用)。 |
| `/regen flag` | 显示所有可用标志及其描述。 |
| `/regen flag ` | 列出特定区域的所有标志及其状态。 |
| `/regen flag ` | 启用或禁用特定区域的特定标志。 |
| `/regen lang ` | 设置插件语言。 |
---
### ✅ 权限
| 权限 | 描述 | 默认 |
|------------------------|-----------------------------------------------------------------|---------|
| `regensystem.*` | 授予所有上面的权限 | OP |
| `regensystem.command` | 使用基本的 `/regen` 命令 | OP |
| `regensystem.pos` | 使用 `/regen pos1/pos2` 设置 pos1 和 pos2 | OP |
| `regensystem.save` | 使用 `/regen save` 保存区域 | OP |
| `regensystem.reload` | 使用 `/regen reload` 重新加载区域 | OP |
| `regensystem.delete` | 使用 `/regen delete` 删除区域 | OP |
| `regensystem.snapshot` | 使用 `/regen snapshot` 更新区域数据 | OP |
| `regensystem.wand` | 使用 `/regen wand` 给自己提供选择斧头 | OP |
| `regensystem.toggle` | 使用 `/regen enable/disable` 启用/禁用再生 | OP |
| `regensystem.menu` | 使用 `/regen menu` 打开菜单 | OP |
| `regensystem.update` | 在连接时收到更新消息 | OP |
| `regensystem.flag` | 允许您使用 `/regen flag` 管理标志 | OP |
| `regensystem.lang` | 允许您使用 `/regen lang` 设置插件语言 | OP |
💡 使用 `regensystem.*` 以快速授予插件所有访问权限。
---
### 🔁 依赖
- ✅ PlaceholderAPI _(软依赖,可选)_
为了启用占位符,只需安装 PlaceholderAPI —— 插件将自动检测到它。
---
### ✅ 占位符 (通过 PlaceholderAPI)
如果安装了[PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/),您可以使用以下占位符:
| 占位符 | 描述 |
|--------------------------------------|--------------------------------------------------|
| `%regen_zone_count%` | 定义的区域总数 |
| `%regen_regen_enabled%` | 全局再生状态 (`enabled` 或 `disabled`) |
| `%regen_enabled_%` | 如果特定区域启用了再生 |
| `%regen_delay_%` | 特定区域的再生延迟(以秒为单位) |
| `%regen_exists_%` | 如果区域存在,则返回“true” |
| `%regen_block_count_%` | 区域内的原始方块数量 |
| `%regen_corner1_%` | 区域的第一个角点的坐标 |
| `%regen_corner2_%` | 区域的第二个角点的坐标 |
| `%regen_timer_%` | 下次再生前剩余的时间(分:秒) |
| `%regen_name_%` | 区域的官方名称 |
⚠️ 如果安装了 PlaceholderAPI,占位符将自动注册。无需额外配置。
---
### ✅ bStats
RegenSystem 使用 [bStats](https://bstats.org/plugin/bukkit/RegenSystem) 来收集基本的统计数据,例如服务器数量和版本。这有助于开发者随着时间的推移改进插件。
---
### ✅ 文件结构
```bash
plugins/
└── RegenSystem/
├── config.yml # 插件消息 & 前缀 (请勿编辑版本!)
├── zone.yml # 区域定义:位置、延迟、启用标志
├── version.cache # 请勿修改此文件
└── zone.db # 🔥 方块数据存储(SQLite,自动管理)
```
---
### ✅ zone.yml
> 此文件包含您区域的定义:它们的位置、延迟和状态。
```yaml
global:
regen-enabled: true # 全局启用或禁用再生
zones:
zone1: # 替换为您的区域名称
pos1: world,100,64,100 # 长方体的第一角点(x, y, z)
pos2: world,110,70,110 # 长方体的第二个角点(x, y, z)
regenDelay: 60 # 秒延迟
enabled: true # 如果为 false,则该区域将不会再生
flags: # 特定于区域的标志
BLOCK_BREAK: true
ITEM_DROP: true
MOB_SPAWN: true
PVP: true
BLOCK_PLACE: true
MOB_DAMAGE: true
EXPLOSION: true
ITEM_PICKUP: true
```
### ✅ config.yml
> ⚠️ 请勿编辑版本字段 — 它用于内部更新。
```yaml
version: 3 # ⚠️ 请勿修改!
debug: false # 用于在日志中提供更多信息
prefix: "&6[RegenSystem] &r" # 插件消息使用的前缀
updates:
check-interval: 12 # 以小时为单位
notify-admins: true # 向管理员发送通知
```
### ✅ zone.db (SQLite)
> 存储每个区域的方块快照 — 快速、优化和安全。
> **请勿**手动编辑 — 由插件自动管理。
---
### 📌 安装
1. 将 `RegenSystem-VERSION.jar` 放入您的 `plugins/` 文件夹中。
2. (可选)安装 [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) 以获得占位符支持。
3. 启动您的服务器。
4. 使用 `/regen wand` 定义区域,并使用 `/regen save ` 激活区域。
---
## 示例