三笠把那栋楼复制下来

三笠把那栋楼复制下来

客户端Fabric工具,用于将已加载区块中的建筑复制为JSON、NBT、.schem或.litematic。设置两个角点,在后台扫描而不会冻结游戏,跟踪进度和缺失区块,然后导出以便之后粘贴。无需服务器模组。

Copy That Building

仅客户端 的 Fabric 实用工具,作者 Mikasa,用于从已加载的客户端区块中复制建筑区域并导出为文件。

为建筑玩家、服务器管理员,以及任何想在建筑消失前将其保存下来的人而打造。你可以从任何有权访问的世界中复制堡垒、出生点、竞技场或你自己的作品 —— 之后在你的世界或服务器中重建它们。本模组只负责读取和导出。将建筑粘贴回世界由另一个独立的服务端模组(Place That Building)处理。

为什么要使用 Copy That Building?

  • 仅客户端 —— 无需服务端安装,无需权限即可复制。
  • 后台扫描 —— 模组在工作线程中读取区块,因此移动和输入保持流畅。
  • 进度 HUD —— 一目了然地查看已完成区块、填充百分比、内存占用和预计保存大小。
  • 指向缺失区块的路径点 —— 一个穿墙标记会显示你还需要走到哪里才能让区块加载。
  • 软取消 —— 暂停扫描并保留进度,而非丢失一切。
  • 四种导出格式 —— JSON、原版 NBT、WorldEdit .schem 和 Litematica .litematic。
  • 无按键绑定 —— 仅使用命令和菜单,因此模组不会在按键绑定注册表中留下任何痕迹。
  • 不强制加载区块 —— 模组只读取已加载的内容,绝不向服务器请求更多。

特性

  • 复制由两个角点(点 A / 点 B)以及 Y Min / Y Max 定义的任意长方体区域
  • 仅读取完全加载的客户端区块 —— 不强制加载区块
  • 后台工作线程 —— 扫描和保存不会卡住移动或输入
  • 进度 HUD:已完成区块、填充百分比、内存 / 预计保存大小
  • 指向最近的仍需加载区块的路径点(注视它时显示穿墙标记)
  • 存储模式:RAM(默认)或 FILE(扫描时实时刷新 JSON)
  • 软取消(保留进度)与硬停止(释放内存、删除临时文件)
  • 更改 A/B 重建区域:重叠的已扫描区块会保留,其余丢弃,进度更新
  • 导出格式:JSON、原版 NBT、WorldEdit .schem、.litematic
  • 可通过 commands.json 重映射命令
  • 英文 UI 标签(菜单)

需求

  • Minecraft 26.3
  • Fabric Loader ≥ 0.19.3
  • Fabric API
  • Java 25+
  • 仅客户端 —— 无需服务端安装

快速开始

  1. 看向一个方块 → /copybuilding setpointA
  2. 看向对角 → /copybuilding setpointB(两点都设置后开始读取)
  3. 打开菜单 → /copybuilding openmenu
  4. 如有需要,调整 Y / 过滤器 → Update
  5. 走动以加载所需的区块(若显示路径点,请跟随它)
  6. 选择格式 → Save
  7. 聊天栏显示:Saved: ctb-yyyyMMdd-HHmmss.<ext> (N%) 导出文件位于: .minecraft/config/Mikasa-copy-building/exports/

text


示例场景

你在一个服务器上看到一个想要在自己世界中重建的堡垒。

  1. 站在一个角上并运行 /copybuilding setpointA。
  2. 走到对角并运行 /copybuilding setpointB。
  3. 扫描自动开始。使用 /copybuilding openmenu 打开菜单以调整 Y 范围或过滤器。
  4. 如果某些区块仍然缺失,跟随屏幕上的路径点直到它们加载。
  5. 当进度条达到 100% 时,运行 /copybuilding save schem。
  6. 文件会保存到 .minecraft/config/Mikasa-copy-building/exports/。
  7. 之后,在你自己的世界中,用 WorldEdit 或 Place That Building 粘贴它。

命令

操作 默认
打开菜单 /copybuilding openmenu
点 A /copybuilding setpointA
点 B /copybuilding setpointB
状态 /copybuilding status
保存 /copybuilding save json / nbt / schem / litematic
取消 /copybuilding cancel —— 暂停读取,保留数据
停止 /copybuilding stop —— 中止、释放内存、删除临时 JSON

命令名称可在以下文件中重映射: config/Mikasa-copy-building/commands.json

text

编辑该文件后重启客户端。

扫描如何工作

  • 选择区域是由 A/B 在 X/Z 上以及垂直方向上的 Y Min…Y Max 构成的长方体
  • 任何剩余的已加载区块都可被读取(不受队列顺序限制)—— 适用于低视距
  • 如果没有所需的已加载区块,读取会暂停;进度会保留
  • 当你进入所需区块时,它会被读取,进度条前进
  • 文件名自动生成:ctb-yyyyMMdd-HHmmss(会话开始时间)

更改点 A / B

  • 构建一个新区域
  • 已经扫描过且仍完全覆盖新区域所需内容的区块会保留在内存中
  • 新长方体之外的区块会被清除
  • 进度变为 kept / newTotal

存储

模式 行为
RAM(默认) 将捕获保留在内存中,直到保存 / 停止
FILE 扫描时定期将实时 JSON 刷新到 exports/ 下

停止会清除 RAM 并删除实时 FILE json。点 A/B 会保留。

导出格式

格式 扩展名 备注
JSON .json 自定义 mikasa-copy-building v1(用于 Place That Building)
NBT .nbt 类似原版的结构模板
SCHEM .schem Sponge Schematic v2(WorldEdit / FAWE)
LITEMATIC .litematic Litematica(单一区域)

过滤器(菜单)

  • 排除空气 / 草 / 花 / 泥土 / 水
  • 方块 id 列表,带排除或包含模式
  • 示例:minecraft:stone, minecraft:oak_log

注意

  • 不放置方块
  • 不使用按键绑定(仅命令 + 菜单)
  • 不为你加载未加载的区块 —— 请走动(或提高视距)以使其加载
  • 在你被允许复制的世界/服务器上使用

许可证

MIT —— 作者:Mikasa