JianFeeeee
9c5fed5808
M10b:加载器服务端(让 server.py 能起带 mod 的服)+ 11 项判据
用户裁定「加载器都做」+ 选项 A(测试服装 mod)。原 server.py 是硬编码
vanilla 直起(java -jar server.jar),装不了 mod ⇒ 选项 A 走不通。
新增 mcfold/servers.py:
- create_modded_server():在**实例层**装一个 modded 服务端
- fabric_installer / fabric_server_launcher / fabric_profile_meta:
装前检查(版本/加载器显式给,不猜、不用「最新」)
- 沿用既有三层隔离,**内容根零写入**
隔离要点(tests/test_version_isolation 守同一条不变量):
mods 落**实例层** ⇒ 同一内容根可起多个「装了不同 mod 的服」,
它们互不看见对方的 mod(这正是版本隔离要防的崩因)。
★ 关键设计:未接的加载器(NeoForge/Forge)**明说未接且不留痕**
- 静默降级成 vanilla 的后果很严重:服起来了但 mod 全没加载,
而使用者以为装上了 ⇒ 后续所有观察都基于错误前提
- 失败时不建实例目录(否则会留个「看着存在但没配好」的壳,
list_instances 会把它列出来)—— 实测修掉了这个
顺手补上:instance.json 记全 version/loader/role
(之前 7 个实例里有 2 个缺它,list_instances 只能报 has_meta: False
⇒ 隔离没有可核查的依据)
判据 11 项(tests/test_servers.py),全程用临时目录不碰真实 mcview;
fabric 路径替换掉下载函数 ⇒ 判据不依赖网络(否则网络一挂就假红)。
4 项变异全被抓:
A mods 写进内容根(破坏隔离)
B 未接加载器静默降级成 vanilla(最危险)
C 缺 mod 静默跳过
D instance.json 不记 loader/version
下一步(选项 A 的收尾):在 M0 测试服起一个装了 Fabric mod 的服,
验证 mod 方块能被识别与渲染。
220 项全通过。
2026-09-26 14:10:43 +08:00
..
2026-09-25 14:25:34 +08:00
2026-09-26 13:21:44 +08:00
2026-09-25 19:21:45 +08:00
2026-09-26 13:17:17 +08:00
2026-09-25 14:25:34 +08:00
2026-09-25 14:25:34 +08:00
2026-09-26 12:44:08 +08:00
2026-09-25 14:36:21 +08:00
2026-09-26 14:08:06 +08:00
2026-09-26 10:18:36 +08:00
2026-09-25 14:32:39 +08:00
2026-09-26 13:42:32 +08:00
2026-09-26 13:52:33 +08:00
2026-09-26 12:15:48 +08:00
2026-09-26 07:23:54 +08:00
2026-09-26 13:13:15 +08:00
2026-09-26 11:12:40 +08:00
2026-09-26 14:10:43 +08:00
2026-09-26 12:27:28 +08:00
2026-09-26 07:23:54 +08:00
2026-09-25 14:06:55 +08:00
2026-09-25 14:33:26 +08:00