Minecraft 插件(Vanilla Plugin)

基本信息

属性 值
插件 uid minecraft(VanillaPlugin.java:83,常量 VanillaIdentifiers.NAMESPACE_MINECRAFT,VanillaIdentifiers.java:51)
依赖 mod 无
配置分类 plugins_autogen.minecraft
注册调用 服务端 31 次 / 客户端 52 次
生效侧 两侧
体量 全部 12 个插件中最大,占 WDMla 服务端注册量的 31/48

功能

覆盖原版方块与实体的提示信息。与 core 注册到 Block.class / Entity.class 基类不同,minecraft 插件逐个绑定到具体原版类,因此可以精确控制每个方块显示什么。

大量 component 直接定义为 VanillaPlugin 的嵌套 enum(例如 RedstoneWireHeaderProvider,VanillaPlugin.java:181 起),以 INSTANCE 单例形式注册——这类 provider 在源码里与插件类同文件,而不是独立文件。

服务端与客户端的注册集合刻意不同:客户端负责「怎么画」(图标、标题、颜色),服务端负责「取什么数据」(NBT、容器内容)。只有少数 provider 同时出现在两侧(如 FurnaceProvider、BeaconProvider、CommandBlockProvider)。

注册内容

服务端 registerBlockDataProvider 15 次,覆盖 BlockFurnace、BlockBeacon、BlockCommandBlock、BlockJukebox、BlockMobSpawner、BlockNote、BlockHopper;TECustomNameHeaderProvider 另挂 8 个含 TileEntity 的方块(BlockChest、BlockFurnace、BlockHopper、BlockBrewingStand、BlockDispenser、BlockDropper、BlockEnchantmentTable、BlockCommandBlock)。

服务端 registerEntityDataProvider 6 次:EntityTameable、EntityTNTPrimed、EntityChicken、EntityZombie、EntityMinecartCommandBlock、EntityMinecartFurnace。

服务端 registerItemStorage 11 次:9 次用通用的 ItemStorageProvider.Extension.INSTANCE 挂到 BlockChest、BlockEnderChest、EntityMinecartChest、EntityMinecartHopper、BlockHopper、BlockBrewingStand、BlockDispenser、BlockDropper、EntityHorse,另 1 次用专用的 ItemFrameProvider.INSTANCE 挂到 EntityItemFrame。

客户端 registerBlockComponent 37 次、registerEntityComponent 13 次、registerItemStorageClient 1 次(ItemFrameProvider.INSTANCE)。

唯一的显式隐藏项:registration.hideEntity(EntityEnderCrystal.class)(VanillaPlugin.registerClient),即末影水晶不显示实体信息。

数值

配置项 默认值 覆盖范围
vanilla.redstonestate.showleverstate true BlockLever
vanilla.redstonestate.showrepeaterdelay true BlockRedstoneRepeater
vanilla.redstonestate.showcomparatormode true BlockRedstoneComparator
vanilla.pet.showpetsit true EntityTameable
vanilla.pet.showpetowner true EntityTameable
vanilla.animal.showanimalgrowth true 动物成长进度
vanilla.animal.showbreedcooldown true 繁殖冷却
vanilla.commandblock.maxcommandlength 40 命令方块命令显示截断长度,范围 0–10000

三个配置项均由 RedstoneStateProvider 消费(注册到 BlockLever、BlockRedstoneRepeater、BlockRedstoneComparator)。

交互

本插件只读取客户端数据、不发包;数据获取由 universal 与 minecraft 的服务端 provider 写入 NBT,再经 Waila 协议通道 传回客户端。

相关条目