Every Compat (Wood Good)

Every Compat (Wood Good)

28M Downloads

[๐Ÿž]: Woodworks Incompatibility

Closed this issue ยท 26 comments

commented

Code of Conduct

  • Always check you are using the latest version of the mods and its dependencies
  • Remove mod that enhances Minecraft: Optifine, Sodium, others. The issue still persists.
  • If you are unsure which mod is the culprit.
    Disable all of your mods and enable them 1-2 mods each time to isolate the culprit
  • Confirm that there is no existing issue with a similar description submitted in the list of issues.

Version - Loader (DO NOT FORGET TO SELECT THE CORRECT VERSION)

1.20.1 - FORGE

EveryCompat Version

everycompat-1.20-2.8.1-forge

Moonlight Lib Version

moonlight-1.20-2.14.1-forge

Issue with mods

Woodworks - woodworks-1.20.1-3.0.2

Issue Detail

In the main modpack I am making, I am able to launch the game and play in a world, however I noticed that all recipes from EC are missing. I made a separate profile to find what mod was causing this and I narrowed it down to Woodworks. Now for some reason when I only have the required mods to replicate this, the game crashes on launch. The first log below is when it crashes on launch and the second is when recipes are missing.

OPTIONAL: Latest.log | Crash-report Attachment

https://mclo.gs/PTfD1se

https://mclo.gs/xsLgFoD

OPTIONAL: To Produce

No response

commented

try updating forge

commented

try Every Compat v2.8.2 and let me know if it resolved the issue or not. It's on Curseforge (CF). will take a while to get approval.

commented

My forge version is 47.4.0 is there a newer version than that? I don't see one in the curseforge app. Updating forge fixed the crash on startup, that profile was using 47.3.0.

I updated to EC 2.8.2 but the problem is still present on my main profile. I was however able to craft things with woodworks and EC on the bare bones profile. So it looks like there is a third factor causing issues?

commented

going to investigate this to find out what's going on. I see the latest version for Woodworks is v3.0.2

looks like there are some changes to the recipes stuff

commented

Okay thanks! LMK if you need any more logs that might help.

commented

Found out why... The issue is on Woodworks' side.

[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:warped_fence_gate_from_warped_stems_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:warped_stairs_from_warped_stems_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:mangrove_ladder_from_mangrove_planks_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:dark_oak_button_from_dark_oak_planks_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:birch_stairs_from_birch_planks_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:mangrove_boards_from_mangrove_logs_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:acacia_fence_from_acacia_planks_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:crimson_fence_gate_from_crimson_stems_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:cherry_slab_from_cherry_logs_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:crimson_slab_from_crimson_planks_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:dark_oak_stairs_from_dark_oak_logs_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:jungle_fence_from_jungle_logs_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:acacia_button_from_acacia_logs_sawing
[22:05:14] [Render thread/WARN] [minecraft/ClientRecipeBook]: Unknown recipe category: woodworks:sawing/woodworks:jungle_fence_from_jungle_planks_sawing

I've disabled the recipe generation on EC side to not create recipes like above. You need to report that to DEV. The ResourceLocation has 2 namespace and 2 :

woodworks:sawing/ >< woodworks:recipe_name

EDIT: I recommend downgrade Woodworks version to 3.0.0 or 3.0.1. EC is using Woodworks v3.0.0 and have no problem. Use either 1 of 2 versions except v3.0.2 until the problem is fixed.

commented

FIXED in v2.8.2


REASON: the FORGE version is v47.3.0 or newer before v47.4.0. The method, ResourceLocation.parse(...) doesn't exist in the older version. The older method is currently restored in v2.8.2 for now.

commented

Sorry I'm not super familiar with GitHub, should I post this same issue on Woodworks page or is there a way to link this thread to them?

commented

You can use this: [EveryCompat Issue#916](https://github.com/MehVahdJukaar/WoodGood/issues/916) & that will refer anyone to here, the issue related to Every Compat.

I recommend you to create a clear description of what's the issue, so the DEV can be aware of what's the problem. you can copy the log above where the sawing recipes are unrecognized.

commented

I have some new confusing information to bring to the table. The recipes exist using my test profile with Woodworks v3.0.2 and the newest EC version. However, when I try on my main profile using any Woodworks version including 3.0.0 and 3.0.1 the recipes are all missing. The thing is the recipes exist as soon as I disable Woodworks, and can make them disappear as soon as I enable woodworks... but again, Woodworks does seem to work with EC as evident from my test profile. A REAL CATCH 22. This leads me to believe there is some other culprit interacting with woodworks that is compounding the issue...

commented

Dang. that's not good. You'll need to find the culprit mod that may break the recipes coming from Woodworks. It's not confusing for me, this is not the first time, a mod may have break the recipe system. In fact, there are 2 mods being marked incompatible for that reason.

Let me know if you found the culprit mod, i can run a test on my side.

commented

yah im doing another brute force of adding mods to the pack to see what stops the recipes from working with woodworks installed

commented

Incompatibility with Every Compat (Wood Good), I recommend you to change this name to describe the issue. like "Broken Sawing Recipes".

commented

Seems like its a mod called Infinity Buttons. infinitybuttons-1.20.1-4.0.4

On its Curseforge page at the bottom it lists EC as a dependency so this isn't entirely strange.

EDIT: I double checked my main pack and Woodworks works properly with EC when Infinity Buttons is disabled.

commented

Infinity Buttons dev here, i can confirm this bug is happening when our mod is enabled. However, i will have to figure out why as the error is about the WoodworksModule class

[10:16:51] [pool-7-thread-2/ERROR]:
An error occurred while trying to generate dynamic assets for Everycomp Generated Pack:
java.lang.RuntimeException: Task failed
at net.mehvahdjukaar.moonlight.api.resources.pack.DynResourceGenerator.regenerateDynamicAssets(DynResourceGenerator.java:104) ~[moonlight-1.20-2.14.1-forge.jar%23168!/:?]
at net.mehvahdjukaar.every_compat.dynamicpack.ServerDynamicResourcesHandler.regenerateDynamicAssets(ServerDynamicResourcesHandler.java:70) ~[everycomp-1.20-2.8.5-forge.jar%23166!/:?]
at net.mehvahdjukaar.moonlight.api.resources.pack.DynResourceGenerator.reloadResources(DynResourceGenerator.java:189) ~[moonlight-1.20-2.14.1-forge.jar%23168!/:?]
at net.mehvahdjukaar.moonlight.api.resources.pack.DynResourceGenerator.onEarlyReload(DynResourceGenerator.java:144) ~[moonlight-1.20-2.14.1-forge.jar%23168!/:?]
at net.mehvahdjukaar.moonlight.api.resources.pack.DynResourceGenerator.lambda$static$7(DynResourceGenerator.java:270) ~[moonlight-1.20-2.14.1-forge.jar%23168!/:?]
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonArray.get(int)" because the return value of "com.google.gson.JsonObject.getAsJsonArray(String)" is null
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
... 3 more
Caused by: java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonArray.get(int)" because the return value of "com.google.gson.JsonObject.getAsJsonArray(String)" is null
at net.mehvahdjukaar.every_compat.modules.forge.abnormal.WoodworksModule.sawmillRecipe(WoodworksModule.java:323) ~[everycomp-1.20-2.8.5-forge.jar%23166!/:?]
at net.mehvahdjukaar.every_compat.modules.forge.abnormal.WoodworksModule.createRecipeIfNotNull(WoodworksModule.java:305) ~[everycomp-1.20-2.8.5-forge.jar%23166!/:?]
at net.mehvahdjukaar.every_compat.modules.forge.abnormal.WoodworksModule.lambda$addDynamicServerResources$22(WoodworksModule.java:263) ~[everycomp-1.20-2.8.5-forge.jar%23166!/:?]
at java.util.HashMap.forEach(HashMap.java:1421) ~[?:?]
at net.mehvahdjukaar.every_compat.modules.forge.abnormal.WoodworksModule.lambda$addDynamicServerResources$23(WoodworksModule.java:250) ~[everycomp-1.20-2.8.5-forge.jar%23166!/:?]
at net.mehvahdjukaar.every_compat.dynamicpack.ServerDynamicResourcesHandler.lambda$regenerateDynamicAssets$1(ServerDynamicResourcesHandler.java:57) ~[everycomp-1.20-2.8.5-forge.jar%23166!/:?]
at net.mehvahdjukaar.moonlight.api.resources.pack.DynResourceGenerator.lambda$regenerateDynamicAssets$0(DynResourceGenerator.java:77) ~[moonlight-1.20-2.14.1-forge.jar%23168!/:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 3 more
commented

Hmm. I think i know why. I need to do some debugging on my side.

UPDATE:

ok i see what's going on. My guess was half-correct. but there is a recipe from Woodworks:
oak_button_from_oak_logs_sawing.json,

@curryducker , Does your mod replace the recipe ๐Ÿ‘†๐Ÿป??

commented

Yes it does, our mod changes the amount of buttons in the recipe's output

commented

Can i have the recipe that replaced the recipe from Woodworks. so i can take a look?

commented

just from logs or also from planks?

commented

both.

commented

oak_button_from_oak_planks_sawing.json

{
  "type": "woodworks:sawmill",
  "ingredient": {
    "item": "minecraft:oak_planks"
  },
  "result": "minecraft:oak_button",
  "count": 6,
  "conditions": [
    {
      "type": "forge:mod_loaded",
      "modid": "woodworks"
    },
    {
      "type": "woodworks:config",
      "value": "sawmill"
    }
  ]
}

oak_button_from_oak_logs_sawing.json

{
  "type": "woodworks:sawmill",
  "ingredient": {
    "tag": "minecraft:oak_logs"
  },
  "result": "minecraft:oak_button",
  "count": 24,
  "conditions": [
    {
      "type": "forge:mod_loaded",
      "modid": "woodworks"
    },
    {
      "type": "woodworks:config",
      "value": "sawmill"
    }
  ]
}
commented

~~so that's why EC cannot find the recipe. because the recipe from Woodworks wasn't included. ~~

ok i understand now.

this is what it looks like:

{
  "type": "forge:conditional",
  "recipes": [
    {
      "conditions": [
        {
          "type": "woodworks:config",
          "value": "sawmill"
        }
      ],
      "recipe": {
        "type": "woodworks:sawmill",
        "count": 4,
        "ingredient": {
          "tag": "minecraft:oak_logs"
        },
        "result": "minecraft:oak_button"
      }
    }
  ]
}

the form of JSON is different from above. The issue is this:
JsonObject getRecipe = recipe.getAsJsonArray("recipes") .get(0).getAsJsonObject().getAsJsonObject("recipe"); cannot get the required value.

commented

Makes sense, i guess fixing this in my recipe fixes the bug?

commented

Yes.

commented

Image
Fixed it, i just have to fix a few more bugs in my mod before updating but i hope it won't take too long

commented

FIXED in Woodworks' newer version than v3.0.2