From a013dc08b239db96fcb6e893389255cbdcf532a2 Mon Sep 17 00:00:00 2001 From: Chrys Chrysanthemum Date: Mon, 13 Jul 2026 11:16:09 +1000 Subject: [PATCH] feat: Use Fabric Tag Removal API instead of mixin. --- .../fabric/mixin/Accessor_TagEntry.java | 20 --------- .../fabric/mixin/Mixin_TagLoader.java | 44 ------------------- .../tags/item/netherite_tool_materials.json | 6 --- .../tags/item/repairs_netherite_armor.json | 6 --- .../resources/menderman.fabric.mixins.json | 4 +- .../tags/item/netherite_tool_materials.json | 3 -- .../tags/item/netherite_tool_materials.json | 12 +++++ .../tags/item/repairs_netherite_armor.json | 12 +++++ 8 files changed, 25 insertions(+), 82 deletions(-) delete mode 100644 fabric/src/main/java/lgbt/greenhouse/menderman/fabric/mixin/Accessor_TagEntry.java delete mode 100644 fabric/src/main/java/lgbt/greenhouse/menderman/fabric/mixin/Mixin_TagLoader.java delete mode 100644 fabric/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json delete mode 100644 fabric/src/main/resources/data/minecraft/tags/item/repairs_netherite_armor.json create mode 100644 xplat/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json create mode 100644 xplat/src/main/resources/data/minecraft/tags/item/repairs_netherite_armor.json diff --git a/fabric/src/main/java/lgbt/greenhouse/menderman/fabric/mixin/Accessor_TagEntry.java b/fabric/src/main/java/lgbt/greenhouse/menderman/fabric/mixin/Accessor_TagEntry.java deleted file mode 100644 index 924cc13..0000000 --- a/fabric/src/main/java/lgbt/greenhouse/menderman/fabric/mixin/Accessor_TagEntry.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright © 2026 Greenhouse Modding - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -package lgbt.greenhouse.menderman.fabric.mixin; - -import net.minecraft.resources.Identifier; -import net.minecraft.tags.TagEntry; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(TagEntry.class) -public interface Accessor_TagEntry { - @Accessor("id") - Identifier menderman$getId(); -} diff --git a/fabric/src/main/java/lgbt/greenhouse/menderman/fabric/mixin/Mixin_TagLoader.java b/fabric/src/main/java/lgbt/greenhouse/menderman/fabric/mixin/Mixin_TagLoader.java deleted file mode 100644 index 3244fca..0000000 --- a/fabric/src/main/java/lgbt/greenhouse/menderman/fabric/mixin/Mixin_TagLoader.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright © 2026 Greenhouse Modding - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -package lgbt.greenhouse.menderman.fabric.mixin; - -import net.minecraft.resources.Identifier; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.TagEntry; -import net.minecraft.tags.TagLoader; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyVariable; - -import java.util.List; -import java.util.Map; - -@Mixin(TagLoader.class) -public class Mixin_TagLoader { - @Shadow - @Final - private String directory; - - @ModifyVariable(method = "build", at = @At("HEAD"), argsOnly = true) - private Map> enchiridion$buildEnchantmentTags(Map> builders) { - if (this.directory.equals("tags/item")) { - var netheriteToolMaterials = builders.get(ItemTags.NETHERITE_TOOL_MATERIALS.location()); - var repairsNetheriteArmor = builders.get(ItemTags.REPAIRS_NETHERITE_ARMOR.location()); - - netheriteToolMaterials.add(new TagLoader.EntryWithSource(TagEntry.element(Identifier.withDefaultNamespace("netherite_scrap")), "enchiridion")); - repairsNetheriteArmor.add(new TagLoader.EntryWithSource(TagEntry.element(Identifier.withDefaultNamespace("netherite_scrap")), "enchiridion")); - - netheriteToolMaterials.removeIf(entry -> entry.source().equals("vanilla") && ((Accessor_TagEntry) entry.entry()).menderman$getId().equals(Identifier.withDefaultNamespace("netherite_ingot"))); - repairsNetheriteArmor.removeIf(entry -> entry.source().equals("vanilla") && ((Accessor_TagEntry) entry.entry()).menderman$getId().equals(Identifier.withDefaultNamespace("netherite_ingot"))); - } - return builders; - } -} diff --git a/fabric/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json b/fabric/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json deleted file mode 100644 index 3a90883..0000000 --- a/fabric/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:netherite_scrap" - ] -} diff --git a/fabric/src/main/resources/data/minecraft/tags/item/repairs_netherite_armor.json b/fabric/src/main/resources/data/minecraft/tags/item/repairs_netherite_armor.json deleted file mode 100644 index d762968..0000000 --- a/fabric/src/main/resources/data/minecraft/tags/item/repairs_netherite_armor.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:netherite_scrap" - ] -} diff --git a/fabric/src/main/resources/menderman.fabric.mixins.json b/fabric/src/main/resources/menderman.fabric.mixins.json index df3965c..c575eee 100644 --- a/fabric/src/main/resources/menderman.fabric.mixins.json +++ b/fabric/src/main/resources/menderman.fabric.mixins.json @@ -4,9 +4,7 @@ "package": "lgbt.greenhouse.menderman.fabric.mixin", "compatibilityLevel": "JAVA_25", "mixins": [ - "Accessor_TagEntry", - "Mixin_AnvilMenu", - "Mixin_TagLoader" + "Mixin_AnvilMenu" ], "injectors": { "defaultRequire": 1 diff --git a/neoforge/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json b/neoforge/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json index 73213ea..1462afc 100644 --- a/neoforge/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json +++ b/neoforge/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json @@ -3,7 +3,4 @@ "values": [ "minecraft:netherite_scrap" ], - "remove": [ - "minecraft:netherite_ingot" - ] } diff --git a/xplat/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json b/xplat/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json new file mode 100644 index 0000000..2230e4e --- /dev/null +++ b/xplat/src/main/resources/data/minecraft/tags/item/netherite_tool_materials.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "minecraft:netherite_scrap" + ], + "remove": [ + "minecraft:netherite_ingot" + ], + "fabric:remove": [ + "minecraft:netherite_ingot" + ] +} diff --git a/xplat/src/main/resources/data/minecraft/tags/item/repairs_netherite_armor.json b/xplat/src/main/resources/data/minecraft/tags/item/repairs_netherite_armor.json new file mode 100644 index 0000000..9f26cc5 --- /dev/null +++ b/xplat/src/main/resources/data/minecraft/tags/item/repairs_netherite_armor.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "minecraft:netherite_scrap" + ], + "remove": [ + "minecraft:netherite_ingot" + ], + "fabric:remove": [ + "minecraft:netherite_ingot" + ] +} -- 2.51.2