From 43fa1b57d19ba1afea940227964d1e6e004d93b3 Mon Sep 17 00:00:00 2001 From: Sergeant Acoustic Date: Mon, 2 Feb 2026 04:09:05 +0000 Subject: [PATCH] Implement java independent custom enchantments --- .../assets/mc_rebalance/lang/en_us.json | 7 ++ .../mc_rebalance/enchantment/stepping.json | 35 ++++++ .../data/mc_rebalance/enchantment/trowel.json | 31 +++++ .../mc_rebalance/enchantment/whallop.json | 35 ++++++ .../enchantment/exclusive_set/capability.json | 25 ++++ .../enchantment/exclusive_set/durability.json | 6 + .../tags/item/enchantable/shovel.json | 5 + .../enchantment/feather_falling.json | 77 ++++++++++++ .../minecraft/enchantment/frost_walker.json | 110 ++++++++++++++++++ .../data/minecraft/enchantment/mending.json | 31 +++++ .../minecraft/enchantment/respiration.json | 35 ++++++ .../minecraft/enchantment/swift_sneak.json | 35 ++++++ .../data/minecraft/enchantment/thorns.json | 55 +++++++++ .../minecraft/enchantment/unbreaking.json | 76 ++++++++++++ .../tags/enchantment/non_treasure.json | 6 + 15 files changed, 569 insertions(+) create mode 100644 overrides/global_packs/mc_rebalance_datapack/assets/mc_rebalance/lang/en_us.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/stepping.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/trowel.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/whallop.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/enchantment/exclusive_set/capability.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/enchantment/exclusive_set/durability.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/item/enchantable/shovel.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/feather_falling.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/frost_walker.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/mending.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/respiration.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/swift_sneak.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/thorns.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/unbreaking.json create mode 100644 overrides/global_packs/mc_rebalance_datapack/data/minecraft/tags/enchantment/non_treasure.json diff --git a/overrides/global_packs/mc_rebalance_datapack/assets/mc_rebalance/lang/en_us.json b/overrides/global_packs/mc_rebalance_datapack/assets/mc_rebalance/lang/en_us.json new file mode 100644 index 0000000..a12ca16 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/assets/mc_rebalance/lang/en_us.json @@ -0,0 +1,7 @@ +{ + "enchantment.mc_rebalance.stepping": "Stepping", + "enchantment.mc_rebalance.bound": "Bound", + "enchantment.mc_rebalance.clutch": "Clutch", + "enchantment.mc_rebalance.whallop": "Whallop", + "enchantment.mc_rebalance.trowel": "Trowel" +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/stepping.json b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/stepping.json new file mode 100644 index 0000000..8e19550 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/stepping.json @@ -0,0 +1,35 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.mc_rebalance.stepping" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 0.4, + "per_level_above_first": 0.5 + }, + "attribute": "generic.step_height", + "id": "mc_rebalance:enchantment.stepping", + "operation": "add_value" + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/capability", + "max_cost": { + "base": 51, + "per_level_above_first": 10 + }, + "max_level": 3, + "min_cost": { + "base": 1, + "per_level_above_first": 10 + }, + "slots": [ + "feet" + ], + "supported_items": "#minecraft:enchantable/foot_armor", + "weight": 10 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/trowel.json b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/trowel.json new file mode 100644 index 0000000..3716ab5 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/trowel.json @@ -0,0 +1,31 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.mc_rebalance.trowel" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": 1024, + "attribute": "player.mining_efficiency", + "id": "mc_rebalance:enchantment.trowel", + "operation": "add_value" + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/capability", + "max_cost": { + "base": 51, + "per_level_above_first": 10 + }, + "max_level": 1, + "min_cost": { + "base": 1, + "per_level_above_first": 10 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#mc_rebalance:enchantable/shovel", + "weight": 10 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/whallop.json b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/whallop.json new file mode 100644 index 0000000..c55a6bb --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/enchantment/whallop.json @@ -0,0 +1,35 @@ +{ + "anvil_cost": 1, + "description": { + "translate": "enchantment.mc_rebalance.whallop" + }, + "effects": { + "minecraft:knockback": [ + { + "effect": { + "type": "minecraft:add", + "value": { + "type": "minecraft:linear", + "base": 5.0, + "per_level_above_first": 5.0 + } + } + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/capability", + "max_cost": { + "base": 51, + "per_level_above_first": 10 + }, + "max_level": 1, + "min_cost": { + "base": 1, + "per_level_above_first": 10 + }, + "slots": [ + "mainhand" + ], + "supported_items": "#mc_rebalance:enchantable/shovel", + "weight": 10 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/enchantment/exclusive_set/capability.json b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/enchantment/exclusive_set/capability.json new file mode 100644 index 0000000..0535848 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/enchantment/exclusive_set/capability.json @@ -0,0 +1,25 @@ +{ + "values": [ + "minecraft:respiration", + "minecraft:thorns", + "minecraft:frost_walker", + "minecraft:swift_sneak", + "mc_rebalance:stepping", + "minecraft:feather_falling", + "minecraft:fire_aspect", + "minecraft:sweeping_edge", + "minecraft:channeling", + "minecraft:riptide", + "minecraft:density", + "minecraft:breach", + "minecraft:wind_burst", + "minecraft:flame", + "minecraft:piercing", + "minecraft:multishot", + "minecraft:quick_charge", + "minecraft:efficiency", + "mc_rebalance:trowel", + "mc_rebalance:whallop", + "minecraft:luck_of_the_sea" + ] +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/enchantment/exclusive_set/durability.json b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/enchantment/exclusive_set/durability.json new file mode 100644 index 0000000..9a58478 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/enchantment/exclusive_set/durability.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:mending", + "minecraft:unbreaking" + ] +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/item/enchantable/shovel.json b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/item/enchantable/shovel.json new file mode 100644 index 0000000..c4c7c88 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/mc_rebalance/tags/item/enchantable/shovel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:shovels" + ] +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/feather_falling.json b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/feather_falling.json new file mode 100644 index 0000000..b947321 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/feather_falling.json @@ -0,0 +1,77 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.mc_rebalance.clutch" + }, + "effects": { + "minecraft:damage_protection": [ + { + "effect": { + "type": "minecraft:add", + "value": {"type": "minecraft:linear", "base": 4.0, "per_level_above_first": 4.0} + }, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + {"expected": true, "id": "minecraft:is_fall"}, + {"expected": false, "id": "minecraft:bypasses_invulnerability"} + ] + } + } + } + ], + "minecraft:damage_immunity": [{ + "effect": {}, + "requirements": { + "condition": "minecraft:all_of", + "terms": [ + { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": {"blocks": "minecraft:frosted_ice"} + } + }, + { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + {"expected": true, "id": "minecraft:is_fall"}, + {"expected": false, "id": "minecraft:bypasses_invulnerability"} + ] + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "legs": { + "predicates": { + "minecraft:enchantments": [{"enchantments": "minecraft:frost_walker"}] + } + } + } + } + } + ] + } + }] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/capability", + "max_cost": { + "base": 11, + "per_level_above_first": 6 + }, + "max_level": 4, + "min_cost": { + "base": 5, + "per_level_above_first": 6 + }, + "slots": [ + "armor" + ], + "supported_items": "#minecraft:enchantable/foot_armor", + "weight": 5 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/frost_walker.json b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/frost_walker.json new file mode 100644 index 0000000..80b22d6 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/frost_walker.json @@ -0,0 +1,110 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.frost_walker" + }, + "effects": { + "minecraft:damage_immunity": [ + { + "effect": {}, + "requirements": { + "condition": "minecraft:damage_source_properties", + "predicate": { + "tags": [ + { + "expected": true, + "id": "minecraft:burn_from_stepping" + }, + { + "expected": false, + "id": "minecraft:bypasses_invulnerability" + } + ] + } + } + } + ], + "minecraft:location_changed": [ + { + "effect": { + "type": "minecraft:replace_disk", + "block_state": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:frosted_ice", + "Properties": { + "age": "0" + } + } + }, + "height": 1.0, + "offset": [ + 0, + -1, + 0 + ], + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_block_tag", + "offset": [ + 0, + 1, + 0 + ], + "tag": "minecraft:air" + }, + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:water" + }, + { + "type": "minecraft:matching_fluids", + "fluids": "minecraft:water" + }, + { + "type": "minecraft:unobstructed" + } + ] + }, + "radius": { + "type": "minecraft:clamped", + "max": 16.0, + "min": 0.0, + "value": { + "type": "minecraft:linear", + "base": 3.0, + "per_level_above_first": 1.0 + } + }, + "trigger_game_event": "minecraft:block_place" + }, + "requirements": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_ground": true + } + } + } + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/capability", + "max_cost": { + "base": 25, + "per_level_above_first": 10 + }, + "max_level": 2, + "min_cost": { + "base": 10, + "per_level_above_first": 10 + }, + "slots": [ + "legs" + ], + "supported_items": "#minecraft:enchantable/leg_armor", + "weight": 2 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/mending.json b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/mending.json new file mode 100644 index 0000000..0fa1cad --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/mending.json @@ -0,0 +1,31 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.mending" + }, + "effects": { + "minecraft:repair_with_xp": [ + { + "effect": { + "type": "minecraft:multiply", + "factor": 2.0 + } + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/durability", + "max_cost": { + "base": 75, + "per_level_above_first": 25 + }, + "max_level": 1, + "min_cost": { + "base": 25, + "per_level_above_first": 25 + }, + "slots": [ + "any" + ], + "supported_items": "#minecraft:enchantable/durability", + "weight": 2 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/respiration.json b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/respiration.json new file mode 100644 index 0000000..ebb7845 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/respiration.json @@ -0,0 +1,35 @@ +{ + "anvil_cost": 4, + "description": { + "translate": "enchantment.minecraft.respiration" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + }, + "attribute": "minecraft:generic.oxygen_bonus", + "id": "minecraft:enchantment.respiration", + "operation": "add_value" + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/capability", + "max_cost": { + "base": 40, + "per_level_above_first": 10 + }, + "max_level": 3, + "min_cost": { + "base": 10, + "per_level_above_first": 10 + }, + "slots": [ + "head" + ], + "supported_items": "#minecraft:enchantable/head_armor", + "weight": 2 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/swift_sneak.json b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/swift_sneak.json new file mode 100644 index 0000000..6f1c226 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/swift_sneak.json @@ -0,0 +1,35 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.swift_sneak" + }, + "effects": { + "minecraft:attributes": [ + { + "amount": { + "type": "minecraft:linear", + "base": 0.15, + "per_level_above_first": 0.15 + }, + "attribute": "minecraft:player.sneaking_speed", + "id": "minecraft:enchantment.swift_sneak", + "operation": "add_value" + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/capability", + "max_cost": { + "base": 75, + "per_level_above_first": 25 + }, + "max_level": 3, + "min_cost": { + "base": 25, + "per_level_above_first": 25 + }, + "slots": [ + "legs" + ], + "supported_items": "#minecraft:enchantable/leg_armor", + "weight": 1 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/thorns.json b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/thorns.json new file mode 100644 index 0000000..48fb5f3 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/thorns.json @@ -0,0 +1,55 @@ +{ + "anvil_cost": 8, + "description": { + "translate": "enchantment.minecraft.thorns" + }, + "effects": { + "minecraft:post_attack": [ + { + "affected": "attacker", + "effect": { + "type": "minecraft:all_of", + "effects": [ + { + "type": "minecraft:damage_entity", + "damage_type": "minecraft:thorns", + "max_damage": 5.0, + "min_damage": 1.0 + }, + { + "type": "minecraft:damage_item", + "amount": 2.0 + } + ] + }, + "enchanted": "victim", + "requirements": { + "chance": { + "type": "minecraft:enchantment_level", + "amount": { + "type": "minecraft:linear", + "base": 0.15, + "per_level_above_first": 0.15 + } + }, + "condition": "minecraft:random_chance" + } + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/capability", + "max_cost": { + "base": 60, + "per_level_above_first": 20 + }, + "max_level": 3, + "min_cost": { + "base": 10, + "per_level_above_first": 20 + }, + "slots": [ + "chest" + ], + "supported_items": "#minecraft:enchantable/chest_armor", + "weight": 1 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/unbreaking.json b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/unbreaking.json new file mode 100644 index 0000000..774aec4 --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/enchantment/unbreaking.json @@ -0,0 +1,76 @@ +{ + "anvil_cost": 2, + "description": { + "translate": "enchantment.minecraft.unbreaking" + }, + "effects": { + "minecraft:item_damage": [ + { + "effect": { + "type": "minecraft:remove_binomial", + "chance": { + "type": "minecraft:fraction", + "denominator": { + "type": "minecraft:linear", + "base": 10.0, + "per_level_above_first": 5.0 + }, + "numerator": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 2.0 + } + } + }, + "requirements": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:enchantable/armor" + } + } + }, + { + "effect": { + "type": "minecraft:remove_binomial", + "chance": { + "type": "minecraft:fraction", + "denominator": { + "type": "minecraft:linear", + "base": 2.0, + "per_level_above_first": 1.0 + }, + "numerator": { + "type": "minecraft:linear", + "base": 1.0, + "per_level_above_first": 1.0 + } + } + }, + "requirements": { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#minecraft:enchantable/armor" + } + } + } + } + ] + }, + "exclusive_set": "#mc_rebalance:exclusive_set/durability", + "max_cost": { + "base": 55, + "per_level_above_first": 8 + }, + "max_level": 3, + "min_cost": { + "base": 5, + "per_level_above_first": 8 + }, + "slots": [ + "any" + ], + "supported_items": "#minecraft:enchantable/durability", + "weight": 5 +} diff --git a/overrides/global_packs/mc_rebalance_datapack/data/minecraft/tags/enchantment/non_treasure.json b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/tags/enchantment/non_treasure.json new file mode 100644 index 0000000..aab114c --- /dev/null +++ b/overrides/global_packs/mc_rebalance_datapack/data/minecraft/tags/enchantment/non_treasure.json @@ -0,0 +1,6 @@ +{ + "values": [ + "mc_rebalance:stepping", + "mc_rebalance:bound" + ] +}