编辑标签 (Editing Tags)

预计阅读时间: 2 分钟

添加、删除和修改标签

标签是按物品/方块/流体/实体类型分类的,因此不能基于NBT数据添加!

标签事件接受一个额外的参数,用于确定要添加标签的注册表。通常您只需要 itemblockfluidentity_type 标签。但是,它支持向任何注册表添加标签,包括其他模组的注册表。对于模组注册表,请确保包含命名空间!

// 监听物品标签事件
ServerEvents.tags('item', event => {
  // 获取 #forge:cobblestone 标签集合并添加钻石矿石
  event.add('forge:cobblestone', 'minecraft:diamond_ore')

  // 获取 #forge:cobblestone 标签集合并移除苔石
  event.remove('forge:cobblestone', 'minecraft:mossy_cobblestone')

  // 获取 #forge:ingots/copper 标签并移除所有条目
  event.removeAll('forge:ingots/copper')

  // FTB Quests 需要检查物品NBT
  event.add('itemfilters:check_nbt', 'some_item:that_has_nbt_types')

  // 您可以用与添加现有标签相同的方式创建新标签,只需给它一个名称
  event.add('forge:completely_new_tag', 'minecraft:clay_ball')

  // 它也支持将标签添加到标签中。只需在第二个标签前加上 #
  event.add('c:stones', '#forge:stone')

  // 从这个条目移除所有标签
  event.removeAllTagsFrom('minecraft:stick')

  // 将 forge:stone 标签中的所有物品添加到 c:stone 标签中,除非ID包含 diorite
  const stones = event.get('forge:stone').getObjectIds()
  const blacklist = Ingredient.of(/.*diorite.*/)
  stones.forEach(stone => {
    if (!blacklist.test(stone)) event.add('c:stone', stone)
  })
})

配方使用物品标签,而不是方块或流体标签。即使代表这些的物品是方块,例如 minecraft:cobblestone,配方仍然使用物品标签。

// 监听方块标签事件
ServerEvents.tags('block', event => {
  // 将高草丛添加到可攀爬标签。这确实使它可以攀爬!
  event.add('minecraft:climbable', 'minecraft:tall_grass')
})

脚本文件夹:server_scripts/