Enforce bukkit mixin injection

This commit is contained in:
IzzelAliz 2021-02-28 18:16:13 +08:00
parent 36d01d1a16
commit 1d797fdfb8
3 changed files with 7 additions and 3 deletions

View File

@ -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<Boolean> cir) { private static void arclight$setCaps(ItemStack item, ItemMeta itemMeta, CallbackInfoReturnable<Boolean> cir) {
CompoundNBT forgeCaps = ((ItemMetaBridge) itemMeta).bridge$getForgeCaps(); CompoundNBT forgeCaps = ((ItemMetaBridge) itemMeta).bridge$getForgeCaps();
if (forgeCaps != null) { if (forgeCaps != null) {

View File

@ -143,8 +143,8 @@ public class CraftMetaItemMixin implements ItemMetaBridge {
} }
} }
@Inject(method = "<init>*", locals = LocalCapture.CAPTURE_FAILSOFT, at = @At("RETURN")) @Inject(method = "<init>*", at = @At("RETURN"))
private void arclight$copyForgeCaps(CallbackInfo ci, CraftMetaItem meta) { private void arclight$copyForgeCaps( CraftMetaItem meta, CallbackInfo ci) {
CompoundNBT forgeCaps = ((ItemMetaBridge) meta).bridge$getForgeCaps(); CompoundNBT forgeCaps = ((ItemMetaBridge) meta).bridge$getForgeCaps();
if (forgeCaps != null) { if (forgeCaps != null) {
this.forgeCaps = forgeCaps.copy(); this.forgeCaps = forgeCaps.copy();

View File

@ -6,6 +6,9 @@
"refmap": "mixins.arclight.refmap.json", "refmap": "mixins.arclight.refmap.json",
"setSourceFile": true, "setSourceFile": true,
"plugin": "io.izzel.arclight.common.mod.ArclightMixinPlugin", "plugin": "io.izzel.arclight.common.mod.ArclightMixinPlugin",
"injectors": {
"defaultRequire": 1
},
"mixins": [ "mixins": [
"BukkitCommandWrapperMixin", "BukkitCommandWrapperMixin",
"ColouredConsoleSenderMixin", "ColouredConsoleSenderMixin",