RegenSystem

高效地使用数据库中存储的快照来再生定义的区域。告别那些基于文件的、导致卡顿的再生系统。一款新时代的插件!

资源图片
# RegenSystem [![Modrinth](https://img.shields.io/modrinth/v/regensystem?color=green&label=Modrinth&logo=modrinth)](https://modrinth.com/plugin/regensystem) [![Downloads](https://img.shields.io/modrinth/dt/regensystem?label=downloads&color=brightgreen&style=flat-square)](https://modrinth.com/plugin/regensystem) [![JitPack version](https://jitpack.io/v/DarkLash1/RegenSystem.svg)](https://jitpack.io/#DarkLash1/RegenSystem) ![Monthly download statistics](https://jitpack.io/v/DarkLash1/RegenSystem.svg/month.svg) [![License : DL Group Public License](https://img.shields.io/badge/License-DLGPL--RegenSystem-orange.svg)](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 ` 激活区域。 --- ## 示例