Regenerator - 世界再生插件
Regenerator
Regenerator 是一款能够自动恢复世界的插件,它彻底免除了管理员在玩家炸毁或挖空地形后手动重置世界的麻烦。通过智能识别领地保护,它可以在不破坏玩家建筑的前提下,自动或按需再生被破坏的自然区块。
安装与配置
根据您服务器使用的领地保护插件类型,请选择对应的配置流程。
使用已集成的领地插件
- 从 SpigotMC.org 下载 Regenerator 并将其放入服务器的
plugins文件夹。 - 启动服务器。
- (可选)如需为特定领地设置自动再生,请编辑
/plugins/Regenerator/integrations/plugin.yml,在claimsAutoRegen下添加您的领地名称。 - 若执行了上一步,请执行
/regenerator reload或重启服务器。
使用未集成的区块保护插件
- 启动服务器。
- 编辑
global.yml,将enableUnknownProtectionDetection设置为true。 - 编辑
global.yml,将noGriefRun设置为true。 - 执行
/regenerator reload或重启服务器。
未使用任何领地保护插件
- 启动服务器。
- 配置
/plugins/Regenerator/worlds/目录下的各个world.yml文件。 - 根据需求,将每个世界的
autoRegen设置为true或false。 - 为每个启用了自动再生的世界,设置
minBlockAutoRegen(从出生点开始再生的最小距离)。 - 为每个启用了自动再生的世界,设置
maxBlockAutoRegen(从出生点停止再生的最大距离)。 - 编辑
global.yml,将noGriefRun设置为true。 - 执行
/regenerator reload或重启服务器。
已集成的领地保护插件
v3.4.0 或更高版本 (MC 1.13-1.15.2)
- Factions3
- Grief Prevention
- RedProtect
- WorldGuard
- Towny
v3.3.0 或更低版本 (MC 1.7-1.12)
- Factions
- Grief Prevention
- WorldGuard
- RedProtect
- FactionsUUID
- Towny
- Landlord
- FactionsOne
对未集成插件的支持
Regenerator 对所有基于区块的保护插件提供有限支持(需要 MC 1.15.2)。启用后,插件将不会再生任何它未集成但已被认领的土地。
- 只需在
global.yml中将enableUnknownProtectionDetection设置为true即可启用此功能。
> 注意:目前,Regenerator 不支持其未集成的基于区域(Region) 的保护插件。
世界升级功能
Regenerator 始终使用当前 Minecraft 服务器版本、种子和活动中的世界生成器来再生区块。这意味着,如果一个世界是在旧版 Minecraft 或使用已卸载的世界生成插件中创建的,再生后的区块外观将与之前不同,因为 Regenerator 并非回滚插件。
这样做的好处是,随着时间的推移,服务器世界中所有未被认领的区域都将更新到当前 MC 版本,或脱离已缺失的世界生成器。
- 您可以将
regenerateUninitialisedChunksNearPlayersRadius设置为 0 或更高,让玩家在探索世界时初始化并排队再生附近的区块,从而加速此过程。 - 如果服务器性能足够好,可以在
global.yml中将regenerateUninitialisedChunksNearPlayersInstant设置为true,尝试在区块初始化时立即再生它们。
> 注意:当 regenerateUninitialisedChunksNearPlayersInstant 设为 true 时,如果 TPS 下降过低,插件将回退到排队再生模式。
责任声明
本插件具有高度破坏性,再生世界区块始终存在风险。下载并安装此插件即表示您同意定期备份世界,并完全免除作者对世界可能遭受的任何损害的责任。
尽管如此,所有围绕保护已认领区块的核心机制都是坚实可靠的。目前尚未收到任何关于已认领区块被再生或区块损坏的报告。
命令列表
- 命令:
/regenerator map - 描述:显示一个类似 Factions/Towny 的小地图,包含图例,展示周围区块的再生状态以及玩家是否可以手动再生。
- 权限节点:
regenerator.map
- 命令:
/regenerator info <chunk/world> - 描述:显示指定区块或世界的当前状态,以及其上次被再生或激活的时间。
- 权限节点:无。
- 命令:
/regenerator integrations - 描述:显示支持的领地保护插件列表及其当前激活状态。
- 权限节点:
regenerator.integrations
- 命令:
/regenerator regen - 描述:尝试再生玩家所站立的区块。如果失败,会提示所需的权限节点。
- 权限节点:基础节点为
regenerator.regen。
> 关于 /regen 命令权限的说明:此命令有许多依赖领地插件和玩家与认领者关系的权限节点。拒绝消息中总会包含正确的节点,因此此处不一一列出。
常见问题解答
Q: 这个插件支持自定义世界生成器吗,比如 EpicWorldGenerator?
- A: 支持!只要该插件正确实现了 Bukkit 的 World Provider 接口即可。
Q: 支持同时安装多个保护插件吗?
- A: 支持!
Q: 不安装领地保护插件也能用吗?
- A: 可以,但您需要在每个
world.yml中配置minBlockAutoRegen和/或maxBlockAutoRegen,或者在global.yml中启用UnknownProtectionDetection以防止玩家建筑被再生。 - 重要:完成配置后,请在
global.yml中将noGriefRun设置为true,以确认您已正确配置并接受因配置失误导致世界被再生的风险。强烈建议先备份世界。
Q: 会导致服务器卡顿吗?
- A: 如果配置正确,不会。您可以通过配置控制再生区块的快慢,默认每 5 秒再生一个区块。
- 仅当启用
regenerateUninitialisedChunksNearPlayersRadius(设为 -1 可禁用)或将regenerateUninitialisedChunksNearPlayersInstant设为true时,插件才可能对 TPS 产生明显影响。
Q: 可以为自定义区域设置自动再生吗?
- A: 可以,如果您的领地插件已集成且支持此功能。请查看
/integrations/plugin.yml确认。
Q: 如果我的领地插件使用区域(Region)而非区块,并且只认领了区块的一部分,会怎样?
- A: Regenerator 会将整个区块划归该区域,并视为该区域领土的一部分进行处理。
Q: 如果多个领地插件在一个区块内都认领了区域,会怎样?
- A: Regenerator 会锁定该区块,使其无法被再生或手动再生(除非拥有覆盖权限)。当认领数量减少到 1 或 0 时,此锁定将不再适用。
Q: 可以让不同世界以不同速度再生吗?
- A: 可以。所有世界最初继承
global.yml中的defaultRegenInterval,但在其world.yml文件生成后,每个世界在/plugins/Regenerator/worlds/目录下都有独立的regenInterval可配置。
Q: 我的服务器卡顿了,怎么办?
- A: 请尝试将
config.yml中的min-tps-regen配置项增加到 17 或更高。
Q: 我有新功能想法或想集成新插件,如何联系作者?
- A: 您可以通过 Regenerator Discord (https://discord.gg/gcSkQJ7) 联系 Bysokar,或在 spigotmc.org 上发送私信或发起讨论。
Q: 我有 Bug 要报告,发到哪里?
- A: 请发布到 https://github.com/Bysokar/Regenerator/issues/new,并附上您的 Regenerator 版本、WorldEdit 版本、服务器版本、集成插件版本、遇到的现象和期望的结果。必要时请包含日志和崩溃报告。
Q: 需要备份世界吗?
- A: 是的,为了安全起见,每次更新 Regenerator 时都应备份。虽然目前尚未收到世界被破坏的投诉,但防患于未然总是好的。
Q: 我的 MultiWorld 沙漠或海洋世界被再生成了主世界地形,怎么回事?
- A: 您安装了多个多世界插件,且在服务器启动时,一个非 MultiWorld 的插件加载了该世界。请卸载有冲突的插件,重启服务器让 MultiWorld 加载该世界,然后重新再生损坏的区块。
Q: 世界没有再生,为什么?
- A: 尝试在
global.yml中启用调试模式并查看服务器日志。日志通常会说明原因,最常见的是启用了UnknownProtectionDetection且服务器使用的插件保护了荒野。如果问题依旧,请将问题详情和服务器日志发布到 GitHub (https://github.com/Bysokar/Regenerator/issues/new)。
联系作者
如果您遇到任何问题,请随时通过 Regenerator Discord 联系 Bysokar:
https://discord.gg/gcSkQJ7