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 区分告示牌种类。
相关条目