地图墙壁更新器

地图墙壁更新器

允许玩家在不从物品展示框中取下的情况下刷新原版已填充的地图

地图墙更新器

地图墙更新器是一款轻量级的、服务端专用的 Forge 模组,适用于 Minecraft 1.20.1。 它允许玩家无需从物品展示框中移除已填充的地图,即可刷新这些地图。

使用方法

潜行并右键点击物品展示框中的任意已填充地图。模组会识别出朝向相同、相互连接的带框地图墙,并将其独特、未锁定的地图放入一个受保护的刷新队列中。

当玩家未潜行时,正常的物品展示框交互不会受到影响。

性能

  • 普通地图墙的更新目标耗时约为 10 秒。
  • 当可配置的毫秒预算用尽后,会停止开始新的更新任务。
  • 使用可配置的每游戏刻硬性工作量上限来保护服务器 TPS(每秒游戏刻数)。
  • 每个采样区域只检查一次区块可用性,而不是每轮更新都检查。
  • 一次只处理一个排队中的地图墙,并在其包含的地图之间公平轮转。
  • 可以更新未加载的地形数据;默认启用。
  • 也可以选择跳过未加载的地形,以避免同步加载区块。
  • 对共享同一地图 ID 的复制地图进行去重处理。
  • 对最近已入队的地图应用 60 秒的冷却时间。
  • 在墙壁的采样点周围显示轻量级的进度粒子效果。
  • 在发起请求的玩家的操作栏中显示进度百分比。

当达到每游戏刻安全上限时,大型或高缩放级别的地图墙可能会超出目标耗时。这可以防止极端规模的地图墙垄断单个游戏刻。

配置

Forge 会在首次启动后创建 config/map_wall_updater-common.toml 配置文件。

选项 默认值 描述
target_update_seconds 10 普通地图墙更新的目标耗时。
max_passes_per_tick 128 每个服务器游戏刻的硬性工作量上限。
max_work_millis_per_tick 3.0 每个服务器游戏刻的挂钟时间工作预算。
update_unloaded_terrain true 允许更新同步加载其所代表的地形。
generate_missing_chunks false 允许生成从未被保存过的区块。
wall_cooldown_seconds 60 地图在可再次入队前的延迟时间。
player_cooldown_seconds 60 同一玩家在排队不同地图墙前的延迟时间。
minimum_permission_level 0 排队地图墙所需的权限等级;0 表示允许所有玩家。
maximum_queued_walls 4 全局的活动和等待中的地图墙数量上限。
max_connected_maps 256 每次交互发现的相互连接的带框地图的最大数量。
message_language SPANISH 玩家消息语言;接受 SPANISH 或 ENGLISH。

操作员命令

  • /mapwall status 显示排队中的地图墙、待处理的地图和当前进度。
  • /mapwall cancel 取消当前活动的地图墙更新。
  • /mapwall cancelall 清除所有活动及等待中的地图墙更新。

所有命令都需要原版权限等级 2。

需求

  • Minecraft 1.20.1
  • Forge 47.4.20 或更高版本(47.x 系列)
  • Java 17

该模组仅需安装在专用服务器上。原版客户端可以正常连接。 它使用原版地图渲染机制,因此其他模组提供的地图颜色仍然兼容。 进度粒子效果对未安装模组的客户端也是可见的。

限制

  • 故意忽略已锁定的地图。
  • 当 update_unloaded_terrain = true 时,更新远处地图可能会同步加载区块。
  • 除非 generate_missing_chunks = true,否则会跳过缺失的区块。
  • 设置 update_unloaded_terrain = false 以跳过未加载的源地形,并最大限度地减少加载区块的影响。
  • 单次同步区块加载可能超出毫秒预算;处理会在该游戏刻稍后暂停。
  • 只有朝向相同且直接连接的物品展示框才会被视为一面地图墙。
  • 玩家必须保持在线才能收到最终的完成消息。

联系/反馈 Bug

Discord 上的 0b11_3x