接触效果
对接触 ItemsAdder 自定义方块或家具的玩家施加效果。支持伤害、治疗、药水效果以及临时属性修饰,每种效果都有独立的间隔
当玩家接触或站在自定义方块、家具或复杂家具上时施加效果。
提供四种效果组,全部可选。可在同一物品上任意组合。
| 效果组 | 效果 |
|---|---|
damage | 按间隔伤害玩家(负值改为治疗) |
heal | 按间隔治疗玩家(负值改为伤害) |
potion_effects | 接触期间反复施加一组药水效果 |
attributes | 接触期间施加临时属性修饰 |
配置
behaviours:
contact_effect:
damage:
amount: 1.0
interval: 20 # 可选,默认:20 刻
cause: CACTUS # 可选,默认:CACTUS
fire_duration: 0 # 可选,默认:0 刻behaviours:
contact_effect:
heal:
amount: 1.0
interval: 20 # 可选,默认:20 刻behaviours:
contact_effect:
potion_effects:
- type: POISON
duration: 80 # 可选,默认:40 刻
amplifier: 0 # 可选,默认:0(0 = 等级 1)
ambient: false # 可选,默认:false
particles: true # 可选,默认:true
icon: true # 可选,默认:true
interval: 20 # 可选,默认:20 刻
- type: SLOWNESS
duration: 80behaviours:
contact_effect:
attributes:
- attribute: MOVEMENT_SPEED
amount: 0.05
operation: ADD_NUMBER # 可选,默认:ADD_NUMBER
- attribute: STEP_HEIGHT
amount: 0.5behaviours:
contact_effect:
apply_when_sneaking: true # 可选,默认:true
block_faces: # 可选
top: true # 可选,默认:true
north: true # 可选,默认:true
south: true # 可选,默认:true
west: true # 可选,默认:true
east: true # 可选,默认:true
damage:
amount: 1.0
interval: 40
cause: CACTUS
heal:
amount: 0.5
interval: 20
potion_effects:
- type: SPEED
amplifier: 1
duration: 60
interval: 10
attributes:
- attribute: STEP_HEIGHT
amount: 0.5
operation: ADD_NUMBER伤害
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
amount | Double | - | 伤害的半颗心数量。负值改为治疗。 |
interval | Int | 20 | 每次施加之间的刻数。 |
cause | String | CACTUS | 伤害类型,便于其他插件检测伤害原因。 |
fire_duration | Int | 0 | 受到伤害时玩家着火的刻数。 |
cause 请使用 DamageType 中的值(不区分大小写,例如 CACTUS、LAVA、MAGIC)。未知的值会记录警告并回退为 CACTUS。
负的 amount 会治疗玩家而非伤害,并限制在玩家最大生命值以内。
治疗
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
amount | Double | - | 治疗的半颗心数量。负值改为造成伤害。 |
interval | Int | 20 | 每次施加之间的刻数。 |
治疗永远不会超过玩家的最大生命值。负的 amount 会通过 CACTUS 伤害类型造成伤害。
药水效果
potion_effects 是一个列表。只要玩家保持接触,每个条目都会被反复施加。
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
type | String | - | 必填。药水效果类型。 |
duration | Int | 40 | 效果持续时间(刻)。 |
amplifier | Int | 0 | 效果等级(0 = 等级 1)。 |
ambient | Boolean | false | 效果是否为环境效果。 |
particles | Boolean | true | 是否显示粒子。 |
icon | Boolean | true | 是否显示 HUD 图标。 |
interval | Int | 20 | 每次重新施加之间的刻数。 |
type 请使用 PotionEffectType 中的值。未知的类型会记录警告,且仅跳过该条目。
属性
attributes 是临时属性修饰的列表,在玩家接触期间施加,离开后立即移除。
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
attribute | String | - | 必填。要修改的属性。 |
amount | Double | - | 必填。修饰的数值。 |
operation | String | ADD_NUMBER | 数值的应用方式。 |
attribute 请使用 Attribute 中的值。旧的 GENERIC_ 和 PLAYER_ 前缀同样被接受(例如 GENERIC_MOVEMENT_SPEED 会解析为 MOVEMENT_SPEED)。
operation 的有效值来自 AttributeModifier.Operation:ADD_NUMBER、ADD_SCALAR、MULTIPLY_SCALAR_1。
属性修饰是临时的。当玩家离开方块、退出游戏,或插件重载或关闭时,它们会被自动移除。未知的属性、数值或操作会记录警告,且仅跳过该条目。
接触检测
接触会按所有基于间隔的效果(damage、heal 以及每个 potion_effects 条目)所需的最小间隔进行检测。每种效果都有自己的冷却,因此不同的间隔相互独立。
如果配置了 attributes,则每刻都会检测接触,以便玩家离开方块时能迅速移除修饰。
共享选项
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
apply_when_sneaking | Boolean | true | 玩家潜行时是否仍施加效果。 |
block_faces | Section | 全部开启 | 哪些面算作接触(top、north、south、west、east)。 |