Databack

[!INFO] Git Commit: 1149004 | Updated: 2026-10-02

Databack 是把 1.13+ 数据包(datapack)系统回移到 Minecraft 1.7.10 的模组,项目 README 自述其「主要目标是回移世界生成数据包,其他资源类型会被忽略」,并欢迎扩展支持的贡献(README.md)。它在 1.7.10 上重建了标签、群系、密度函数、结构、维度等现代资源模型,并把解析结果注入原版注册表 —— 因此它不注册任何方块、物品、实体或配方,全部内容面在数据加载层。

关于本条目

项 值 依据
modid databack Databack.java:17 的 public static final String MODID = "databack",用于 @Mod(modid = Databack.MODID, ...)(:14)
modid 与分类名是否一致 一致,均为 databack gradle.properties:7 的 modId = databack 同样吻合
Minecraft 1.7.10 gradle.properties:24 的 minecraftVersion = 1.7.10;@Mod 的 acceptedMinecraftVersions = "[1.7.10]"(Databack.java:14)
Forge 10.13.4.1614 gradle.properties:29 的 forgeVersion
MCP 映射 stable_12 channel = stable、mappingsVersion = 12(gradle.properties:32-35)
Git Commit 1149004 已用 git cat-file -t 114900480b94aaf1d3ccdcc264ed79f68c0e2670 验证为 commit 对象;该提交为 tags and f3+f6 page(2026-09-17)
源仓 /Users/evlos/a/mirror/Databack/ relation.md 行;目录大小写经 os.listdir() 核定为 Databack(大写 D、小写 b)
语言构成 276 个 .java,0 .scala,0 .kt git ls-files '*.java' | wc -l 等
@Mod 注解类数 1(databack.Databack) grep -rn '@Mod' src/main/java/ 仅命中 Databack.java

第二个 FML 容器 databackcore(DatapackModContainer)不是 @Mod,而是由 IFMLLoadingPlugin 引入的 DummyModContainer,仅负责存档读写时接管数据包状态。本 wiki 全部条目以 modid databack 为准,databackcore 无独立内容面。

实际注册的游戏内容

全部为 0。 本分类不设 block/、item/、entity/、recipe/ 目录。

内容类型 数量 核查命令与结果
方块 0 grep -rE 'registerBlock' src/main/java/ 唯一命中是 TestTags.registerBlockTags(方法名,非注册调用);new Block\b 0 命中
物品 0 grep -rE 'registerItem' src/main/java/ 唯一命中是 TestTags.registerItemTags;new Item\b 0 命中
TileEntity 0 grep -rE 'registerTileEntity' src/main/java/ 0 命中
实体 0 grep -rn 'EntityRegistry' src/main/java/ 的 15 处命中全部是镜像原版注册表进 ProxyEntityRegistry 的 Mixin 与取值代码,无注册调用
配方 0 grep -rE 'addRecipe|ShapedRecipes\.addItemShapedRecipe|ShapedOreRecipes' src/main/java/ 0 命中
通用注册 0 grep -rE 'GameRegistry\.register' src/main/java/ 0 命中

真实内容面

面 数量 说明
数据包资源类型处理器 19 每个世界启动时注册,其中 4 个标签类 + 15 个 JSON DTO 类
服务端指令 1(/datapack,5 个子命令) 权限等级 2
配置项 3 个声明式 + 1 个客户端 JSON 见配置项页
GUI 2 F3+F6 叠层配置界面(ModularUI 2)、/datapack gpu-debug 的 Swing 密度函数调试窗口
Mixin 类 16(分 11 组,全部 Phase.EARLY) 10 个枚举组 COMMON、2 个 CLIENT
对外事件 10 6 个数据包生命周期事件 + 4 个标签注册事件
网络封包类型 2 SyncJsonHandler、SyncTagHandler
硬运行时依赖 2 GTNHLib、MCGPU

依赖

从本模组自己的 gradle 文件读出,不从邻居模组推断:

依赖 配置 位置
com.github.GTNewHorizons:GTNHLib:99.99.99-dev:dev implementation(硬依赖) dependencies.gradle:8
com.github.GTNewHorizons:MCGPU:v0.1.0:dev implementation(硬依赖,exclude GTNHLib) dependencies.gradle:9-11
org.ow2.asm:asm:5.0.3 compileOnly dependencies.gradle:13
org.jetbrains:annotations:26.0.2 compileOnly dependencies.gradle:14
org.projectlombok:lombok:1.18.34 compileOnly + annotationProcessor dependencies.gradle:15-16
com.github.GTNewHorizons:NotEnoughItems:2.8.111-GTNH:dev runtimeOnlyNonPublishable(不发布,代码中 0 引用) dependencies.gradle:18
com.cardinalstar.cubicchunks:CC2 已注释停用 dependencies.gradle:20

UniMixins 由 usesMixins = true 经 gtnhconvention 插件注入,未在 dependencies.gradle 中显式声明。

源码核查中确认的未接线项

以下三点均为源码事实陈述,非本 wiki 的推断,且都附了可复现的 grep 证据:

  1. isEFRLoaded 是无读取方的死字段 —— 声明于 CommonProxy.java:66,赋值于 :75,全仓无第三处引用。Databack 没有 Et Futurum 集成。
  2. ModernWorldType 从未注册 —— init() 方法体只有注释 // loads class(ModernWorldType.java:15-17);grep -rn 'registerWorldType\|getWorldType\|WorldType\.' src/main/java/ 仅命中 CommonProxy.java:99 一行;无 WorldType 的 Mixin;无 WorldProvider 接线;DimensionManager.registerDimension 0 命中。MCGPU 世界生成代码存在,但当前没有进入游戏流程的注册路径。
  3. ModularUI 2 被使用但未声明 —— DebugOverlayScreen import 10 个 com.cleanroommc.modularui.* 类,而 cleanroommc / modularui 在 Databack、GTNHLib、GTNHExtLib 的 gradle 文件中全部 0 命中。

另外,/datapack enable <name> first|last 的帮助文本称会「enable」该包,但对应分支(DatapackCommand.java:112-169)只重排顺序表、从不调用 db$enable,对已禁用的包不会真正启用。

数据包资源类型列表

指令列表

  • /datapack - 唯一的服务端指令,含 enable / disable / list / reload / gpu-debug 五个子命令

配置项列表

GUI 列表

API 列表

  • 扩展点 - 16 个 Mixin 类、10 个对外事件、标签注册接口与编程接口

集成列表

  • 依赖与集成 - 依赖声明核实、databackcore 容器、Cubic Chunks 软集成、ModularUI 2 未声明问题与未接线的 ModernWorldType