WolfyScript/CustomCrafting-Wiki

Compatibility with ItemsAdder breaks again

Xiao-MoMi opened this issue · 12 comments

customcrafting-spigot-2.16.0.0-beta0
wolfyutilities-1.7.3.0

There's something wrong with my patreon payment. I let my friends Join your patreon and download cc.
It has been two weeks since Cauldron(and campfire) random results don't work. And my server failed to update timely, this time it failed compatibility with ItemsAdder again and most of the recipes are broken except stone cutter and smithing table.
Fortunately I made a backup. :(
I need a quick fix. It's really important because players are waiting. Thanks.

[20:34:22 ERROR]: Could not pass event PrepareItemCraftEvent to ItemsAdder v2.4.12
java.lang.NoClassDefFoundError: me/wolfyscript/customcrafting/recipes/types/CustomRecipe
at dev.lone.itemsadder.Core.j.c.c.a(SourceFile:251) ~[ItemsAdder.jar:?]
at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:40) ~[patched_1.17.1.jar:git-Purpur-1336]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.craftbukkit.v1_17_R1.event.CraftEventFactory.callPreCraftEvent(CraftEventFactory.java:1332) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerWorkbench.a(ContainerWorkbench.java:87) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerWorkbench.lambda$slotsChanged$0(ContainerWorkbench.java:98) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerAccess.lambda$execute$0(ContainerAccess.java:61) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerAccess$2.a(ContainerAccess.java:48) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerAccess.a(ContainerAccess.java:60) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerWorkbench.a(ContainerWorkbench.java:97) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.InventoryCrafting.setItem(InventoryCrafting.java:141) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.Slot.set(Slot.java:61) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.craftbukkit.v1_17_R1.inventory.CraftInventoryView.setItem(CraftInventoryView.java:53) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.Container.b(Container.java:476) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.Container.a(Container.java:371) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2806) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.network.protocol.game.PacketPlayInWindowClick.a(PacketPlayInWindowClick.java:55) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.network.protocol.game.PacketPlayInWindowClick.a(PacketPlayInWindowClick.java:11) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.network.protocol.PlayerConnectionUtils.lambda$ensureRunningOnSameThread$1(PlayerConnectionUtils.java:56) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.util.thread.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:149) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.executeTask(IAsyncTaskHandlerReentrant.java:23) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:1422) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:190) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.util.thread.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:122) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.bf(MinecraftServer.java:1400) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.executeNext(MinecraftServer.java:1393) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.util.thread.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:132) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.sleepForTick(MinecraftServer.java:1369) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1280) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[patched_1.17.1.jar:git-Purpur-1336]
at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.lang.ClassNotFoundException: me.wolfyscript.customcrafting.recipes.types.CustomRecipe
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:148) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:105) ~[patched_1.17.1.jar:git-Purpur-1336]
at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?]
... 34 more

Yeah as I said in the changelog... CustomCrafting didn't have an API really, because I changed a lot.
Next update will have a real API which I won't change or deprecate methods instead of removing so much.

But the class me.wolfyscript.customcrafting.recipes.types.CustomRecipe does exist...
Do you get any errors on start-up?

[21:02:21 INFO]: [WolfyUtilities] Enabling WolfyUtilities v1.7.3.0
[21:02:22 INFO]: [WolfyUtilities] Minecraft version: 1.17.1
[21:02:22 INFO]: [WolfyUtilities] WolfyUtilities version: 1.7.3.0
[21:02:22 INFO]: [WolfyUtilities] Environment: PROD
[21:02:22 INFO]: [WolfyUtilities] Register API references
[21:02:22 INFO]: [WolfyUtilities] Loading stored Custom Items
[21:02:22 INFO]: [WolfyUtilities] Loading Player Data
[21:02:22 INFO]: [WolfyUtilities] Loading Creative Mode Tabs
[21:02:22 INFO]: [WolfyUtilities] Loading Particles
[21:02:22 INFO]: [CustomCrafting] Enabling CustomCrafting v2.16.0.0-beta0
[21:02:22 INFO]: [CustomCrafting] ____ _ _ ____ ___ ____ _ _ ____ ____ ____ ____ ___ _ _ _ ____
[21:02:22 INFO]: [CustomCrafting] | | | [__ | | | |/| | |/ || |___ | | |\ | | __
[21:02:22 INFO]: [CustomCrafting] |___ || ] | || | | | | \ | | | | | | | |__]
[21:02:22 INFO]: [CustomCrafting] v2.16.0.0-beta0 Premium
[21:02:22 INFO]: [CustomCrafting]
[21:02:22 INFO]: [CustomCrafting]
[21:02:22 INFO]: [CustomCrafting] Special thanks to my Patrons for supporting this project:
[21:02:22 INFO]: [CustomCrafting] | Nat R | Thomas Texier
[21:02:22 INFO]: [CustomCrafting] | Junye Zhou | Apprehentice
[21:02:22 INFO]: [CustomCrafting] | Alex | gizmonster
[21:02:22 INFO]: [CustomCrafting] | Alexander | The Hound Brothers
[21:02:22 INFO]: [CustomCrafting] | Xwdit | Pixelcraftian
[21:02:22 INFO]: [CustomCrafting] | Leo | DTNTW
[21:02:22 INFO]: [CustomCrafting] | Mr_Mint_ | Matchman
[21:02:22 INFO]: [CustomCrafting] | Hugo Hronec | Marcin Pootski
[21:02:22 INFO]: [CustomCrafting] | Sundial Shark | Venterok
[21:02:22 INFO]: [CustomCrafting] | XiaoMoMi | yossy_zip
[21:02:22 INFO]: [CustomCrafting] | Jiří Hudský | Mithran
[21:02:22 INFO]: [CustomCrafting] | Qsycho | GD4aming 4
[21:02:22 INFO]: [CustomCrafting] | Advanced-Kind | Filip Oreško
[21:02:22 INFO]: [CustomCrafting] ------------------------------------------------------------------------
[21:02:22 INFO]: [CustomCrafting] Loaded fallback language "en_US" v5.0.0 translated by WolfyScript
[21:02:22 INFO]: [CustomCrafting] Loaded active language "en_US" v5.0.0 translated by WolfyScript
[21:02:23 INFO]: [CustomCrafting] ------------------------------------------------------------------------
[21:02:23 INFO]: [CustomCrafting] Detected ItemsAdder! CustomItems and Recipes will be loaded after ItemsAdder is successfully loaded!
[21:02:23 WARN]: [CustomCrafting] "CustomCrafting v2.16.0.0-beta0" has registered a listener for dev.lone.itemsadder.api.Events.ItemsAdderFirstLoadEvent on method "public void me.wolfyscript.customcrafting.listeners.ItemsAdderListener.onLoadComplete(dev.lone.itemsadder.api.Events.ItemsAdderFirstLoadEvent)", but the event is Deprecated. "Server performance will be affected"; please notify the authors [WolfyScript].
[21:02:23 INFO]: [CustomCrafting] Initiating Inventory GUIs
[21:02:23 INFO]: [CustomCrafting] Loading Cauldrons
[21:02:23 INFO]: [CustomCrafting] Registering PlaceHolder
[21:02:23 INFO]: [PlaceholderAPI] Successfully registered expansion: customcrafting
[21:02:23 INFO]: [CustomCrafting] ------------------------------------------------------------------------

[21:02:27 INFO]: [CustomCrafting] - - - - [Local Storage] - - - -
[21:02:27 INFO]: [CustomCrafting] Searching for namespaces...
[21:02:27 INFO]: [CustomCrafting] Namespaces: [block, customcrafting, enchant, enchantment, food, furniture, item, plant, test, xiaomomi]
[21:02:27 INFO]: [CustomCrafting] -
[21:02:27 INFO]: [CustomCrafting] Loading items...
[21:02:27 INFO]: [CustomCrafting] Loading recipes...
[21:02:27 ERROR]: [CustomCrafting] -------------------------------------------------
[21:02:27 ERROR]: [CustomCrafting] Error loading Contents for: enchantment:earth
[21:02:27 ERROR]: [CustomCrafting] Type: cauldron
[21:02:27 ERROR]: [CustomCrafting] Message: Unexpected end-of-input: expected close marker for Object (start marker at [Source: (File); line: 9, column: 17])
at [Source: (File); line: 10, column: 22]
[21:02:27 ERROR]: [CustomCrafting] Please check the config of the recipe.
[21:02:27 ERROR]: [CustomCrafting] For more info enable stacktraces in the config ('data.print_stacktrace')
[21:02:27 ERROR]: [CustomCrafting] -------------------------------------------------
[21:02:27 INFO]: [CustomCrafting]
[21:02:27 INFO]: [CustomCrafting] Indexing Recipe Book...
[21:02:27 INFO]: [CustomCrafting] --------------------------------------------------------------------

Error loading Contents for: enchantment:earth occurs when I'm testing random results. Now most of my recipes are still there but can't be loaded.
image
image

That is an issue of the beta version. I am going to release an update that fixes the loading very soon.
For that enchantment:earth recipe, it seems to be an issue in the file.

However, I'm going to try CC with the latest version of ItemsAdder on my test server.

Ok I just tested it with the latest ItemsAdder 2.4.12 and LoneLibs, etc. and CustomCrafting 2.16.0.0-beta0.

I got no issues and no errors when crafting.

I deleted all the configs and tried to make a recipe and it shows
image
image

When I put item in the workbench. I got errors
image

[21:42:01 ERROR]: Could not pass event PrepareItemCraftEvent to ItemsAdder v2.4.12
java.lang.NoClassDefFoundError: me/wolfyscript/customcrafting/recipes/types/CustomRecipe
at dev.lone.itemsadder.Core.j.c.c.a(SourceFile:251) ~[ItemsAdder.jar:?]
at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:40) ~[patched_1.17.1.jar:git-Purpur-1336]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.craftbukkit.v1_17_R1.event.CraftEventFactory.callPreCraftEvent(CraftEventFactory.java:1332) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerWorkbench.a(ContainerWorkbench.java:87) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerWorkbench.lambda$slotsChanged$0(ContainerWorkbench.java:98) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerAccess.lambda$execute$0(ContainerAccess.java:61) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerAccess$2.a(ContainerAccess.java:48) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerAccess.a(ContainerAccess.java:60) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.ContainerWorkbench.a(ContainerWorkbench.java:97) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.InventoryCrafting.setItem(InventoryCrafting.java:141) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.Slot.set(Slot.java:61) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.Slot.b(Slot.java:146) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.Container.b(Container.java:545) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.world.inventory.Container.a(Container.java:371) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2864) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.network.protocol.game.PacketPlayInWindowClick.a(PacketPlayInWindowClick.java:55) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.network.protocol.game.PacketPlayInWindowClick.a(PacketPlayInWindowClick.java:11) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.network.protocol.PlayerConnectionUtils.lambda$ensureRunningOnSameThread$1(PlayerConnectionUtils.java:56) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.util.thread.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:149) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.executeTask(IAsyncTaskHandlerReentrant.java:23) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:1422) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:190) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.util.thread.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:122) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.bf(MinecraftServer.java:1400) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.executeNext(MinecraftServer.java:1393) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.util.thread.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:132) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.sleepForTick(MinecraftServer.java:1369) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1280) ~[patched_1.17.1.jar:git-Purpur-1336]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[patched_1.17.1.jar:git-Purpur-1336]
at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.lang.ClassNotFoundException: me.wolfyscript.customcrafting.recipes.types.CustomRecipe
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:148) ~[patched_1.17.1.jar:git-Purpur-1336]
at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:105) ~[patched_1.17.1.jar:git-Purpur-1336]
at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?]
... 34 more

image
Put vannilla items in craftingtable it won't report error but IA items will
I think the problem is not "result" because I also got no error when I craft IA items with vanille ingredients
CC can't identify IA items as ingredients. I guess

Oh, ok, I just realized... I did move that class...

It looks like he is using that class for furnace recipes compatibility in ItemsAdder... that's of course something that I changed a lot in the last couple of updates...
Not sure how that can be fixed.
I'll have to talk to LoneDev again and maybe add support for ItemsAdder on my end for furnace recipes.

For now, I recommend you use the stable version and not the beta! So use CustomCrafting 1.7.1.3, while this issue is being resolved!

Got a report from a customer:

- Could not pass event ItemsAdderFirstLoadEvent to CustomCrafting v1.7.1.3
- Caused by: java.lang.NullPointerException: Cannot invoke "me.wolfyscript.customcrafting.utils.recipe_item.Result.isEmpty()" because the return value of "me.wolfyscript.customcrafting.recipes.types.workbench.ShapedCraftRecipe.getResult()" is null
-

Got a report from a customer:

- Could not pass event ItemsAdderFirstLoadEvent to CustomCrafting v1.7.1.3
- Caused by: java.lang.NullPointerException: Cannot invoke "me.wolfyscript.customcrafting.utils.recipe_item.Result.isEmpty()" because the return value of "me.wolfyscript.customcrafting.recipes.types.workbench.ShapedCraftRecipe.getResult()" is null
-

Ok I see... Found the report on my discord server and notified the user. Basically a invalid/missing result item. Version 2.16 no longer loads recipes with invalid content to prevent these issues.

Crafting table works fine with 1.7.1.3, I only get this error when crafting but the recipe works fine.
https://pastebin.com/QJxDdwsE
Recipe: https://pastebin.com/b6hZ7CFm

Also smelting works fine on 1.7.1.3
https://pastebin.com/6c1pk5hV

But this time no error shown.