MineColonies 非官方 Fabric 版

MineColonies 非官方 Fabric 版

MineColonies 殖民模拟器的非官方 Fabric 版本,适用于 Minecraft 26.2

MineColonies Fabric 版 — Minecraft 26.2

MineColonies 终于登陆 Fabric。 建立殖民地,雇佣 NPC 工人,将营地发展成城市:建筑师、农民、矿工、守卫、信使和厨师,基于蓝图的建筑,袭击,超过 200 个节点的科技树和任务 —— 现在可在 Minecraft 26.2 上使用 Fabric 加载器 运行,只需一个 jar 文件。

这是 LDTTeam 殖民地模拟器的社区移植版,并附带在此添加的一系列功能和错误修复 —— 会划船的市民,三种可精确到方块划定殖民地边界的权杖,可正常工作的前哨站,会自己准备耕地的农民,以及修复了该模组多年来存在的几个错误。

   
Minecraft 26.2
加载器 Fabric 0.19.3 或更新版本
Fabric API 0.154.2+26.2(必需)
Java 25(Minecraft 26.2 本身的硬性要求)
端 客户端和服务器
许可证 GPL-3.0-only

⚠️ 非官方移植版 — 请先阅读此内容

这是一个非官方、社区制作的 Fabric 移植版。MineColonies 本身是 LDTTeam(Let's Dev Together) 的作品;此移植版与其无关联、未经其认可,也不受其支持。

  • 请勿将此版本中的错误报告发送给 LDTTeam。 请使用本项目的 issue 跟踪器。
  • 如果同样的错误也出现在官方 NeoForge 版本上,那么它应归属于上游。
  • 原版模组:CurseForge · minecolonies.com ·

基础:上游分支 version/1.21(NeoForge 21.1,Java 21),同时跨越两个维度进行了移植 —— NeoForge → Fabric 以及 Minecraft 1.21.1 → 26.2。


🧱 MineColonies 是什么

一个 Minecraft 的殖民地模拟器 / 城镇建设模组。你放置一个市政厅,之后的一切都由居住在你城镇中的 NPC 市民完成:

  • 数十种职业 — 建筑师、农民、矿工、樵夫、渔夫、守卫、弓箭手、信使、厨师、面包师、铁匠、治疗师、教师、养蜂人、花商等等,每种职业都有可升级的技能。
  • 蓝图建筑 — 小屋以预览形式放置,并由你的建筑师逐块建造,内置多种完整的建筑风格。
  • 殖民地经济 — 请求、配送、仓库、最低库存、制造链。
  • 研究 — 跨越四个分支的 200+ 节点科技树,可解锁小屋、工人能力和全殖民地加成。
  • 袭击与防御 — 野蛮人、海盗、埃及人和北欧人会对你的城镇发起进攻;守卫、塔楼和城墙负责抵御。
  • 任务、幸福度、疾病、教育 以及其下完整的模拟系统。

支持单人游戏和多人游戏。客户端和专用服务器都需要安装此模组。


✨ 此移植版新增内容

以下所有内容都是相对于上游 MineColonies 的新增,仅存在于此版本中。

🛶 市民会乘船

你的市民现在可以乘船渡水,而不是绕过湖泊步行 —— 或者干脆拒绝前往。

  • 一个新的殖民地船只实体,已集成到模组的寻路器中:开阔水域会被视为市民实际可走的路线,并规划出穿过水域的路径。
  • 市民会从岸边登船,掌舵,并自行在彼岸登陆。中断路径、将其派往别处,或在渡河途中拿走船只,它都能干净利落地离开,而不会在湖上漂流。
  • 由独立的研究解锁 — Boats,位于 Rails 旁,需要船只和 3 级渔夫,而渔夫小屋才是拥有这些船只的建筑。守卫在战斗中会丢弃船只,因此没有人会划船冲入战斗。
  • 空船会被丢弃,并且只有为其放置船只的市民才能登船 —— 不会在你的海岸线上留下成群的废弃船只。

在真实服务器上测量:一条 800 格的水路可在 7–11 毫秒内构建出完整路径;而同样的路线靠步行、游泳,则根本无法构建路径。船只使沿海和岛屿殖民地从“工人站在那里发呆”变成有效的通勤。

🗺️ 三种领地权杖,以及你可以真正绘制的殖民地边界

  • 领地认领权杖 — 右键点击可认领一个区块及其周围的八个区块。没有距离限制,因此你的领土可以随意扩展,分割成任意多个部分。
  • 领地释放权杖 — 模组从未有过的方向:归还领地。每次点击释放一个区块,潜行点击释放九个,恰好撤销一次认领点击。
  • 边界权杖 — 在区块内部逐块绘制边界。点击添加一列,潜行点击切除一列,按住可连续涂抹。可以沿着河流、城墙或悬崖绘制,而不是受区块网格限制。

绘制的边界是真实的,而非装饰性的:领地保护、市民是否将一个地方视为家、袭击生成点和建造工具预览都会遵循你绘制的线条。所有三种权杖在手持时都会绘制殖民地边界,并在你编辑时实时重绘,因此认领和释放领地不再需要猜测。

🏘️ 可正常工作的前哨站和飞地

上游版本会悄悄拒绝让殖民地远离其市政厅定居 —— 建筑认领、区块加载和床铺分配都测量到中心的距离。现在这三者都改为询问谁拥有这块土地:

  • 放置在你领地上的小屋可在任意距离认领其自身占地(新增 maxoutlyingchunks 配置项)。
  • 前哨站独立保持区块加载(新增 maxforcedchunks 配置项)。
  • 市民会在工作地点附近获得床铺,而不是在市政厅附近 —— 另外还有 /mc colony rehouse 命令可以将已经住在错误位置的市民搬走。

采矿前哨站、沿海码头和卫星农场现在是一种可行的游玩方式,而不再是一个错误报告。

🌾 会自己准备耕地的农民

  • 农民会改造地形。 一块因表面有石头、沙砾、沙子、小路或别人的地板而无法锄地的农田方格,不再被悄无声息地跳过。农民会在同一次作业中清理它、铺设泥土并翻耕。水是唯一一个硬性例外。
  • 它会在聊天中告诉你清理了什么,包括数量和逐方块明细,因此如果你在基地角落画了一个覆盖到部分的矩形,你会读到相关消息,而不是之后才发现。
  • 农田标记棒 — 点击稻草人,然后用两次点击拖出一个矩形,并将其绑定到该特定农场。无需小屋 GUI,也不用猜测哪个农场抢占了哪块田。
  • 自由模式下的任意形状农田:规则是总面积(默认 4096 格,可在服务器配置),而不是上游的“四个半径之和 ≤ 20”,后者将所有农田限制在 11×11。现在可以设置沿河流的长条形 4×1000 的田地。

⚔️ 按需袭击

袭击命令,可用于测试和服务器活动:

  • /mc raid <colony> now 会立即开始,而不是等待长达三分钟的缓慢 tick 和篝火计时器。
  • size 和 strength — 一行命令即可要求 40 名拥有 2.5 倍生命值、伤害和护甲的袭击者,无需先指定袭击类型。
  • where 会告诉你袭击者实际所在位置以及当前作为实体存在的数量 —— 这回答了“袭击条已满但城镇却空无一人”的问题。
  • tp 会将你传送到他们身边,stop 会取消所有袭击并清理掉存活过久的袭击者。
  • 你按名称请求的袭击不再仅仅因为周围环境加载不够远而失败并报错 NO_SPAWN_POINT。自然袭击不受影响。

🧰 自由模式 — 无需繁琐材料即可建造和测试

/mc colony freemode <colony> on 可使殖民地完全无需任何物品即可运作。一个开关,随殖民地保存,默认关闭。它取代了分散在四处的小屋复选框,覆盖了它们从未触及的一切:建筑材料、工具、武器、种子、繁殖物品、治疗药水、食物 —— 以及请求系统,因此制作配方输入、熔炉燃料、冶炼厂矿石、学校纸张和守卫装备也会被凭空生成。守卫会获得真正的武器,而不仅仅是被告知停止索要。已经因请求而卡住的工人无需重新登录即可恢复工作。

非常适合创造模式建筑、截图、服务器展示以及在投入建造之前测试布局。

🐴 马厩,以及真正骑行的骑兵

上游版本附带了一个任何风格都无法建造、任何玩家都无法解锁的马厩小屋和骑兵守卫。这两者在此版本中都能正常工作。

  • 马厩存在于全部 23 种建筑风格中,源自每种风格自身的谷仓,因此它与整套风格相得益彰,而不是一个被硬塞进去的灰色盒子。它有合成配方,并且位于军事分类下,紧挨着兵营小屋的合理位置。
  • 骑兵守卫会骑马巡逻,而不是坐在一匹四处游荡的马上。市民骑乘的马永远不会进入原版玩家骑乘代码 —— 它按照生物公式移动,速度随属性的平方缩放,因此骑兵守卫的速度为 1.4–2.8 格/秒,而步行守卫的速度是 3.96。骑兵现在以 4.8–6.6 的速度骑行,遵循原版对玩家马匹的线性规则,并设置了上限以免超出其自身寻路能力。70 格的巡逻路程从 32–48 秒缩短到了 12–16 秒。
  • 骑手会看向他前进的方向,并在攀爬梯子前下马 —— 两者之前都在读取马自身的导航数据,而该数据在每次骑行的每个 tick 都是空的。

玩法如下:马厩需要一名马厩管理员来放牧和繁殖马匹,以及骑兵守卫,他们与任何其他守卫一样 —— 你可以在小屋中指派他们,他们从马厩领取坐骑,骑马巡逻,骑马追击袭击者并返回自己的马厩。他们的巡逻半径是瞭望塔的 1.5 倍,因此马厩可以覆盖瞭望塔无法企及的区域。自由模式会直接提供训练好并装备齐全的坐骑,让你无需先繁殖一群马就能体验全部内容。

马厩自己的设置选项卡带有巡逻间隔 —— 每次出击之间的间隔分钟数。默认值为六,对于一支巡逻范围如此之大的部队来说这是有意为之,但这也是骑兵大部分时间待在马厩附近的原因;如果你希望他们持续在外巡逻,请将其设置为 1。

在此过程中修复了两个缓慢的崩溃问题:骑兵的马在世界上方保存时不再丢失马厩,并且骑兵不再对其受到的每次攻击都写入堆栈跟踪到日志中。

🎣 会划船去钓鱼点的渔夫

  • 他会乘船前往钓鱼点,而不是拒绝前往无法步行到达的水域。
  • 根据小屋等级,每个渔夫小屋最多可容纳五名渔夫。
  • 他们会在同一个池塘上分开落座 —— 按座位而非池塘分布,因此一个小池塘也能容纳全部五名渔夫,而不是让其中三人永久闲置。

⛏️ 会承认自己卡住的矿井,以及尊重熔岩的矿工

  • 矿井上的看门狗:当矿井无法取得进展时,矿工会通过聊天告知,而不是让矿井静默地永远无法完成。
  • 矿工绝不会对熔岩挥舞镐,并在挖掘时站在梯子上,而过去这常常会同时终结矿井和矿工。

📦 了解你的仓库实际在做什么

/mc colony warehousestock <colony> 会按物品类型报告自上次取用以来经过的时间以及取用频率。这两个数字都是有意报告的:仅凭闲置时间会将那些虽使用不频繁但定期消耗的消耗品误判为垃圾。“闲置 20 天,取用 0 次”是应该清理的;“闲置 1 天,本周取用 400 次”是绝对不能卖掉的。

  • 聊天中会显示摘要;完整列表会写入世界存档中的 CSV 文件,路径会打印在聊天中 —— 你可以在电子表格中按任意列排序。
  • 填充率会作为两个永不被平均的数字报告:首先是槽位占用率,因为这才是真正阻止信使存储物品的因素;其次是物品容量。一个容纳三块圆石的槽位既是一个满槽位,也几乎是空的容量。
  • 在拥有 51 个货架和 589 种物品类型的仓库中,每次采样耗时约 875 微秒,每 25 秒进行一次。

🛡️ 殖民地保护,以及关闭它的开关

Fabric 移植版此前丢失的权限现已重新执行:放置方块、放置小屋、装水桶、拉弓,以及 OPEN_CONTAINER 现在可以识别模组物品栏。敌对生物不再会在已建成的建筑内生成,并且 turnoffexplosionsincolonies 的伤害部分能保护你的市民和牲畜免受游戏中所有爆炸的伤害。

/mc colony protection <colony> off 可以在你在某个殖民地内工作时,停止该殖民地拒绝你的任何操作 —— 这是介于服务器范围配置和逐个编辑权限等级表之间的中间设置。它在单一位置被读取,即所有权限检查都通过的那个方法,因此“关闭”不会遗漏任何门禁。有两项保护措施会保持开启,因为它们保护殖民地而非限制你:建筑内的生物生成和爆炸伤害过滤。

🧱 货架会像方块一样被破坏

上游版本赋予货架无限的爆炸抗性 —— 即基岩的 —— 因此苦力怕会炸毁你的仓库地板,却让所有货架悬在半空。此处的抗性为 6,即石头的抗性,并且其中的物品会掉落。

🩺 诊断和管理员命令

  • /mc colony diagnose — 什么卡住了以及原因:每个工人的职业、AI 状态及其持续时间,没有 AI 的市民,无人接取的请求,没有建筑师的施工订单,不一致的建筑。
  • /mc citizens fill — 为殖民地填充居民,并将所有人雇佣到空缺的工作岗位。
  • /mc citizens maxstats / heal — 将所有技能提升至满级,或一次性治疗和治愈所有人。
  • /mc colony research completeall — 完成整个科技树,先父后子,无消耗,无需大学。
  • /mc colony teachRecipes — 教会每个工匠所有允许其学习的配方。
  • /mc colony growChildren — 一次性让殖民地中的所有孩子长大,适用于因旧存档而留下孩子卡住的世界。
  • /mc colony protection / /mc colony warehousestock — 见上文。

⚙️ 配置

  • maxcitizenpercolony 现在接受最高 1000(默认值不变,仍为 250),研究梯子的最高等级也已相应提升 —— 否则设置为 1000 的配置会被直接限制回 500。
  • stuckrescueseconds(新增,默认 60)会在工人花费超过该秒数而未能接近其工作目标时,将其传送至工作地点。有关这一点的重要性,请参见下文。

🔧 在此修复的长期存在的错误

这些是上游的错误 —— 它们可以在官方 NeoForge 版本上复现,并且在归类为上游问题而非此移植版的问题之前,每个都在上游自己的 1.21.1 源代码中逐行阅读过。此版本已修复它们:

  • “建筑师拒绝建造。” “此订单是否在殖民地内”的检查在遍历建筑占地时,对于一个 17×17 的小屋,只检查了恰好一个区块 —— 而且是错误的那个,然后报告了小屋的坐标,这没问题。现在建筑下方的每个区块都会被检查,并且消息会指明实际未被认领的那个区块。
  • 一个 1000 格外的农场抢占了旁边农场的田地。 田地自动认领之前完全不考虑距离。现在会考虑了 —— 并且市民不再会继续走向一个已更换主人的田地。
  • 工人永远站着不动。 导航器的卡住处理器只能营救那些在行走却毫无进展的工人;对于那些目的地完全没有路径的工人,它无能为力 —— 没有任何移动、没有日志记录、没有待处理的请求,通常的解决办法是拆除小屋。stuckrescueseconds 会监视目的地而不是路径,并将工人传送到那里。

另外,这不是上游的错:农民从不锄地,这是 26.2 的行为 —— 原版拆分 #minecraft:dirt 标签,将草方块、灰化土和泥巴移出,导致可锄地表面测试不再覆盖所有真实农田所铺设的地面,农民在其整个螺旋路径上无所事事。在相同的草地场景上测量:修复前 121 个格子中 0 个被翻耕,修复后三分钟内 80 个被翻耕。

⚡ 性能

此移植版在一个真实的 1000 名市民殖民地上进行了性能剖析,运行在专用服务器上,并实时检测寻路池。基于此推出了一系列经过测量的热路径修复 —— 服务器 tick 不再遍历每个殖民地查找空回调,市民列表的防御性副本已从 tick 路径上移除,GUI 列表不再刷新两次,A* 不再为每个节点读取世界时钟,信使查找已哈希化,请求系统日志记录不再在禁用的标志后面构建字符串。

完整的测量数据 —— 包括哪些内容仍然代价高昂以及原因 —— 已发布在仓库中,而不是被总结成一个营销数字。


📥 安装

  1. 为 Minecraft 26.2 安装 Fabric Loader 0.19.3+。
  2. 在 mods/ 中放入恰好两个文件:
    • fabric-api-0.154.2+26.2.jar
    • minecolonies-26.2-<version>.jar
  3. 启动。Minecraft 26.2 本身要求 Java 25。

该 jar 通过 Fabric 的 Jar-in-Jar 机制将三个必需的 LDTTeam 库打包在内部:blockui、structurize 和 domum_ornamentum,每个也都已移植到 Fabric 26.2。

⚠️ 请勿单独安装这些库

mods/ 中的 jar 会静默覆盖嵌套的 jar,无论版本如何。 由此产生的崩溃会指向加载代码中不存在的源代码行,并且日志中不会出现任何有关替换的信息。

在你的模组列表中,blockui、domum_ornamentum 和 structurize 必须缩进显示在 minecolonies 下方。如果其中任何一个位于顶层,说明 mods/ 中存在多余的 jar —— 请将其移除。


⚠️ 与官方版本相比的已知限制

某些仅限 NeoForge 的钩子在 Fabric 或原版 26.2 中没有对应物。没有任何内容被删除 —— 它们已被注释并记录日志。

殖民地保护:TOSS_ITEM 和 PICKUP_ITEM 未强制执行 —— 陌生人仍可在你的边界内丢弃和拾取物品。所有其他权限均正常运作,包括 PLACE_BLOCKS / PLACE_HUTS、FILL_BUCKET、SHOOT_ARROW、BREAK_BLOCKS、ACCESS_HUTS 和 ATTACK_CITIZEN。

爆炸:殖民地方块不免疫原版爆炸 —— 苦力怕、TNT 或下界中的床会摧毁蓝图建筑。要通用地实现这一点需要 mixin,而此移植版没有任何 mixin。有效的是:来自飞机模组的爆炸会被屏蔽,并且 turnoffexplosionsincolonies 的伤害部分能保护你的市民和牲畜免受游戏中所有爆炸的伤害。

火焰和生物破坏:这两者都无法限制在单个殖民地内。26.2 将两者都通过全局游戏规则路由,没有按区域的钩子,因此 fire_spread_radius_around_player 和 mob_griefing 是唯一的杠杆,但它们会影响整个世界。这并非此移植版丢失的功能 —— 原版也没有钩接它们。值得了解的是:在 26.2 的默认设置下,没有玩家附近的殖民地根本无法燃烧。

渲染:长矛渲染为平面物品;后备市民模型显示玩家叠加层(模组自身的职业模型不受影响);来自其他模组的物品不会设置市民的手臂姿势。

其他:一个 TravellingManager 字段在移植版之前创建的世界中读回为 BlockPos.ZERO;餐厅菜单仅解析 MineColonies 自身配方中的食材;殖民地创建粒子有所不同。

核心游戏玩法 —— 建造、职业、工人 AI、寻路、袭击、研究、任务和请求系统 —— 完全正常工作。完整列表,包括每项在游戏中的表现以及修复方法,已发布在仓库中,文件名为 PORT-STATUS.md。

这不是一个编译后就上传的版本。上述每项功能都已在实际客户端和专用服务器上进行了游玩测试 —— 建立并发展殖民地,放置和建造小屋,手动操作小屋界面,跟随工人,从边界错误一侧测试权限,发起袭击。许多修复之所以存在,是因为玩家遇到了错误并进行了报告,并且贯穿全文的测量数据是在运行中的服务器上获取的,而非估算值。


❓ 常见问题解答

MineColonies 能在 Fabric 上运行吗? 官方来说,不能 —— 上游仅发布 NeoForge 版本。这是针对 Minecraft 26.2 的社区 Fabric 移植版。

有适用于 Minecraft 26.2 的 MineColonies 版本吗? 就是这个版本。它基于上游的 1.21.1 分支构建,并已升级到 26.2。

我需要 Structurize、BlockUI 和 Domum Ornamentum 吗? 不需要 —— 这三个库的 Fabric 移植版已打包在 jar 内部。单独安装它们会破坏游戏;请参见上面的警告。

它能在专用服务器上运行吗? 可以,并且客户端和服务器端都需要此模组。它已在搭配 Fabric API 的真实 Fabric 服务器上启动并游玩过。

我可以使用旧的 MineColonies 世界吗? NeoForge 1.21.1 版本的世界不能直接移植 —— Minecraft 26.2 本身修改了存档格式。请重新开始。

它与其他 Fabric 模组兼容吗? 它本身并没有什么特别侵入性 —— 完全不使用任何 mixin —— 但它是一个大型模组,冲突总是有可能的。请连同模组列表在此处报告问题。

在哪里报告错误? 在 GitHub 上的本项目问题跟踪器。请包含你的 Minecraft / Fabric Loader / Fabric API 版本、完整的 logs/latest.log 或崩溃报告、你的其他模组,以及复现步骤。如果同样的错误发生在官方 NeoForge 版本上,请改为向上游报告。


🙏 鸣谢

MineColonies 是 LDTTeam(Let's Dev Together) 及其众多贡献者的作品 —— 超过十年的工作成果。每个工人、小屋、研究分支、蓝图和殖民逻辑的原代码都源于他们。请从 CurseForge 获取官方版本。

组件 上游 此移植版的来源
MineColonies ldtteam/minecolonies unknown-wq/minecolonies
BlockUI ldtteam/BlockUI unknown-wq/BlockUI
Structurize ldtteam/Structurize unknown-wq/Structurize
Domum Ornamentum ldtteam/Domum-Ornamentum unknown-wq/Domum-Ornamentum

📄 许可证

根据 GPL-3.0-only 许可,与上述所有上游项目许可证相同,并按其条款分发。每个已发布 jar 的完整对应源代码可在上表链接中找到。