跳转至

Item modification

原文:[Item modification]

提示 物品修改是启动事件。

ItemEvents.modification 是一个启动脚本事件,用于修改现有物品的各种属性。

ItemEvents.modification(event => {
  event.modify('minecraft:ender_pearl', item => {
    item.maxStackSize = 64
    item.fireResistant = true
    item.rarity = "UNCOMMON"
  })
  event.modify('minecraft:ancient_debris', item => {
    item.rarity = "RARE"
    item.burnTime = 16000
  })
  event.modify('minecraft:turtle_helmet', item => {
    item.rarity = "EPIC"
    item.maxDamage = 481
    item.craftingRemainder = Item.of('minecraft:scute').item
  })
})

可用属性:

属性 值类型 描述
maxStackSize int 设置物品的最大堆叠数量。大多数物品默认为 64。
maxDamage int 设置物品在被破坏前所能承受的最大伤害值(耐久度)。
craftingRemainder Item 设置该物品作为合成原料时留在合成格中的物品(例如蛋糕配方中的牛奶桶)。大多数物品没有此属性。
fireResistant boolean 该物品是否会在火和岩浆中燃烧。大多数物品默认为 false,但远古残骸(Ancient Debris)和下界合金(Netherite)制品不是。
rarity Rarity 设置物品的稀有度。主要用于名称颜色。默认为 COMMON。下界之星(Nether Star)和鞘翅(Elytra)是 UNCOMMON,金苹果(Golden Apple)是 RARE,附魔金苹果(Enchanted Golden Apple)是 EPIC。
burnTime int 设置该物品在普通熔炉中的燃烧时间(以刻为单位)。注意:烟熏炉和高炉的燃料消耗速度是普通熔炉的两倍。煤炭为 1600。
foodProperties FoodProperties 将物品的食物属性设置为提供的属性。可以设为 null 来移除食物属性。
foodProperties Consumer 根据 consumer 设置属性。更多信息见下文。
digSpeed float 将物品的挖掘速度设置为提供的数值。默认值见下表。
tier Consumer 目前已损坏(BROKEN)!根据 consumer 设置工具的品质。更多信息见下文。
attackDamage double 设置该物品的攻击伤害。
attackSpeed double 设置该物品的攻击速度。
armorProtection double 设置该物品的盔甲保护值。20 为满盔甲条。
armorToughness double 添加盔甲韧性加成。
armorKnockbackResistance double 添加盔甲击退抗性加成。可以为负数。1 为完全击退抗性。
工具默认值
品质(Tier) level maxDamage digSpeed attackDamage(这是受工具类型数值修正的加成,不是最终值) enchantmentValue
Wood 0 59 2 0 15
Stone 1 131 4 1 5
Iron 2 250 6 2 14
Diamond 3 1561 8 3 10
Gold 0 32 12 0 22
Netherite 4 2031 9 4 15
盔甲默认值

所有含多个数值的格子均按 [头、胸、腿、脚] 排序。单数值的格子表示每件装备都相同。

品质(Tier) maxDamage armourProtection armorToughness armorKnockbackResistance
Leather [65, 75, 80, 55] [1, 2, 3, 1] 0 0
Chain [195, 225, 240, 165] [1, 4, 5, 2] 0 0
Iron [195, 225, 240, 165] [2, 5, 6, 2] 0 0
Gold [91 ,105, 112, 77] [1, 3, 5, 2] 0 0
Diamond [429, 495, 528, 363] [3, 6, 8, 3] 2 0
Turtle(只有头盔) [325, nil, nil. nil] [2, nil, nil, nil] 0 0
Netherite [481, 555, 592, 407] [3, 6, 8, 3] 3 0.1
Elytra(实际上不是盔甲) [nil, 432, nil, nil] 0 0 0

品质(Tier)

提示 目前处于损坏状态!https://github.com/KubeJS-Mods/KubeJS/issues/662 。请改用非 tier 方法。

工具
ItemEvents.modification(event => {
  event.modify('golden_sword', item => {
    item.tier = tier => {
        tier.speed = 12
        tier.attackDamageBonus = 10
        tier.repairIngredient = '#forge:storage_blocks/gold'
        tier.level = 3
    }
  })
  event.modify('wooden_sword', item => {
    item.tier = tier => {
        tier.enchantmentValue = 30
    }
  })
})
属性 值类型 描述
uses int 该工具损坏前的最大耐久值。与 maxDamage 相同。
speed float 该工具的挖掘速度。
attackDamageBonus float 该工具的额外攻击伤害。
level int 该工具的挖掘等级。
enchantmentValue int 该工具的附魔能力。数值越高,在附魔台上能获得的附魔越好。
repairIngredient Ingredient 在铁砧上修复该工具所需的材料。
盔甲

目前实际上并不存在/无法使用。抱歉。

食物

ItemEvents.modification(event => {
  event.modify('minecraft:diamond', item => {
    item.foodProperties = food => {
        food.hunger(2)
        food.saturation(3)
        food.fastToEat(true)
        food.eaten(e => e.player.tell('you ate')) // this is broken, use ItemEvents.foodEaten instead.
    }
  })

  event.modify('pumpkin_pie', item => {
    item.foodProperties = null // make pumpkin pies inedible
  })
})
方法 参数 描述
hunger int h 设置食用该物品时恢复的饥饿值。
saturation float s 设置食用该食物时的饱和度倍率。这不是最终值,需要先经过一些复杂的计算。
meat boolean flag(可选,默认为 true) 设置该物品是否被视为肉类。肉可以喂给狼来治疗它们。
alwaysEdible boolean flag(可选,默认为 true) 即使饥饿值已满也可以食用该物品。紫颂果(Chorus Fruit)默认如此。
fastToEat boolean flag(可选,默认为 true) 该物品是否可以快速食用,比如干海带(Dried Kelp)。
effect ResourceLocation mobEffectId, int duration, int amplifier, float probability 为食用者添加效果,比如金苹果。
removeEffect MobEffect mobEffect 移除食用者的效果,比如蜂蜜瓶(中毒)。
eaten Consumer e 已损坏(BROKEN)!请改用服务端脚本中的 ItemEvents.foodEaten