diff --git a/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/ItemStackParser.java b/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/ItemStackParser.java index 9c530ae1..b857a29c 100644 --- a/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/ItemStackParser.java +++ b/cloud-bukkit/src/main/java/org/incendo/cloud/bukkit/parser/ItemStackParser.java @@ -161,8 +161,11 @@ private static final class ModernParser implements ArgumentParser.FutureArgum CraftBukkitReflection.findMethod(ITEM_INPUT_CLASS, "createItemStack", int.class, boolean.class), CraftBukkitReflection.findMethod(ITEM_INPUT_CLASS, "createItemStack", int.class) ); - private static final Method AS_BUKKIT_COPY_METHOD = CraftBukkitReflection - .needMethod(CRAFT_ITEM_STACK_CLASS, "asBukkitCopy", NMS_ITEM_STACK_CLASS); + private static final Method AS_BUKKIT_STACK_METHOD = CraftBukkitReflection.firstNonNullOrThrow( + () -> "Couldn't find asBukkitCopy or asCraftMirror method on CraftItemStack", + CraftBukkitReflection.findMethod(CRAFT_ITEM_STACK_CLASS, "asBukkitCopy", NMS_ITEM_STACK_CLASS), + CraftBukkitReflection.findMethod(CRAFT_ITEM_STACK_CLASS, "asCraftMirror", NMS_ITEM_STACK_CLASS) + ); private static final Field ITEM_FIELD = CraftBukkitReflection.firstNonNullOrThrow( () -> "Couldn't find item field on ItemInput", CraftBukkitReflection.findField(ITEM_INPUT_CLASS, "b"), @@ -278,7 +281,7 @@ public boolean hasExtraData() { final Object nmsItemStack = CREATE_ITEM_STACK_METHOD.getParameterCount() == 1 ? CREATE_ITEM_STACK_METHOD.invoke(this.itemInput, stackSize) : CREATE_ITEM_STACK_METHOD.invoke(this.itemInput, stackSize, true); - return (ItemStack) AS_BUKKIT_COPY_METHOD.invoke( + return (ItemStack) AS_BUKKIT_STACK_METHOD.invoke( null, nmsItemStack );