From 1d797fdfb8c08af25baccc23de233edb58155a6a Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sun, 28 Feb 2021 18:16:13 +0800 Subject: [PATCH] Enforce bukkit mixin injection --- .../arclight/common/mixin/bukkit/CraftItemStackMixin.java | 3 ++- .../arclight/common/mixin/bukkit/CraftMetaItemMixin.java | 4 ++-- .../src/main/resources/mixins.arclight.bukkit.json | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/CraftItemStackMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/CraftItemStackMixin.java index f9d30b67..09f57524 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/CraftItemStackMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/CraftItemStackMixin.java @@ -41,7 +41,8 @@ public abstract class CraftItemStackMixin { } } - @Inject(method = "setItemMeta(Lnet/minecraft/item/ItemStack;Lorg/bukkit/inventory/meta/ItemMeta;)Z", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/ItemStack;convertStack(I)V")) + // check when update + @Inject(method = "setItemMeta(Lnet/minecraft/item/ItemStack;Lorg/bukkit/inventory/meta/ItemMeta;)Z", at = @At(value = "INVOKE", ordinal = 1, target = "Lnet/minecraft/item/ItemStack;func_77973_b()Lnet/minecraft/item/Item;")) private static void arclight$setCaps(ItemStack item, ItemMeta itemMeta, CallbackInfoReturnable cir) { CompoundNBT forgeCaps = ((ItemMetaBridge) itemMeta).bridge$getForgeCaps(); if (forgeCaps != null) { diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/CraftMetaItemMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/CraftMetaItemMixin.java index 70dcecfb..e86d900b 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/CraftMetaItemMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/CraftMetaItemMixin.java @@ -143,8 +143,8 @@ public class CraftMetaItemMixin implements ItemMetaBridge { } } - @Inject(method = "*", locals = LocalCapture.CAPTURE_FAILSOFT, at = @At("RETURN")) - private void arclight$copyForgeCaps(CallbackInfo ci, CraftMetaItem meta) { + @Inject(method = "*", at = @At("RETURN")) + private void arclight$copyForgeCaps( CraftMetaItem meta, CallbackInfo ci) { CompoundNBT forgeCaps = ((ItemMetaBridge) meta).bridge$getForgeCaps(); if (forgeCaps != null) { this.forgeCaps = forgeCaps.copy(); diff --git a/arclight-common/src/main/resources/mixins.arclight.bukkit.json b/arclight-common/src/main/resources/mixins.arclight.bukkit.json index 0ca63f0a..484cfa96 100644 --- a/arclight-common/src/main/resources/mixins.arclight.bukkit.json +++ b/arclight-common/src/main/resources/mixins.arclight.bukkit.json @@ -6,6 +6,9 @@ "refmap": "mixins.arclight.refmap.json", "setSourceFile": true, "plugin": "io.izzel.arclight.common.mod.ArclightMixinPlugin", + "injectors": { + "defaultRequire": 1 + }, "mixins": [ "BukkitCommandWrapperMixin", "ColouredConsoleSenderMixin",