储物抽屉插件(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 只有这一个插件声明了覆盖。

相关条目