Skip to content

Commit

Permalink
Fix backtanks being able to get incompatible enchants via smithing ta…
Browse files Browse the repository at this point in the history
…ble recipes

- Fixes Creators-of-Create#6687
  • Loading branch information
IThundxr committed Oct 11, 2024
1 parent cafd877 commit f725470
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 3 deletions.
9 changes: 7 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,11 @@ dependencies {
jarJar.ranged(it, '[1.0,2.0)')
}

compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:0.4.1"))
implementation(jarJar("io.github.llamalad7:mixinextras-forge:0.4.1")) {
jarJar.ranged(it, "[0.4.1,)")
}

implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")

compileOnly fg.deobf("dev.engine_room.flywheel:flywheel-forge-api-${flywheel_minecraft_version}:${flywheel_version}")
Expand All @@ -192,12 +197,12 @@ dependencies {
// implementation fg.deobf("curse.maven:ic2-classic-242942:5555152")
// implementation fg.deobf("curse.maven:druidcraft-340991:3101903")
// implementation fg.deobf("com.railwayteam.railways:railways-1.19.2-1.6.4:all") { transitive = false }

implementation fg.deobf("dev.architectury:architectury-forge:9.1.12")
implementation fg.deobf("dev.ftb.mods:ftb-chunks-forge:2001.3.1")
implementation fg.deobf("dev.ftb.mods:ftb-teams-forge:2001.3.0")
implementation fg.deobf("dev.ftb.mods:ftb-library-forge:2001.2.4")

implementation fg.deobf("curse.maven:journeymap-32274:5457831")
// implementation fg.deobf("ignored:journeymap-1.20.1-5.10.1-forge")

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.simibubi.create.foundation.mixin;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;

import com.simibubi.create.content.equipment.armor.BacktankItem;

import net.minecraft.world.inventory.SmithingMenu;

import net.minecraft.world.item.ItemStack;

import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.EnchantmentHelper;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

import java.util.HashMap;
import java.util.Map;

@Mixin(SmithingMenu.class)
public class SmithingMenuMixin {
// Only add enchantments to the backtank if it supports them
@ModifyExpressionValue(
method = "createResult",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/world/item/crafting/SmithingRecipe;assemble(Lnet/minecraft/world/Container;Lnet/minecraft/core/RegistryAccess;)Lnet/minecraft/world/item/ItemStack;"
)
)
private ItemStack create$preventUnbreakingOnBacktanks(ItemStack original) {
if (original.getItem() instanceof BacktankItem) {
Map<Enchantment, Integer> enchantments = new HashMap<>();

EnchantmentHelper.getEnchantments(original).forEach((enchantment, level) -> {
if (enchantment.canEnchant(original))
enchantments.put(enchantment, level);
});

EnchantmentHelper.setEnchantments(enchantments, original);
}

return original;
}
}
3 changes: 2 additions & 1 deletion src/main/resources/create.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"LavaSwimmingMixin",
"MainMixin",
"MapItemSavedDataMixin",
"SmithingMenuMixin",
"TestCommandMixin",
"WaterWheelFluidSpreadMixin",
"accessor.AbstractProjectileDispenseBehaviorAccessor",
Expand Down Expand Up @@ -47,7 +48,7 @@
"client.MapRendererMapInstanceMixin",
"client.PlayerRendererMixin",
"client.WindowResizeMixin",
"compat.JourneyFullscreenMapMixin"
"compat.JourneyFullscreenMapMixin"
],
"injectors": {
"defaultRequire": 1
Expand Down

0 comments on commit f725470

Please sign in to comment.