物品工具提示 (Item Tooltips)

预计阅读时间: 2 分钟

自定义物品工具提示

ItemEvents.tooltip(event => {
  // 向所有这些物品添加工具提示
  event.add(['quark:backpack', 'quark:magnet', 'quark:crate'], 'Added by Quark Oddities')
  // 您也可以使用任何成分,除了 #tag(因为标签加载比客户端脚本晚得多)
  event.add(/refinedstorage:red_/, 'Can be any color')
  // 使用数组 [] 添加多行。您也可以通过使用其他类型的引号来转义 '
  event.add('thermal:latex_bucket', ["Not equivalent to Industrial Foregoing's Latex", 'Line 2 text would go here'])
  // 使用客户端的一些数据来装饰此工具提示。name 返回一个组件,所以我们只需附加它。
  event.add('minecraft:skeleton_skull', Text.of('This used to be ').append(Client.player.name).append("'s head"))

  event.addAdvanced('thermal:latex_bucket', (item, advanced, text) => {
    text.add(0, Text.of('Hello')) // 在第一行添加文本,将物品名称向下推一行。如果您想要物品名称下方的行,索引必须为1
  })

  event.addAdvanced('minecraft:beacon', (item, advanced, text) => {
    // shift、alt 和 ctrl 都是您可以检查的键!
    if (!event.shift) {
      text.add(1, [Text.of('Hold ').gold(), Text.of('Shift ').yellow(), Text.of('to see more info.').gold()])
    } else {
      text.add(1, Text.green('Gives positive effects to players in a range').bold(true))
      text.add(2, Text.red('Requires a base built out of precious metals or gems to function!'))
      text.add(3, [Text.white('Iron, '), Text.aqua('Diamonds, '), Text.gold('Gold '), Text.white('or even '), Text.green('Emeralds '), Text.white('are valid base blocks!')])
    }
  })

  // 在工具提示中显示NBT的便捷工具
  event.addAdvanced(Ingredient.all, (item, advanced, text) => {
    if (event.alt && item.nbt) {
      text.add(Text.of('NBT: ').append(Text.prettyPrintNbt(item.nbt)))
    }
  })

  // 在头颅的工具提示中显示拥有头颅的玩家名称
  event.addAdvanced('minecraft:player_head', (item, advanced, text) => {
    const playerName = item.nbt?.SkullOwner?.Name
    if (playerName) {
      text.add(Text.red(`The head of ${playerName}`))
    }
  })
})

脚本文件夹:client_scripts/