Sign
基本信息
| 属性 | 值 |
|---|---|
| 类名 | myessentials.entities.api.sign.Sign |
| 类型 | class extends ArrayList + 内部类 Container,10 个方法 |
| 启用版本 | Minecraft 1.7.10 |
功能
告示牌(sign)的逻辑包装:管理告示牌方块、其 TileEntity 与自定义数据行。
10 个方法分组
| 组 | 方法 |
|---|---|
| 交互 | onRightClick、onShiftRightClick |
| 方块管理 | createSignBlock、getTileEntity、deleteSignBlock |
| 内容管理 | add、get、contains |
实现要点
- 内部类
Container保存告示牌的自定义数据行 (最多 4 行,对应原版告示牌的 4 行文本)。 - 自定义数据通过
SignClassTransformer
注入的
myEssentials字段持久化——读写由该 transformer 的setMyEssentialsDataValue/getMyEssentialsDataValue完成。 - ⚠️ 功能风险:该 transformer 未注册(无 coremod),
故
myEssentials字段实际不会被注入到TileEntitySign。 此时getMyEssentialsDataValue内部的反射sign.getClass().getField("myEssentials")会抛NoSuchFieldException,被包成RuntimeException抛出—— 即告示牌的自定义数据功能在当前构建下不可用。 - 类型系统用 SignType 区分告示牌种类。
相关条目
- SignType - 告示牌类型
- SignManager - 生命周期管理
- SignClassTransformer - 未注册的字段注入
- PlayerUtils - 物品相关辅助
- BlockUtils - 方块名查询