核心插件(Core Plugin)
基本信息
| 属性 | 值 |
|---|---|
| 插件 uid | core(CorePlugin.java:22,常量 Identifiers.NAMESPACE_CORE,Identifiers.java:60) |
| 依赖 mod | 无(@WDMlaPlugin 未声明 dependencies) |
| 配置分类 | plugins_autogen.core(WDMlaConfig.java:42-43) |
| 注册调用 | 服务端 1 次 / 客户端 11 次 |
| 生效侧 | 两侧 |
功能
core 是 WDMla 的基础信息层,也是唯一为所有方块与实体兜底的插件:它把「这个东西叫什么、属于哪个模组」作为提示框的骨架,其余插件只往上叠加细节。
它同时是唯一注册 Accessor 客户端处理器的插件——registerAccessorHandler(BlockAccessor.class, …) 与 registerAccessorHandler(EntityAccessor.class, …) 把客户端侧的方块/实体访问器接到自定义构造逻辑上(CorePlugin.registerClient)。
getAllProvidersWithoutInfo() 这个过滤器(WDMlaConfig.java:49)正是靠 uid 区分「core 提供基础信息、其它插件不提供」来实现自动生成配置的去重。
注册内容
服务端(CorePlugin.register):
| 目标类 | provider |
|---|---|
EntityLiving |
StatusEffectProvider.INSTANCE |
客户端(CorePlugin.registerClient):
| 方法 | 目标类 | provider / handler |
|---|---|---|
registerAccessorHandler |
BlockAccessor |
new BlockAccessorClientHandler() |
registerAccessorHandler |
EntityAccessor |
new EntityAccessorClientHandler() |
registerBlockComponent |
Block |
DefaultBlockInfoProvider.INSTANCE |
registerBlockComponent |
Block |
EnchantmentPowerProvider.INSTANCE |
registerBlockComponent |
Block |
BlockFaceProvider.INSTANCE |
registerBlockComponent |
Block |
BreakProgressTextProvider.INSTANCE |
registerEntityComponent |
Entity |
DefaultEntityInfoProvider.INSTANCE |
registerEntityComponent |
Entity |
EntityHealthProvider.INSTANCE |
registerEntityComponent |
EntityLiving |
EntityEquipmentProvider.INSTANCE |
registerEntityComponent |
EntityLiving |
EntityArmorProvider.INSTANCE |
registerEntityComponent |
EntityLiving |
StatusEffectProvider.INSTANCE |
数值
core 自身不读 plugins.cfg 的 core 分类字段,而是由其它类读取后传给 provider:
| 配置项 | 消费点 |
|---|---|
core.defaultblock.showicon / showblockname / showmodname / fancyrenderer / rendererrotationspeed |
DefaultBlockInfoProvider |
core.defaultblock.aligniconrighttop(实为 General 的 alignIconRightTop) |
DefaultBlockInfoProvider.java:82 |
core.defaultentity.* |
DefaultEntityInfoProvider(General.customNameOverride 读取点 DefaultEntityInfoProvider.java:63) |
general.aligniconrighttop |
DefaultBlockInfoProvider.java:82——把采集/交互图标钉在方块信息右上角 |
general.maxnamelengthpixel |
FormatUtil.java:100(限制改名后的显示宽度) |
注册到 Block.class / Entity.class 这类基类上的 component 是全局兜底;后注册的同目标 provider 依优先级排序叠加。
相关条目
- 通用配置 -
alignIconRightTop、maxNameLengthPixel的定义处 - 插件配置 -
plugins.core组的全部字段 - Minecraft 插件 - 同为基类注册,但只针对具体原版类