Minecraft 目标版本
mcfpp.toml 中的 version 选择本次构建的 Minecraft Java 版目标。每次构建生成一个目标版本的数据包。
toml
version = "1.21.8"切换版本后重新构建。需要保留多个版本的产物时,分别设置 targetPath,例如 build-1.21.8 和 build-26.3。
受支持的目标
当前目标表包含以下版本:
| 系列 | 版本 |
|---|---|
| 26.x | 26.1、26.2、26.3 |
| 1.21 | 1.21、1.21.1、1.21.2、1.21.3、1.21.4、1.21.5、1.21.6、1.21.7、1.21.8 |
| 1.20 | 1.20、1.20.1、1.20.2、1.20.3、1.20.4、1.20.5、1.20.6 |
| 1.19 | 1.19、1.19.1、1.19.2、1.19.3、1.19.4 |
| 1.18 | 1.18、1.18.1、1.18.2 |
| 1.17 | 1.17、1.17.1 |
| 1.16 | 1.16、1.16.1、1.16.2、1.16.3、1.16.4、1.16.5 |
| 1.15 | 1.15、1.15.1、1.15.2 |
| 1.14 | 1.14、1.14.1、1.14.2、1.14.3、1.14.4 |
| 1.13 | 1.13、1.13.1、1.13.2 |
目标支持决定包格式和可用的命令能力。项目使用的 API 仍需满足对应目标的要求。
根据版本选择源码
mcfpp
func main() {
#if MC >= 26.3
print("Number provider target")
#elif MC >= 26.1
print("26.x target")
#else
print("Legacy target")
#endif
}每条指令独占一行。支持 ==、!=、<、<=、> 和 >=。编译器在语法分析前选出当前分支,IDEA 使用同一个工程版本。
浮点运算
26.3 使用 Minecraft 数值提供器和 NBT float。较早目标使用计分板模拟的浮点运算。编译器按 version 选择对应标准库和运行时资源。
相同的源码可以保留 float 类型。更换目标后,使用 Dump IR 检查实际生成的命令。