I was trying to build a blocking skill with “minecraft:damage_sensor”. Here’s the JSON
{
"format_version": "1.21.0",
"minecraft:entity": {
"description": {
"identifier": "minecraft:player",
"spawn_category": "creature",
"is_spawnable": false,
"is_summonable": false
},
"component_groups": {
"minecraft:add_raid_omen": {
"minecraft:spell_effects": {
"add_effects": [
{
"effect": "raid_omen",
"duration": 30,
"display_on_screen_animation": true
}
],
"remove_effects": "bad_omen"
},
"minecraft:timer": {
"time": [ 0.0, 0.0 ],
"looping": false,
"time_down_event": {
"event": "minecraft:clear_add_raid_omen",
"target": "self"
}
}
},
"minecraft:clear_raid_omen_spell_effect": {
"minecraft:spell_effects": {
}
},
"minecraft:raid_trigger": {
"minecraft:raid_trigger": {
"triggered_event": {
"event": "minecraft:remove_raid_trigger",
"target": "self"
}
}
}
},
"components": {
"minecraft:experience_reward": {
"on_death": "Math.Min(query.player_level * 7, 100)"
},
"minecraft:type_family": {
"family": [ "player" ]
},
"minecraft:is_hidden_when_invisible": {
},
"minecraft:loot": {
"table": "loot_tables/empty.json"
},
"minecraft:collision_box": {
"width": 0.6,
"height": 1.8
},
"minecraft:can_climb": {
},
"minecraft:movement": {
"value": 0.1
},
"minecraft:hurt_on_condition": {
"damage_conditions": [
{
"filters": {
"test": "in_lava",
"subject": "self",
"operator": "==",
"value": true
},
"cause": "lava",
"damage_per_tick": 4
}
]
},
"minecraft:attack": {
"damage": 1
},
"minecraft:exhaustion_values": {
"heal": 6.0,
"jump": 0.05,
"sprint_jump": 0.2,
"mine": 0.005,
"attack": 0.1,
"damage": 0.1,
"walk": 0.0,
"sprint": 0.1,
"swim": 0.01,
"lunge": 4.0
},
"minecraft:player.saturation": {
"value": 5,
"max": 20
},
"minecraft:player.exhaustion": {
"value": 0,
"max": 20
},
"minecraft:player.level": {
"value": 0,
"max": 24791
},
"minecraft:player.experience": {
"value": 0,
"max": 1
},
"minecraft:breathable": {
"total_supply": 15,
"suffocate_time": -1,
"inhale_time": 3.75,
"generates_bubbles": false
},
"minecraft:nameable": {
"always_show": true,
"allow_name_tag_renaming": false
},
"minecraft:physics": {
"push_towards_closest_space": true
},
"minecraft:pushable": {
"is_pushable": false,
"is_pushable_by_piston": true
},
"minecraft:insomnia": {
"days_until_insomnia": 3
},
"minecraft:rideable": {
"seat_count": 2,
"family_types": [
"parrot_tame"
],
"pull_in_entities": true,
"seats": [
{
"position": [ 0.4, -0.2, -0.1 ],
"min_rider_count": 0,
"max_rider_count": 0,
"lock_rider_rotation": 0
},
{
"position": [ -0.4, -0.2, -0.1 ],
"min_rider_count": 1,
"max_rider_count": 2,
"lock_rider_rotation": 0
}
]
},
"minecraft:conditional_bandwidth_optimization": {
},
"minecraft:block_climber": {},
"minecraft:damage_sensor": {
"triggers": [
{
"on_damage": {
"filters": {
"all_of": [
{
"test": "has_tag",
"subject": "self",
"value": "gm:blocking"
},
{
"test": "has_equipment",
"subject": "self",
"domain": "main_hand",
"value": "custom:knife"
}
]
},
"event": "gm:blocking",
"deals_damage": "no"
}
}
]
},
"minecraft:environment_sensor": {
"triggers": {
"filters": {
"all_of": [
{
"test": "has_mob_effect",
"subject": "self",
"value": "bad_omen"
},
{
"test": "is_in_village",
"subject": "self",
"value": true
}
]
},
"event": "minecraft:gain_raid_omen"
}
}
},
"events": {
"minecraft:gain_raid_omen": {
"add": {
"component_groups": [
"minecraft:add_raid_omen"
]
}
},
"minecraft:clear_add_raid_omen": {
"remove": {
"component_groups": [
"minecraft:add_raid_omen"
]
},
"add": {
"component_groups": [
"minecraft:clear_raid_omen_spell_effect"
]
}
},
"minecraft:trigger_raid": {
"add": {
"component_groups": [ "minecraft:raid_trigger" ]
}
},
"minecraft:remove_raid_trigger": {
"remove": {
"component_groups": [ "minecraft:raid_trigger" ]
}
},
"gm:blocking": {
"queue_command": {
"command": [
"playsound random.anvil_land @a"
]
}
}
}
}
}
Someone have told me that I shouldn’t create 2 triggers for each of “event” and “deals_damage”. But actually, I first tried to put them into same trigger only find it in vain. So I divided them in 2 same triggers.
Steps to reproduce
Open a world with a pack contains the JSON file
Type “/tag @s add gm:blocking” and enter in the chat box
Summon a zombie to attack you
Expected result
Anvil sound is played, no damage applied
Observed result
Anvil sound is played, damage is applied
Just ingore the code
I currently cannot edit my report. So I can’t remove it