物品组件 - NyaaCat/RPGItems-reloaded GitHub Wiki

配置文件中有一个叫做 components 的部分, 代表的就是原版的物品组件. 因为通过命令编辑太过复杂,所以请直接在文件中编辑.

注意: 要在服务器运行的时候编辑文件, 你需要在 config.yml 中将 fs_lock 设置为 false

有关物品组件的更多信息见此

样例配置(也是所有支持的组件)

components:
  axolotl/variant: blue
  banner_patterns:
    - color: black
      pattern: base
    - color: yellow
      pattern: creeper
  base_color: "white"
  blocks_attacks:
    block_delay_seconds: 0
    block_sound: "entity.player.death"
    bypassed_by: "#is_explosion"
    damage_reductions:
      - base: 1
        factor: 1
        horizontal_blocking_angle: 30
        type: "#is_fall"
      - base: 0.5
        factor: 1
        horizontal_blocking_angle: 90
        type:
        - "on_fire"
        - "in_fire"
    disable_cooldown_scale: 10
    disable_sound: "entity.player.death"
    item_damage:
      base: 10
      factor: 10
      threshold: 10
  break_sound: "entity.player.death"
  bundle_contents:
    - "rpgitem-id-1"
  consumable:
    animation: eat
    consume_seconds: 1.6
    has_consume_particles: true
    on_consume_effects:
      - type: "apply_effects"
        probability: 0.8
        effects:
          - id: "speed"
            amplifier: 1
            duration: 100
      - type: "apply_effects"
        probability: 1
        effects:
          - id: "strength"
            amplifier: 10
            duration: 100
      - type: "clear_all_effects"
  can_place_on:
    - grass_block
    - stone
  can_break:
    - stone
  cat/collar: red
  cat/sound_variant: classic
  cat/variant: tabby
  charged_projectiles:
    - "rpgitem-id-1"
    - "rpgitem-id-2"
  chicken/sound_variant: classic
  chicken/variant: temperate
  container:
    - "rpgitem-id-1"
  container_loot:
    loot_table: "minecraft:chests/simple_dungeon"
    seed: 0
  cow/sound_variant: classic
  cow/variant: temperate
  damage_resistance: "in_fire"
  damage_type: "in_fire"
  death_protection:
    death_effects:
      - type: "apply_effects"
        probability: 0.7
        effects:
          - id: "speed"
            amplifier: 1
            duration: 300
      - type: "apply_effects"
        probability: 0.5
        effects:
          - id: "regeneration"
            amplifier: 2
            duration: 400
      - type: "clear_all_effects"
      - type: "play_sound"
        sound: "entity.player.burp"
      - type: "remove_effects"
        effects:
          - "speed"
          - "strength"
      - type: "teleport_randomly"
        diameter: 20.0
  dye: white
  dyed_color: "255,255,255"
  enchantable: 5
  enchantment_glint_override: true
  equippable:
    slot: chest
    allowed_entities:
    - player
    asset_id: "grass_block"
    camera_overlay: "example:example"
    damage_on_hurt: true
    equip_sound: "entity.player.death"
    swappable: true
    can_be_sheared: true
    shearing_sound: minecraft:item.shears.snip
  firework_explosion:
    type: star
    colors:
    - "255,0,0"
    fade_colors:
    - "0,0,255"
    trail: true
    flicker: false
  fireworks:
    flight_duration: 2
    explosions:
    - type: star
      colors:
      - "255,0,0"
  food:
    can_always_eat: true
    nutrition: 10
    saturation: 10
  fox/variant: red
  frog/variant: temperate
  glider: true
  horse/variant: white
  instrument:
    description: "<red>test"
    sound_event:
      sound_id: "entity.player.death"
      range: 5
    range: 4
    use_duration: 0.01
  jukebox_playable: minecraft:pigstep
  kinetic_weapon:
    delay_ticks: 0
    forward_movement: 0.0
    damage_multiplier: 1.0
    sound: minecraft:item.spear.use
    hit_sound: minecraft:item.spear.hit
    contact_cooldown_ticks: 10
  llama/variant: creamy
  lodestone_tracker:
    tracked: false
    target:
      dimension: world
      pos:
      - 0.0
      - 0.0
      - 0.0
  intangible_projectile: true
  map_color: "255,0,0"
  map_decorations:
    home:
      type: target_point
      x: 12.5
      z: -4.0
      rotation: 45
  map_id: 0
  max_damage: 500
  max_stack_size: 1
  minimum_attack_charge: 1.0
  mooshroom/variant: red
  note_block_sound: "minecraft:block.note_block.harp"
  ominous_bottle_amplifier: 1
  painting/variant: kebab
  parrot/variant: red
  piercing_weapon:
    sound: minecraft:item.spear.use
    hit_sound: minecraft:item.spear.hit
    deals_knockback: true
    dismounts: false
  pig/sound_variant: classic
  pig/variant: temperate
  pot_decorations:
    back: brick
    left: skeleton_skull
    right: creeper_head
    front: brick
  potion_contents:
    custom_color: "255,255,255"
    custom_name: harming
    potion: awkward
    custom_effects:
    - id: instant_damage
      amplifier: 1
      duration: 100
      ambient: false
      show_particles: false
      show_icon: false
    - id: poison
      amplifier: 1
      duration: 100
      ambient: false
      show_particles: false
      show_icon: false
  potion_duration_scale: 10.5
  profile: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTRkODE2YTQ3NWIzZjMxM2I2MjBkNjViZjkzNTg5MzFiNDZhZjljOGY0ZTdjOWFlNjQ3MDg4ODBiZWE2YmUifX19"
  provides_banner_patterns: "globe"
  provides_trim_material: "gold"
  rabbit/variant: brown
  rarity: epic
  recipes:
    - "minecraft:diamond_sword"
  repairable:
    items:
    - "short_grass"
    - "stone"
  repair_cost: 1
  salmon/size: medium
  sheep/color: white
  shulker/color: purple
  stored_enchantments:
    sharpness: 5
    smite: 5
  sulfur_cube_content: "rpgitem-id"
  suspicious_stew_effects:
    - id: speed
      duration: 200
  swing_animation:
    type: none
    duration: 6
  tool:
    damage_per_block: 5
    default_mining_speed: 5
    rules:
    - blocks: "minecraft:stone"
      speed: 2.0
      correct_for_drops: true
    - blocks:
        - "minecraft:dirt"
        - "minecraft:gravel"
      speed: 120
      correct_for_drops: false
    - blocks: "minecraft:diamond_ore"
      speed: 3.0
      correct_for_drops: true
  tooltip_display:
    hide_tooltip: true
    hidden_components:
    - trim
    - rarity
  tooltip_style: "example:example"
  trim:
    material: diamond
    pattern: bolt
  tropical_fish/base_color: white
  tropical_fish/pattern: kob
  tropical_fish/pattern_color: white
  use_cooldown:
    seconds: 5
    cooldown_group: "example:example"
  use_effects:
    can_sprint: false
    interact_vibrations: true
    speed_multiplier: 0.2
  use_remainder: "rpgitem-id"
  villager/variant: plains
  weapon:
    disable_blocking_for_seconds: 10
    item_damage_per_attack: 10
  wolf/collar: red
  wolf/sound_variant: classic
  wolf/variant: pale
  writable_book_content:
    - "page 1"
    - "page 2"
  written_book_content:
    title: "<gold>My Book"
    author: "Steve"
    generation: 0
    pages:
    - "<red>Page one"
  zombie_nautilus/variant: temperate

只有几个地方需要注意:

  • profile: 可以使用Base64码或者玩家名称。比如profile: "Steve"或者profile: "ey...."

  • dyed_color: 用RGB颜色格式

  • damage_type: 填写伤害类型的 ID (minecraft: 前缀可省略), 比如 in_fire、explosion、lava 等

  • max_damage 和 max_stack_size: 物品不能同时拥有 max_damage 和 max_stack_size 组件, 如果你设置了 max_damage, 你就不能设置 max_stack_size, 或者设置其值为 1, 如果你设置了 max_stack_size, 你就不能设置 max_damage, 无论其值为何.

  • banner_patterns、blocks_attacks.damage_reductions、consumable.on_consume_effects、death_protection.death_effects: 这四项都是列表,按写入顺序生效.

  • on_consume_effects / death_effects 里的 apply_effects: 一条 apply_effects 里的 probability 是这一组 effects 共享的一个概率,不是每个效果单独的概率. 如果想让不同效果有不同触发概率, 就拆成多条 apply_effects 记录(可参考上面样例里 speed 和 strength 分开写的写法).

  • blocks_attacks 与 damage_resistance 里涉及伤害类型集合的字段(bypassed_by、damage_reductions[].type、damage_resistance): 可以填单个 ID、#标签 (如 #is_fall),或者纯 ID 列表;但标签和普通 ID 不能混用,这一点和原版一致. damage_type 不在此列——它对应的是单个具体伤害类型,只能填一个普通 ID,不支持 #标签.

  • 各种 */variant、*/sound_variant、*/color、*/collar 以及 dye、painting/variant: 填的都是对应类型的 ID,不区分大小写。 部分是纯粹的固定枚举(dye、fox/variant、salmon/size、parrot/variant、tropical_fish/pattern、tropical_fish/base_color、tropical_fish/pattern_color、mooshroom/variant、rabbit/variant、horse/variant、llama/variant、axolotl/variant、wolf/collar、cat/collar、sheep/color、shulker/color),直接填 Bukkit 枚举名即可; 其余(villager/variant、wolf/variant、wolf/sound_variant、pig/variant、pig/sound_variant、cow/variant、cow/sound_variant、chicken/variant、chicken/sound_variant、frog/variant、painting/variant、zombie_nautilus/variant、cat/variant、cat/sound_variant)是数据包可扩展的注册表 ID(minecraft: 前缀可省略)。

  • charged_projectiles(弩装填的弹药)、bundle_contents(收纳袋内容)、container(容器类物品内容,如潜影盒/箱子)、sulfur_cube_content: 和 use_remainder 一样,填的是 rpgitem 的 id,而不是原始物品数据;服务器会自动查找对应 RPGItem 并生成实际物品。前三项是列表,sulfur_cube_content 只有单个物品。

  • written_book_content 的 pages 支持 MiniMessage 富文本;writable_book_content(书与笔)的页面本身只支持纯文本(和原版一致,未定稿的书不支持富文本)。

  • map_decorations 的子 key(样例里的 home)是装饰点的自定义 id,可以随便起名。

  • 删除组件: 有些组件在物品上默认存在, 比如盔甲上就有 equippable 组件, 如果你想删除这些组件,你可以像下面这样设置:

    equippable:
      unset: true
    hide_tooltip:
      unset: true

    该方法对所有组件都有效.

⚠️ **GitHub.com Fallback** ⚠️