Skip to content

MCphone NeoForge 1.21.1 v1.8.20

Choose a tag to compare

@github-actions github-actions released this 05 Sep 12:57
· 64 commits to main since this release

MCphone v1.8.20

这一版只补账。 1.8.1 到 1.8.19 十九个补丁版从来没有过发版说明——发版说明一个文件对应一个
次版本,而 v1.8.0.md 是 1.8.0 发布当天写的,之后一路走到 1.8.19,玩家在 Modrinth 与 CurseForge
上只看得到一行 tag 标题。其中还夹着「新建世界开手机一片空白」这种真会撞上的 bug。这里一次写全。

代码与 1.8.19 一模一样,差别只有版本号本身。装着 1.8.19 的不必更新;这个 tag 存在的
唯一理由,是让下面这些字有地方发出去。

运行环境: Minecraft 1.21.1 · NeoForge 21.1.200 或更高 · 客户端与服务端都需安装
可选: Curios —— 装了多一个手机槽
可选: Waystones(传送石碑)—— 装了多一个「传送石」App
可选: MCEF —— 装了多一个「浏览器」App
可选: NetMusic(网络音乐机)—— 装了唱片仓还收它刻的 CD
可选: Patchouli(教程手册)、沉浸工程、GuideME —— 各自往「阅读」里添几本书
可选: FTB Quests —— 装了多一个「任务书」App
可选: Integrated Dynamics —— 装了多任何东西,只让崩溃报告指认对人

从 1.8.0 升级: 直接替换 jar。存档、好友关系、聊天记录、购买记录、App 安装状态、主屏图标位置、
手机里的唱片全部原样保留——这十九个补丁版没动过任何存储格式。


📌 1.8.1 → 1.8.19,这些日子里发生了什么

修的

  • 新建世界开手机有几率一片空白,一个 App 都没有(1.8.19)。成因在 SPI 扫描那句
    ServiceLoader.load(service):单参那个重载用的是当前线程的 context classloader,而扫描
    是从 FMLClientSetupEvent 触发的,跑在 modloading-worker 线程上;那个线程的 TCCL 是从
    "碰巧创建这个 worker 的线程"复制来的,而 worker 是按需惰性创建的——赶上一个看不见
    META-INF/services 的,这一轮一个服务都扫不到,还不报错。这正好解释了"有几率"和"难复现"。
    现在传本模组自己的类加载器,与线程无关。顺带补了第二道:原先是进门就落锁,只要有一轮
    扫空,整局就再也不重扫,玩家重进世界都治不好、只能重启游戏;现在扫出东西了才落锁
  • 「任务书」那一格不再因为一次异常就永久点不开(1.8.11)。抛出来的多半是 FTB 自己界面里
    一时的问题(某个任务图标坏了、档案正好重载到一半),而原来的写法会把那一格从此禁用
  • 模组装齐的玩家进商店「联动App」页不再是空的(1.8.17)。这是 1.8.13 ~ 1.8.16 把内建 App
    改成联动声明时带出的回归

加的

  • 「阅读」分成书架与书城两页,行右端的 ☆ 管收藏,收藏落在 config/mcphone/reader/shelf.json(1.8.2、1.8.3)
  • 外部手册白名单,为不用 Patchouli 的手册留一条路;沉浸工程的工程师手册第一个进来(1.8.4、1.8.5)
  • GuideME 书源:AE2 与现代化工艺的手册自动进书城(1.8.9)
  • 「任务书」App:主屏一格直接开 FTB 任务书,不用再让它占着快捷栏(1.8.10)
  • 商店的「联动App」页说得出缺的是哪个模组(1.8.12)

改的

  • 接口分出**「联动模组」与硬前置两层**(1.8.6):阅读、任务书、浏览器、传送石依次改成联动声明,
    缺了对方只是少那一格,而不是整个手机起不来(1.8.7、1.8.13、1.8.15、1.8.16)
  • 「阅读」换上新画的书图标,旧那张归了「任务书」(1.8.1、1.8.18)
  • 发版时同时发到 Modrinth 与 CurseForge,不再只发一边

以后不会再这样

补丁版发出去时,说明跟着一起发:规矩记在 gradle.properties 的版本号那一段里,与"什么时候升
哪一位"写在同一处——那是发版前必然会看的地方。攒到下一版一起补,就是这一版存在的原因。