Mojira Archive
MC-272651

"replace_block" enchantment effect doesn't work in certain circumstances

If you have an enchantment like the JSON file below, where the "replace block" effect is called after hitting a block, the changes made by this effect will be completely overridden by air if the block you hit can be broken instantly.

Steps to reproduce the issue

 

1. Download the provided datapack, or create an enchantment in a datapack under the "data/harvest/enchantment/till.json" path:

 
 

{
  "anvil_cost": 5,
  "description": {
    "translate": "enchantment.harvest.till"
  },
  "effects": {
    "minecraft:hit_block": [
      {
        "effect": {
          "type": "minecraft:replace_block",
          "block_state": {
            "type": "simple_state_provider",
            "state": {
              "Name": "minecraft:bedrock"
            }
          }
        }
      }
    ]
  },
  "max_cost": {
    "base": 65,
    "per_level_above_first": 9
  },
  "max_level": 3,
  "min_cost": {
    "base": 15,
    "per_level_above_first": 9
  },
  "primary_items": "#minecraft:hoes",
  "slots": [
    "mainhand"
  ],
  "supported_items": "#minecraft:hoes",
  "weight": 4
}

 

2. Give yourself a hoe and enchant it with the enchantment (harvest:till) using the /enchant command.

3. Try to hit any block that can be broken instantly, such as grass, crops, torches, etc.

Behavior

Current behavior: The block hit will break.

Expected behavior: The block hit will be replaced by bedrock.

Note:

Hitting any other block with the enchantment will replace it with bedrock, as expected.

 

Unresolved

Manchick

2024-05-30, 12:41 PM

2024-06-10, 08:46 AM

0

1

Confirmed

Normal

Platform

Data Packs, Enchantments

1.21 Pre-Release 1, 1.21 Pre-Release 4

-