From fbf3961220f72cdd467ebb3e867cd2d849cac18a Mon Sep 17 00:00:00 2001 From: alterNERDtive Date: Tue, 27 Jun 2023 19:23:32 +0200 Subject: [PATCH] move injection for removing enchantment costs Makes the thing spam the log more, but works on servers. fixes #2 --- ...a => MixinVaultGearEnchantmentConfig.java} | 31 ++++++++----------- .../resources/mixins.the_vault_tweaks.json | 2 +- 2 files changed, 14 insertions(+), 19 deletions(-) rename src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/{MixinEnchantmentCost.java => MixinVaultGearEnchantmentConfig.java} (75%) diff --git a/src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinEnchantmentCost.java b/src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinVaultGearEnchantmentConfig.java similarity index 75% rename from src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinEnchantmentCost.java rename to src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinVaultGearEnchantmentConfig.java index e6c03d3..3caba5b 100644 --- a/src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinEnchantmentCost.java +++ b/src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinVaultGearEnchantmentConfig.java @@ -23,44 +23,39 @@ 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.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.google.gson.JsonObject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import iskallia.vault.config.gear.VaultGearEnchantmentConfig; import iskallia.vault.util.EnchantmentCost; -import net.minecraft.world.item.ItemStack; +import iskallia.vault.util.EnchantmentEntry; import tv.alterNERD.VaultModTweaks.Configuration; import tv.alterNERD.VaultModTweaks.VaultModTweaks; import tv.alterNERD.VaultModTweaks.util.I18n; /** - * Changes the {@link iskallia.vault.util.EnchantmentCost} class used by the - * Vault Enchanter. + * Changes the {@link iskallia.vault.config.gear.VaultGearEnchantmentConfig} + * class used by the Vault Enchanter. * * Specifically, it removes the Emerald cost of enchantments. Just because I * cannot be arsed to bring them over every time. */ -@Mixin(EnchantmentCost.class) -public class MixinEnchantmentCost { - @Shadow(remap = false) - private List items; - +@Mixin(VaultGearEnchantmentConfig.class) +public class MixinVaultGearEnchantmentConfig { /** - * Removes the Emerald cost from all Vault Enchanter enchantments when - * reading an existing JSON configuration. + * Removes the Emerald cost from all Vault Enchanter enchantments. * - * @param json - * @param ci + * @param entry */ @Inject( - method = "readJson", + method = "getCost", at = @At("RETURN"), + cancellable = true, remap = false ) - private void readJsonCallback(JsonObject json, CallbackInfo ci) { + private void readJsonCallback(EnchantmentEntry enrty, CallbackInfoReturnable ci) { if (Configuration.ENCHANTS_FORFREE.get()) { VaultModTweaks.LOGGER.info(I18n.get("the_vault_tweaks.log.inject.enchanter.forfree")); - this.items.clear(); + ci.setReturnValue(EnchantmentCost.EMPTY); } } diff --git a/src/main/resources/mixins.the_vault_tweaks.json b/src/main/resources/mixins.the_vault_tweaks.json index 713cf16..95fc9fd 100644 --- a/src/main/resources/mixins.the_vault_tweaks.json +++ b/src/main/resources/mixins.the_vault_tweaks.json @@ -7,7 +7,6 @@ "mixins": [ "MixinAltarConduitNode", "MixinCrystalBuddingConfig", - "MixinEnchantmentCost", "MixinEnchantmentEntry", "MixinExpertisesGuiConfig", "MixinPlayerResearchesData", @@ -16,6 +15,7 @@ "MixinVaultAltarBlock", "MixinVaultAltarConfig", "MixinVaultCharmConfig", + "MixinVaultGearEnchantmentConfig", "MixinVaultJewelCuttingConfig", "MixinVaultPortalConfig" ],