Skip to content

变更日志 >=1.21.1

本文档记录了 Registrum 模块各版本间的 API 变更。


v2.0 (26.1) current

新增 (Added)

API类型说明
GeneratorType<T>接口标记接口,替代匿名 String 生成器类型
ProviderType.RECIPE_RUNNERProvider配方运行器,替代直接使用 RECIPE
ProviderType.MODELProvider统一模型入口,替代 BLOCKSTATE/ITEM_MODEL 独立 provider
ProviderType.ENCHANTMENT_TAGSProvider附魔标签生成
ProviderType.DAMAGE_TYPE_TAGSProvider伤害类型标签生成
ProviderType.FLUID_TAGSProvider流体标签生成
ProviderType.ENTITY_TAGSProvider实体标签生成
RegistrumModelProvider新的模型生成器(extends ModelProvider
RegistrumBlockModelGenerator新的方块模型生成器(extends BlockModelGenerators
RegistrumItemModelGenerator新的物品模型生成器(extends ItemModelGenerators
RegistrumLegacyBlockModelBuilder旧版方块模型构建器
RegistrumRecipeRunner配方运行器(extends RecipeProvider.Runner
RegistrumDatapackProvider数据包动态注册支持
DataProviderInitializer.addDependency()方法Provider 依赖声明
ProviderType.createGenerator(String)方法从 ProviderType 创建 GeneratorType
GeneratorType 组合模式模式RECIPE = RECIPE_RUNNER.createGenerator("recipe")
@FieldsAreNonnullByDefault注解FieldsAreNonnullByDefault 支持(从 Registrate 迁移)

修改 (Changed)

API变更前 (1.21.1)变更后 (26.1)影响
ProviderType.BLOCKSTATE直接使用 RegistrumBlockstateProviderMODEL.createGenerator("blockstate")breaking
ProviderType.ITEM_MODEL直接使用 RegistrumItemModelProviderMODEL.createGenerator("item_model")breaking
ProviderType.RECIPE直接使用 RegistrumRecipeProviderRECIPE_RUNNER.createGenerator("recipe")breaking
RegistrumBlockstateProvider存在(extends BlockStateProvider移除breaking
RegistrumItemModelProvider存在(extends ItemModelProvider移除breaking
RegistrumRecipeProviderextends RecipeProviderextends RecipeProvider, implements RecipeOutputbehavior
RegistrumDataProvider.Context包含 ExistingFileHelper不含 ExistingFileHelper,直接使用 PackOutputbreaking
生成器包结构providers/RegistrumXxxProvider.javaproviders/generators/RegistrumXxxGenerator.javarefactor

废弃 (Deprecated)

API说明
旧版 register(String, NonNullBiFunction, ...)已被 SimpleServerDataFactory 模式替代

移除 (Removed)

API说明
RegistrumBlockstateProvider替换为 RegistrumBlockModelGenerator
RegistrumItemModelProvider替换为 RegistrumItemModelGenerator
RegistrumProviderDelegate不再需要,改用 GeneratorType 组合
ProviderType.Context.existingFileHelper替换为 PackOutput

迁移指南

java
// 1.21.1: 旧版生成器
import dev.anvilcraft.lib.v2.registrum.providers.RegistrumBlockstateProvider;
import dev.anvilcraft.lib.v2.registrum.providers.RegistrumItemModelProvider;
import dev.anvilcraft.lib.v2.registrum.providers.RegistrumRecipeProvider;

builder.blockstate(() -> (ctx, gen) -> { ... });
builder.model(() -> (ctx, gen) -> { ... });
builder.recipe((ctx, gen) -> { ... });

// 26.1: 新版生成器
import dev.anvilcraft.lib.v2.registrum.providers.generators.RegistrumBlockModelGenerator;
import dev.anvilcraft.lib.v2.registrum.providers.generators.RegistrumItemModelGenerator;
import dev.anvilcraft.lib.v2.registrum.providers.generators.RegistrumRecipeProvider;

// API 调用不变(AbstractRegistrum 内部已适配)
builder.blockstate(() -> (ctx, gen) -> { ... });
builder.model(() -> (ctx, gen) -> { ... });
builder.recipe((ctx, gen) -> { ... });

v2.0 (1.21.1) initial

初始版本 — 全部新增

分类API说明
入口Registrum.create(String)创建 Registrum 实例
核心AbstractRegistrum<S>注册引擎基类
核心Builder<R,T,P,S>构建器根接口
方块BlockBuilder<T,P>方块构建器
物品ItemBuilder<T,P>物品构建器
方块实体BlockEntityBuilder<T,P>方块实体类型构建器
实体EntityBuilder<T,P>实体类型构建器
菜单MenuBuilder<T,SC,P>菜单类型构建器
流体FluidBuilder<T,P>流体构建器
通用NoConfigBuilder<R,T,P>无配置构建器
条目RegistryEntry<R,S>基础注册条目
条目ItemProviderEntry<R,T>物品提供条目
条目BlockEntry<T>方块条目
条目ItemEntry<T>物品条目
条目BlockEntityEntry<T>方块实体条目
条目EntityEntry<T>实体条目
条目MenuEntry<T>菜单条目
条目FluidEntry<T>流体条目
条目LazyRegistryEntry<R,T>延迟条目引用
生成器RegistrumBlockstateProvider方块状态提供器 (removed in 26.1)
生成器RegistrumItemModelProvider物品模型提供器 (removed in 26.1)
生成器RegistrumRecipeProvider配方提供器
生成器RegistrumLootTableProvider战利品表提供器
生成器RegistrumAdvancementProvider进度提供器
生成器RegistrumDataMapProviderDataMap 提供器
生成器RegistrumLangProvider语言文件提供器
生成器RegistrumTagsProvider标签提供器
生成器RegistrumItemTagsProvider物品标签提供器
生成器RegistrumGenericProvider通用提供器
工具CreativeModeTabModifier创造标签页修改器
工具DataIngredient数据生成配方原料
工具OneTimeEventReceiver一次性事件接收器
工具RegistrumDistExecutor物理端分发执行器
工具Sequence<T>序列构建工具
工具DebugMarkers调试日志标记

版本对比速查表

功能1.21.126.1备注
Registrum.create()
object() / get() / getAll()
simple() / generic()
block() / item()
entity() / blockEntity() / menu()
fluid()
defaultCreativeTab()
addRegisterCallback()
makeRegistry() / makeDatapackRegistry()
addLang() / addRawLang()
transform()
skipErrors()
getDataProvider()内部实现变更
setDataGenerator() / addDataGenerator()
getDataGenInitializer()26.1 支持 addDependency
BiomeBuildercommented outcommented out两版本均未启用
方块模型生成 (blockstate())RegistrumBlockstateProviderRegistrumBlockModelGeneratorbreaking
物品模型生成 (model())RegistrumItemModelProviderRegistrumItemModelGeneratorbreaking
配方生成 (recipe())RegistrumRecipeProviderRegistrumRecipeProvider (via Runner)changed
GeneratorType
ProviderType.createGenerator()
附魔标签 ENCHANTMENT_TAGS
伤害类型标签 DAMAGE_TYPE_TAGS
流体标签 FLUID_TAGS
实体标签 ENTITY_TAGS
DataProviderInitializer.addDependency()

Released under the CC-BY-NC-SA 4.0 License.