储物抽屉插件(Storage Drawers Plugin)
基本信息
| 属性 | 值 |
|---|---|
| 插件 uid | StorageDrawers(StorageDrawersPlugin.java:20,首字母大写) |
| 依赖 modid | StorageDrawers(StorageDrawersPlugin.java:21) |
| 覆盖的注册方法 | com.jaquadro.minecraft.storagedrawers.integration.Waila.registerProvider(StorageDrawersPlugin.java:22) |
| 资源命名空间 | storagedrawers(StorageDrawersPlugin.path()) |
| 配置分类 | plugins_autogen.storagedrawers |
| 注册调用 | 服务端 2 次 / 客户端 5 次 |
| 生效侧 | 两侧 |
| 显示名 | 英文 “Storage Drawers”,中文「储物抽屉」(en_US.lang:280、zh_CN.lang:280) |
功能
为 Storage Drawers 提供抽屉内容展开、控制器存储展示,以及关闭抽屉的 3D 图标渲染。
本插件是 WDMla 中唯一使用 overridingRegistrationMethodName 的插件——见下方「与旧版 Waila 的接管」。它也是少数自带专用容器 provider(DrawerControllerStorageProvider)而非完全复用通用实现的插件。
注册内容
服务端(StorageDrawersPlugin.register):
| 方法 | 目标类 | provider |
|---|---|---|
registerItemStorage |
BlockFramingTable |
ItemStorageProvider.Extension.INSTANCE |
registerItemStorage |
BlockController |
DrawerControllerStorageProvider.INSTANCE |
客户端(StorageDrawersPlugin.registerClient):
| 方法 | 目标类 | provider |
|---|---|---|
registerBlockComponent |
BlockDrawers |
DrawersContentProvider.INSTANCE |
registerBlockComponent |
BlockDrawers |
DrawersPropertyProvider.INSTANCE |
registerBlockComponent |
BlockDrawersCustom |
HideFancyIconProvider.getBlock() |
registerBlockComponent |
BlockFramingTable |
HideFancyIconProvider.getBlock() |
registerItemStorageClient |
— | DrawerControllerStorageProvider.INSTANCE |
BlockDrawers 上叠了两个 provider:内容行与属性行。HideFancyIconProvider 挂到抽屉与工作台两类方块,作用是抑制 3D 伪物品图标。
数值
本插件不新增任何配置字段。抽屉内容行数复用 universal.itemstorage.normalamount(默认 9)/ detailedamount(默认 54)/ itemsperline(默认 9)/ shownameamount(默认 4)。
分类语言键由 registerClient 末段写入 provider.wdmla.storagedrawers.category。
与旧版 Waila 的接管
@WDMlaPlugin 的 overridingRegistrationMethodName 声明本插件要取代的旧版 Waila 注册方法(StorageDrawersPlugin.java:22)。PluginScanner 在扫描时把它收进 blackListedRegistrationMethods(PluginScanner.java:41-44)。随后,当其它 mod 通过 FML IMC 发送 register 消息时,Waila.processIMC 会检查:若 General.overrideWailaTooltips 为真且方法名命中黑名单,则跳过该次注册(Waila.java:109-119、Waila.java:123-130)。
因此效果是:Storage Drawers 自带的旧版 Waila 集成会被静默屏蔽,改由 WDMla 渲染,避免同一物品出现两套提示。全 WDMla 只有这一个插件声明了覆盖。