Skip to content

配置

介绍

FAWE 开箱即用,但配置可以调整限制与操作队列相关设置,使得 FAWE 更适合服务器。请参考如下条目及其中的默认配置注释以更好了解它们。

若你在调整编辑操作相关设置的过程中遇到了问题,请在进行其他操作之前先重置配置,可以将其删除并重启服务器或通过命令 /fawe 重载插件生成默认配置。

一步操作

WorldEdit 本身在放置方块前会尝试在内存中完成每个操作。除此之外,它还会在内存中存储撤销操作(历史记录),这会在大面积编辑时增加内存压力,从而导致服务器内存溢出并崩溃,或导致编辑未能成功完成。

而在 FAWE 中,每个编辑操作都处于各自的异步线程,以此提升大部分操作的速度。它会先在世界内放置方块,而非先等待操作完成。这允许大面积有更快的编辑速度。另外,方块的放置机制如同见缝插针,因此它们不会消耗大量内存。

FAWE 也可以在磁盘内存储撤销操作(历史记录),与其他改进一并使用时,可让 FAWE 以最小的影响完成最大程度的编辑。

限制设定

这些设置允许为不同组别的玩家设置 WorldEdit 一次可编辑的方块数量。default 部分对所有不启用限制绕过功能的普通玩家生效。见权限章节 fawe.bypassfawe.admin 了解更多信息。

你也可以为指定组别设置限制,并通过权限将其分配至不同玩家。见下文的默认配置注释部分了解更多。

队列设置

该部分的设置允许你调整异步队列操作使用的内存及编辑速度的相关设置。

本地队列

FAWE 从服务器主线程中分离,在单独的异步线程中完成编辑命令的操作,每个队列中编辑的方块会在处理后存入玩家的本地队列。

在队列中,方块按区块排列,使得 FAWE 能够通过更高效的区块算法在世界内(发送请求)放置方块。例如,WorldEdit 本身会在改变方块后执行光照更新、物理更新,最终发送数据包。而 FAWE 则使用按区块排列的方块队列,使其能以更高效的区块算法在世界内放置方块。

本地队列在编辑开始时处于未完成状态。当输入 //set//copy 命令产生了方块队列,它们就已经准备好被放置了。当其他命令(如 //smooth//deform)编辑了方块时,它会根据世界内其他方块位置及可能会被多次修改的方块而作出相应改变。(通常来讲,所有本地改动的方块数量等同于 64 个区块。)

完成编辑后,队列会变为完成状态。

全局队列

FAWE 通过全局队列来放置本地队列编辑中的方块。全局队列优先级按插入顺序排列,因此更早的本地队列会优先放置。全局队列中放置在世界内的方块在主线程处理。

FAWE 放置的方块只来源于完成状态的本地队列,且完成的本地队列列表必须在执行未完成本地队列中的方块放置操作前空置。

全局队列会与正在处理的本地编辑队列链接。(在内部代码中等价于两个队列——一个用于处理完成的本地队列,一个则用于处理未完成的本地队列。)

效率改进

FAWE 也会在没有完整队列可用时尝试放置不完整队列内的方块,以此提升方块放置的性能。

  • target-size

FAWE 通过这个参数决定单次尝试处理不完整队列时的方块数量,且确保这些方块不会有后续改动。

部分诸如 //smooth//deform 的命令,在其他操作命令仍在处理的情况下,可能不会正确生效(但这些命令通常不会改变邻近 64 个区块内的内容)。这些方块会根据其他方块位置改变,邻近方块也有可能被多次改变。在这种情况下,任意方块会被修改的可能性会在 64 区块的改动进入队列后降低。这不是诸如 //copy//set 等简单操作会出现的问题,因为这些方块不会多次改变。

如果没有等待放置的完整本地队列且 target-size 或更多数量的待编辑区块加入了队列,则全局队列会从正在处理的编辑中挑选并开始处理仍在其内的方块。

这个设置可以确保诸如 //smooth//deform 命令放置的方块尽可能文档,同时也确保全局队列能持续放置方块而不会闲置。

默认的 target-size 值为 64。

若不设置 target-size,则通过 /fastmode 进行的大型编辑会导致不完整队列排入的速度快于 max-wait-ms 设置可清空的时间。

减少 target-size 的值可能会降低诸如 //smooth//deform 等命令的性能,因为插件可能会在重复改变已放置方块上浪费时间。另外,这些命令取决于其他方块的位置,若 target-size 不够大,且不完整队列中放置的方块可能会在之后改变,则最终放置的方块可能会与处理结果不同。这可能导致命令出现问题,因此请尽可能将 target-size 调大以避免此类问题。

调大 target-size 不很有用,因为大部分有关编辑都出现在小于 64 个区块的处理时间中。同时,如果该值足够大,它有可能会使得 FAWE 在恢复会使得服务器内存溢出的大范围编辑时出现问题。

  • max-wait-ms

FAWE 在放置已处理编辑中的方块时速度最快。但是,这一过程既耗时又浪费内存,因此,这个设置会在编辑未完成但有方块可放置时,将它们发送至全局队列而非将其闲置于本地队列。

贡献者

The avatar of contributor named as SnowCutieOwO SnowCutieOwO

页面历史