本帖最后由 Wow_Play 于 2025-2-14 15:33 编辑
Light cleaner是一个简单的插件,可以完成一项非常强大的任务:重新生成照明。它在专用线程上运行,使用自己的优化方法来最大限度地减少服务器的性能损失。通过对原始数据进行作,它可以轻松地每秒处理 200 个块! 从 1.12-v2 开始,现在还可以让插件自动清理新生成的块的光照。这样,当玩家探索世界的新区域时,就无需使用这些命令。 游戏机制 永远困扰着 Minecraft的一个错误是生成块时到处都是臭名昭著的暗光。您会在洞穴、峡谷壁、下界甚至地下找到它们!所有这些看起来有问题的灯都破坏了使 Minecraft 自然美丽的美感。更糟糕的是,这种照明的不断客户端修复会拖累客户端性能,尤其是在下界或极端生物群落中。  只需一个简单的命令,这个插件就会急切地啃食数百万个方块,完全从头开始重新计算它们的光照水平。为此,它使用原版 Minecraft 块信息,这意味着它看起来像预期的那样。 另一个用途是在插件以 “快速” 方式更改块后修复光照级别,例如 WorldEdit。如果在执行慢速服务器光照再生功能时更改了块,则更改块需要很长时间。这个插件提供了两全其美,允许在事后进行维修。 通过利用强大的算法与智能缓存相结合,它能够更快、更准确地重新生成这种照明。可以修复视图中的所有数据块或世界的所有数据块的光照。在执行这些计算时,主服务器线程不会停止。 命令
此插件提供以下命令:代码 (文本): /cleanlight - 重新生成您能看到
的所有块的光照 /cleanlight 12 - 重新生成您
周围 25x25 个块的光照 /cleanlight world - 在当前世界中
重新生成光照 /cleanlight world world1 - 重新生成 world1 的光照
/cleanlight abort - 取消任何正在进行的光照作
/cleanlight status - 检查修复
状态/cleanlight 位于 [chunk_x] [chunk_z] [chunk_radius] (世界) - 远程重新生成光照(命令方块) 权限代码 (文本): 允许玩家在玩家视图半径
内重新生成光照 lightcleaner.clean.view
允许玩家在任何半径处进行清洁,甚至超出视图半径
lightcleaner.clean.any
允许玩家为整个世界重新生成(这是很多块!
lightcleaner.clean.world
允许玩家仅清理特定半径或更小的区域。
例如,半径 5 允许命令 /cleanlight 5 和 /cleanlight 4,但不允许命令 /cleanlight 6。
lightcleaner.clean.radius 中。[半径]
lightcleaner.clean.radius.5
允许玩家中止所有光照作
lightcleaner.abort
允许玩家检查 lightcleaner.status 状态 配置
要打开新生成的块的自动清理,请在 config.yml中设置以下内容:代码 (文本): autoCleanEnabled:真 要在玩家执行 WorldEdit/FastAsyncWorldEdit作后启用自动清理,请在config.yml中设置以下内容:代码 (文本): autoCleanWorldEditEnabled:真 当服务器上的剩余可用内存(以 MB 为单位)下降得太低时,Light Cleaner 将暂停并保存世界以减少内存,直到它可以继续。如果遇到内存不足问题,请提高此值。如果您觉得它停滞时间过长,请降低它。代码 (文本): 最小可用内存:400 在处理时,插件必须尽快加载大面积的 chunk。在高并发性的情况下,它将同时将大量 chunk 排队进行加载,而在低并发性下,它可能会等待更长的时间。如果您发现插件对服务器性能的影响太大,请降低此值。代码 (文本): asyncLoadConcurrency:50 如果您的世界没有永久保存到磁盘,则可能需要禁用这些世界的保存。这还会阻止插件在服务器重新启动时继续照明作。代码 (文本): unsavedWorldNames:
- worldname1 FAWE
FastAsyncWorldEdit 在对世界进行更改后遇到了一些光照故障问题。在config.yml中使用 FAWE 执行更改后,您可以打开自动清洗。如果您这样做,请确保同时禁用 FAWE config.yml 中的内置清洁功能(模式:0)!代码 (文本): lighting:
# 如果数据包发送延迟到重新点亮完成
delay-packet-sending: true
async: true
# 要使用的重新点亮模式:
# - 0 = 无(不重新点亮)
# - 1 = 最佳(重新点亮更改的光源和更改的方块)
# - 2 = 全部(慢慢重新点亮每个方块)
mode: 0
# 如果在重新点亮
之前移除现有的照明 remove-first: false 注意:
此插件需要安装 BKCommonLib
这个插件是 “NoLagg Lighting” 的延续,这个组件由于导致主插件无法发布的问题而受到阻碍。
注意不要将任何块信息写入 chunk。这是为了防止世界数据的灾难性丢失。仅更新光照级别。
修复世界确实会导致在从磁盘加载和保存区块时,可能会降低区块的节拍率。通过限制一次加载的 chunk 数量,可以最大限度地减少这种 tick rate 下降。
如果您的服务器是 Minecraft 1.14 或更高版本, 请不要启用自动清理功能。它不仅不再需要,而且会导致生成无尽的块,远远超过你的世界边界。这是因为服务器在后台为每个加载的 chunk 生成 3 个深的相邻 chunk。
|