port to Minecraft 26.3

Source changes for 26.3 API breakage:
- block codec system removed upstream (Block has no MapCodec/codec()/
  simpleCodec anymore): drop CODEC + codec() from AmethystCauldronBlock
  and GravityCrystalBlock
- Entity.hurtMarked -> Entity.syncVelocity (pure rename, still public)
- LivingEntity.drop() now takes a Prediction; our drops are server-
  initiated and unpredicted, so they pass SERVER_ONLY
- canSimulateMovement() became final; the ravager/hoglin mount mixins
  now override getMoveSimulationType() and return
  AUTHORITATIVE_SIDE_AND_SERVER, which is the same "server always
  simulates" semantics the old !isClientSide branch had
- loot number providers split into providers.number.{ints,floats} and
  became Holder-based: UniformGenerator.between(1f,3f) ->
  ContextIntProviders.between(1,3)
- BonemealableBlock methods take a BonemealSource (INTERACTION here)
- clockManager().getTotalTicks(c) ->
  clockManager().getInstance(c).totalTicks()
- EnderMan -> Enderman (capitalisation only)

Build: MC 26.3, loader 0.19.5, fabric-api 0.160.5+26.3, loom 1.18.1,
gradle wrapper 9.6.0 -> 9.7.1 (loom 1.18.x requires Gradle >= 9.7).
Polymer is 0.18.0+26.3-rc-1: upstream has not published a 26.3-final
build yet, that rc build is the only one on the 26.3 line.

server-deploy: pack.toml -> 26.3 / loader 0.19.5; fabric-api, polymer
and simple-voice-chat are the only pack mods with 26.3 builds and were
updated (index hashes regenerated). The remaining third-party mods have
no 26.3 release yet and are deliberately left untouched. Dockerfile now
pins the justbackup and fabric-carpet forks to their 26.3 branches
instead of silently building whatever the default branch holds.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
iceBear67andClaude Opus 5 committed 2026-09-15 15:54:54 +00:00
1 parent 08be6bc3ae
commit 2b70971b80
25 files changed
+89 -73

No files matched your search

+13 -3
View File
@@ -14,14 +14,24 @@ RUN cd /mod && \
cp /mod/build/libs/sfcraft-*-all.jar /sfcraft.jar
FROM base AS justbackup-builder
RUN git clone https://github.com/saltedfishclub/justbackup /mod
# 跟随 MC 版本的分支。26.3 分支需先在上游仓库建好,否则此处会直接失败——
# 这是刻意的:默认分支仍是 26.2(fabric.mod.json 要求 minecraft ~26.2),
# 构建进 26.3 镜像只会在加载时才报错,不如在构建期暴露。
ARG JUSTBACKUP_REF=26.3
RUN git clone -b "$JUSTBACKUP_REF" https://github.com/saltedfishclub/justbackup /mod
RUN cd /mod && \
./gradlew build && \
rm -f /mod/build/libs/*sources.jar /mod/build/libs/*dev.jar && \
cp /mod/build/libs/justbackup-1.0.0.jar /justbackup.jar
cp /mod/build/libs/justbackup-*.jar /justbackup.jar
FROM base AS carpet-builder
RUN git clone https://github.com/saltedfishclub/fabric-carpet /mod
# 同上。carpet 的 depends 写的是 minecraft >26.2,能装上但 mixin 是按旧版编译的,
# 跑在 26.3 上会在 mixin apply 阶段炸,所以同样必须切到 26.3 分支。
# ⚠️ 注意:26.3 分支目前只是合了上游 master,而上游自己还停在 26.3-snapshot-9
# (对 26.3 正式版有 100+ 处编译错误)。等 gnembon 跟上 26.3 正式版、我们再合一次
# 之前,这一层产出的 carpet 装进 26.3 服务器大概率仍然会崩。
ARG CARPET_REF=26.3
RUN git clone -b "$CARPET_REF" https://github.com/saltedfishclub/fabric-carpet /mod
RUN cd /mod && \
./gradlew build && \
rm -f /mod/build/libs/*sources.jar /mod/build/libs/*dev.jar && \