⚓
Wudji 的 KubeJS 6 教程(1.19.2+)
  • 写在前面
  • 1.0 前言
  • 1.1 常用游戏内指令与ProbeJS使用
  • 1.2 文件结构和脚本类型
  • 1.3 脚本基础和格式变化
  • 1.4 事件列表
  • 2 配方
  • 2.1 物品的表示
  • 2.2 配方的添加,修改和移除
  • 2.3 非标准配方修改
  • 3 标签
  • 4 方块注册和属性修改
  • 5 物品注册和属性修改
  • 6 特殊类型方块和物品
  • 6.1 作物方块和种子
  • 6.2 食物注册
  • 7 附魔添加
  • 8 流体注册
  • 9 战利品表
  • 10 世界生成
Powered by GitBook
On this page

3 标签

一、标签事件

1、事件监听

你可以使用ServerEvents.tags事件来进行与标签有关的修改,需要注意的是你需要向其传入参数来设置其修改的类型,即:

ServerEvents.tags("标签类型", event => {
    // 脚本
})

绝大多数情况下你只需要使用类型item、 block 和 fluid,但其还支持由其他模组注册的类型。

2、事件方法

以下为标签事件支持的方法:

方法
描述
返回值

add(ResourceLocation 标签, String... 对象ID)

向给定标签中添加对象

TagWrapper

remove(ResourceLocation 标签, String... 对象ID)

从给定标签中移除对象

TagWrapper

removeAll(ResourceLocation 标签)

移除给定标签中的所有对象

TagWrapper

removeAllTagsFrom(String... 对象ID)

移除包含给定对象的所有标签中的所有对象

TagWrapper

get(ResourceLocation 标签)

获取标签中所有对象

TagWrapper

二、示例

// 监听标签事件
ServerEvents.tags('item', event => {
  // 将 minecraft:diamond_ore 添加至 #forge:cobblestone
  event.add('forge:cobblestone', 'minecraft:diamond_ore')
  
  // 从 #forge:cobblestone 中移除 minecraft:mossy_cobblestone
  event.remove('forge:cobblestone', 'minecraft:mossy_cobblestone')
  
  // 移除 #forge:ingots/copper 中的所有对象
  event.removeAll('forge:ingots/copper')
  
  // 用于 FTB任务 检测物品NBT
  event.add('itemfilters:check_nbt', 'some_item:that_has_nbt_types')
  
  // 自定义标签(#forge:completely_new_tag)
  event.add('forge:completely_new_tag', 'minecraft:clay_ball')
  
  // 移除包含 minecraft:stick 的所有标签中的所有对象
  event.removeAllTagsFrom('minecraft:stick')
  
  // 将 #forge:stone 中所有非闪长岩对象添加到 #c:stone 中
  const stones = event.get('forge:stone').getObjectIds()
  const blacklist = Ingredient.of(/.*diorite.*/)
  stones.forEach(stone => {
    if (!blacklist.test(stone)) {
      event.add('c:stone', stone)
    }
  })
})
Previous2.3 非标准配方修改Next4 方块注册和属性修改

Last updated 1 year ago

另请参阅:

TagWrapper (github.com)