From 9c63e6e62e424089790a10f2891f3c04eaedb9c1 Mon Sep 17 00:00:00 2001 From: Liyan Zhao Date: Mon, 24 Jun 2024 17:10:16 +0800 Subject: [PATCH] fix: elytra craftable --- .../mixin/elytra/MixinElytraItem.java | 2 +- .../mixin/elytra/MixinItem.java | 34 +++++++++++++++++++ .../mixin/elytra/MixinRecipe.java | 9 +++++ .../mixin/plugin/BasicMixinPlugin.java | 23 ------------- src/main/resources/slsaddition.mixins.json | 3 +- 5 files changed, 46 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinItem.java create mode 100644 src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinRecipe.java delete mode 100644 src/main/java/com/github/zly2006/carpetslsaddition/mixin/plugin/BasicMixinPlugin.java diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinElytraItem.java b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinElytraItem.java index 7b45a9c..c01a0b2 100644 --- a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinElytraItem.java +++ b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinElytraItem.java @@ -18,7 +18,7 @@ public abstract class MixinElytraItem extends Item implements Equipment { @Override public ItemStack getRecipeRemainder(ItemStack stack) { if (SLSCarpetSettings.elytraCraftable) { - return stack; + return stack.copyWithCount(1); } else return ItemStack.EMPTY; } diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinItem.java b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinItem.java new file mode 100644 index 0000000..d10f0ee --- /dev/null +++ b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinItem.java @@ -0,0 +1,34 @@ +package com.github.zly2006.carpetslsaddition.mixin.elytra; + +import com.github.zly2006.carpetslsaddition.SLSCarpetSettings; +import net.minecraft.item.*; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@SuppressWarnings("ConstantValue") +@Mixin(Item.class) +public abstract class MixinItem { + @Inject( + method = "hasRecipeRemainder", + at = @At("HEAD"), + cancellable = true + ) + public void hasRecipeRemainder(CallbackInfoReturnable cir) { + if (SLSCarpetSettings.elytraCraftable && (Object) this == Items.ELYTRA) { + cir.setReturnValue(true); + } + } + + @Inject( + method = "getRecipeRemainder", + at = @At("HEAD"), + cancellable = true + ) + public void getRecipeRemainder(CallbackInfoReturnable cir) { + if (SLSCarpetSettings.elytraCraftable && (Object) this == Items.ELYTRA) { + cir.setReturnValue(Items.ELYTRA); + } + } +} diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinRecipe.java b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinRecipe.java new file mode 100644 index 0000000..115a0f6 --- /dev/null +++ b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/elytra/MixinRecipe.java @@ -0,0 +1,9 @@ +package com.github.zly2006.carpetslsaddition.mixin.elytra; + +import net.minecraft.recipe.Recipe; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(Recipe.class) +public interface MixinRecipe { + +} diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/plugin/BasicMixinPlugin.java b/src/main/java/com/github/zly2006/carpetslsaddition/mixin/plugin/BasicMixinPlugin.java deleted file mode 100644 index dc33abc..0000000 --- a/src/main/java/com/github/zly2006/carpetslsaddition/mixin/plugin/BasicMixinPlugin.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.github.zly2006.carpetslsaddition.mixin.plugin; - -import me.fallenbreath.conditionalmixin.api.mixin.RestrictiveMixinConfigPlugin; - -import java.util.List; -import java.util.Set; - -public class BasicMixinPlugin extends RestrictiveMixinConfigPlugin { - @Override - public String getRefMapperConfig() { - return null; - } - - @Override - public void acceptTargets(Set myTargets, Set otherTargets) { - - } - - @Override - public List getMixins() { - return null; - } -} diff --git a/src/main/resources/slsaddition.mixins.json b/src/main/resources/slsaddition.mixins.json index 1493a4f..5e09bf5 100644 --- a/src/main/resources/slsaddition.mixins.json +++ b/src/main/resources/slsaddition.mixins.json @@ -3,7 +3,6 @@ "minVersion": "0.8", "package": "com.github.zly2006.carpetslsaddition.mixin", "compatibilityLevel": "JAVA_17", - "plugin": "com.github.zly2006.carpetslsaddition.mixin.plugin.BasicMixinPlugin", "server": [ "server.MixinMinecraftDedicatedServer" ], @@ -15,6 +14,8 @@ "carpet.MixinSettingsManager", "datapack.MixinVanillaResourcePackProvider", "elytra.MixinElytraItem", + "elytra.MixinItem", + "elytra.MixinRecipe", "entity.MixinArmorStandEntity", "entity.MixinEnderDragonFight", "entity.MixinEndermanGoal",