From 944e481f32aa882ccd2e42b545ff318d2758b5f6 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Tue, 11 Jul 2023 21:33:27 -0400 Subject: [PATCH] Remove item cache flag patch on 1.20 branch --- .../item_cache_flag/ItemStackMixin.java | 49 ------------------- 1 file changed, 49 deletions(-) delete mode 100644 common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/item_cache_flag/ItemStackMixin.java diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/item_cache_flag/ItemStackMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/item_cache_flag/ItemStackMixin.java deleted file mode 100644 index 4a106da1..00000000 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/item_cache_flag/ItemStackMixin.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.embeddedt.modernfix.common.mixin.bugfix.item_cache_flag; - -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import org.objectweb.asm.Opcodes; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -/** - * Remove emptyCacheFlag from ItemStack, as Mojang did in 1.20 due to MC-258939. - */ -@Mixin(ItemStack.class) -public class ItemStackMixin { - @Shadow @Final @Deprecated private Item item; - - /** - * @author embeddedt, Mojang - * @reason avoid getItem() - */ - @Redirect(method = "isEmpty", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;getItem()Lnet/minecraft/world/item/Item;")) - private Item getItemDirect(ItemStack stack) { - return this.item; - } - - /** - * @author embeddedt, Mojang - * @reason avoid getItem() - */ - @Redirect(method = "isEmpty", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;is(Lnet/minecraft/world/item/Item;)Z")) - private boolean checkIsDirect(ItemStack stack, Item item) { - return this.item == item; - } - - @Redirect(method = "*", at = @At(value = "FIELD", opcode = Opcodes.GETFIELD, target = "Lnet/minecraft/world/item/ItemStack;emptyCacheFlag:Z")) - private boolean checkEmptyDirect(ItemStack stack) { - return stack.isEmpty(); - } - - /** - * @author embeddedt, Mojang - * @reason flag is no longer used - */ - @Overwrite - private void updateEmptyCacheFlag() {} -}