Skip to content

Use enchantment tags for tool enchantment checks - #4494

Open
screret wants to merge 35 commits into
GregTechCEu:1.21from
screret:sc/use-tags-for-tool-enchantment-checks
Open

screret wants to merge 35 commits into
GregTechCEu:1.21from
screret:sc/use-tags-for-tool-enchantment-checks

Conversation

@screret

@screret screret commented Jan 24, 2026 •

Copy link
Copy Markdown
Contributor

What

This PR makes the enchantment checks in ToolEventHandler.onHarvestDrops and BlockMixin use enchantment tags instead of hardcoding the specific enchantment they test for.
As they are, they can cause crashes because data packs can remove enchantments.

Implementation Details

For all the applicable cases, I used the same utility function vanilla uses for silk touch: EnchantmentHelper.hasTag.
A tag for enchants that block hammer drop conversion was added. Currently, it only contains silk touch.

Outcome

Fixes a possible bug with enchantment checking, and allows mod- and datapack developers to change what enchantments fill the described conditions

Additional Information

This pull request depends on changes done in #4492, so that should be merged first.

@screret
screret requested a review from a team as a code owner January 24, 2026 14:58
…checks

# Conflicts:
#	src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java
#	src/main/java/com/gregtechceu/gtceu/common/item/tool/ToolEventHandlers.java
#	src/main/java/com/gregtechceu/gtceu/common/machine/trait/miner/LargeMinerLogic.java
#	src/main/java/com/gregtechceu/gtceu/data/DataGenerators.java
#	src/main/java/com/gregtechceu/gtceu/data/tags/EnchantmentTagsLoader.java
#	src/main/java/com/gregtechceu/gtceu/utils/DummyRecipeLogicMachine.java
#	src/main/resources/gtceu.mixins.json
# Conflicts:
#	src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java
#	src/main/java/com/gregtechceu/gtceu/common/machine/trait/miner/LargeMinerLogic.java
#	src/main/java/com/gregtechceu/gtceu/utils/DummyRecipeLogicMachine.java
#	src/main/resources/gtceu.mixins.json
…-for-tool-enchantment-checks

# Conflicts:
#	src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java
# Conflicts:
#	src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java
#	src/main/java/com/gregtechceu/gtceu/common/machine/trait/miner/LargeMinerLogic.java
…-for-tool-enchantment-checks

# Conflicts:
#	gradle/forge.versions.toml
# Conflicts:
#	src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java
#	src/main/java/com/gregtechceu/gtceu/data/DataGenerators.java
@screret screret mentioned this pull request Aug 5, 2026
1 task done
screret added 9 commits August 7, 2026 13:47
# Conflicts:
#	src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java
#	src/main/java/com/gregtechceu/gtceu/common/item/tool/ToolEventHandlers.java
#	src/main/java/com/gregtechceu/gtceu/common/machine/trait/miner/LargeMinerLogic.java
#	src/main/java/com/gregtechceu/gtceu/data/DataGenerators.java
#	src/main/java/com/gregtechceu/gtceu/data/recipe/CustomTags.java
#	src/main/java/com/gregtechceu/gtceu/data/tags/EnchantmentTagsLoader.java
#	src/main/java/com/gregtechceu/gtceu/utils/DummyRecipeLogicMachine.java
#	src/main/resources/gtceu.mixins.json
…-checks' into sc/use-tags-for-tool-enchantment-checks

# Conflicts:
#	src/generated/resources/assets/gtceu/lang/en_ud.json
#	src/generated/resources/assets/gtceu/lang/en_us.json
#	src/main/java/com/gregtechceu/gtceu/api/item/tool/ToolHelper.java
#	src/main/java/com/gregtechceu/gtceu/common/item/tool/ToolEventHandlers.java
#	src/main/java/com/gregtechceu/gtceu/data/DataGenerators.java
# Conflicts:
#	src/generated/resources/assets/gtceu/lang/en_ud.json
#	src/generated/resources/assets/gtceu/lang/en_us.json
#	src/generated/resources/data/c/tags/item/lenses/black.json
#	src/generated/resources/data/c/tags/item/lenses/blue.json
#	src/generated/resources/data/c/tags/item/lenses/brown.json
#	src/generated/resources/data/c/tags/item/lenses/cyan.json
#	src/generated/resources/data/c/tags/item/lenses/gray.json
#	src/generated/resources/data/c/tags/item/lenses/green.json
#	src/generated/resources/data/c/tags/item/lenses/light_blue.json
#	src/generated/resources/data/c/tags/item/lenses/light_gray.json
#	src/generated/resources/data/c/tags/item/lenses/lime.json
#	src/generated/resources/data/c/tags/item/lenses/magenta.json
#	src/generated/resources/data/c/tags/item/lenses/orange.json
#	src/generated/resources/data/c/tags/item/lenses/pink.json
#	src/generated/resources/data/c/tags/item/lenses/purple.json
#	src/generated/resources/data/c/tags/item/lenses/red.json
#	src/generated/resources/data/c/tags/item/lenses/yellow.json
#	src/generated/resources/data/forge/tags/items/lenses/black.json
#	src/generated/resources/data/forge/tags/items/lenses/brown.json
#	src/generated/resources/data/forge/tags/items/lenses/cyan.json
#	src/generated/resources/data/forge/tags/items/lenses/gray.json
#	src/generated/resources/data/forge/tags/items/lenses/light_gray.json
#	src/generated/resources/data/forge/tags/items/lenses/lime.json
#	src/generated/resources/data/forge/tags/items/lenses/magenta.json
#	src/generated/resources/data/forge/tags/items/lenses/orange.json
#	src/generated/resources/data/forge/tags/items/lenses/pink.json
#	src/generated/resources/data/forge/tags/items/lenses/yellow.json
#	src/main/java/com/gregtechceu/gtceu/data/recipe/CustomTags.java
# Conflicts:
#	src/main/java/com/gregtechceu/gtceu/common/item/tool/ToolEventHandlers.java
#	src/main/java/com/gregtechceu/gtceu/data/DataGenerators.java
#	src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java
# Conflicts:
#	src/main/java/com/gregtechceu/gtceu/common/item/tool/ToolEventHandlers.java
@YoungOnionMC

Copy link
Copy Markdown
Member

can you break apart the other tool behavior fix ups into a separate pr?

@screret

screret commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

not really, no

# Conflicts:
#	src/generated/resources/assets/gtceu/lang/en_ud.json
#	src/generated/resources/assets/gtceu/lang/en_us.json

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants