ItemBlock Trophy

基本信息

属性 值
类名 glowredman.amazingtrophies.trophy.ItemBlockTrophy
父类 net.minecraft.item.ItemBlock
注册名 amazingtrophies:trophy(与 Block 一致)

功能

1. 工具提示

addInformation(stack, player, tooltip, advanced):

  • 没有 NBT → 无 tooltip。
  • 有 UUID 但格式非法 → 显示 amazingtrophies.uuid.invalid。
  • 解析 UUID → 如果 UsernameCache.getLastKnownUsername 有更新,刷新 name 写入 NBT。
  • 玩家名空时显示 <block>.unknownUsername.name.desc / .time.desc。
  • 正常情况显示 <block>.name.desc (玩家名) + <block>.time.desc (日期本地化)。

2. 显示名

getUnlocalName(stack):

  • 无 NBT → 标准 tile.<modid>.trophy.name。
  • NBT 含 trophyID → 末尾追加 .trophyID 后缀以支持多语言变种(如 tile.amazingtrophies.trophy.iron_cup.name)。

3. 放置

placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata):

  • 旋转 = Math.round(-player.rotationYaw / 22.5f) & 15(0–15)。
  • 调用 super.placeBlockAt 完成方块放置。
  • 如果放置成功 + 有 NBT + 实际生成 TileEntityTrophy,把 NBT 内容复制到 TE(tileTrophy.copyFromNBT(stack.getTagCompound()))。
  • 在服务器端触发 world.markBlockForUpdate 强制客户端重发描述包。

摆放要求

  • 与对应 Block 一致;通常需要 TileEntityTrophy 已经放置成功才会写 NBT。

数值

项目 值
最大堆叠 64(原版 ItemBlock 默认)
注册名 amazingtrophies:trophy
方块类 BlockTrophy
TE 类 TileEntityTrophy

耐久与消耗

非工具,没有耐久。

相关条目

源码

src/main/java/glowredman/amazingtrophies/trophy/ItemBlockTrophy.java