Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[SOLVED] [1.15.2] Recipe JSON isn't loading


Blazer Nitrox
 Share

Recommended Posts

Hello, wonderful modding community!

 

Today, I bring you a tale of such woe that I must insist you be firmly seated before I can begin - otherwise, your sympathetic despair may cause you to collapse.

 

Well, it's really not that bad (aside from spending nigh on 12 hours trying to get a working JDK for use with Forge because I'm a masochist that doesn't want to give Oracle my info).

What it boils down to is that for some unknown reason Forge isn't recognizing my recipe JSON.

Now would be a good time to note that I haven't touched Forge since 1.12.2, and I'm one of those poor fools who was taught to manually register everything (via GameRegistry.register) and to put everything into proxies. I'm now taking the time to re-learn how to write mods *properly*. Problem is, one of the things that changed out from under me was recipe registering. Supposedly, you just create a recipe file (in JSON format) with the type of recipe, recipe pattern (like the old registering pattern), key (also like the old registering key), and result.

I've already gone and created the associated item and block, and triple-checked the registry IDs.

 

assets/agab/recipes/example_ore.json (the recipe file):

Spoiler

{
	"type": "minecraft:crafting_shaped",
	"pattern": [
		"xxx",
		"xxx",
		"xxx"
	],
	"key": {
		"x": {
			"item": "agab:example_item",
			"data": 0
		}
	},
	"result": {
		"item": "agab:example_ore",
		"count": 1,
		"data": 0
	}
}

 

((don't ask about the MODID, it's not important other than that it's consistent))

 

I can confirm that the item and the block are both appearing in the game, but for some unknown reason this JSON isn't loading, and I can't find any mention of it in the log.
For reference, I'm using Forge 1.15.2-31.1.0, along with Eclipse 2019-12.
Relating to that statement about being a masochist, I'm using AdoptOpenJDK ver. 1.8.0_242-b08 with the HotSpot JVM ver. 25.242-b08 on a 64-bit machine (that last bit was ~2 of the 12 hours lol).

I'd include a pastebin for debug.log, but uh... apparently it's like 3.3 meg??

Edited by Blazer Nitrox
fix title to represent the state of the question
Link to comment
Share on other sites

6 hours ago, Blazer Nitrox said:

assets/agab/recipes/example_ore.json

Recipes go in data, not assets :)

Same for loot tables, and I forget if there's anything else, check the vanilla stuff and see what they put in there :)

 

edit: dug this link out, has some good info on a lot of the changes since 1.12: https://gist.github.com/williewillus/353c872bcf1a6ace9921189f6100d09a

Edited by Ugdhar
added update primer link
Link to comment
Share on other sites

4 hours ago, Ugdhar said:

Recipes go in data, not assets :)

Hunh, well I'll be. It also turned out that I didn't need the `data` fields (which I suspected but couldn't prove).
That's interesting... The docs say it should be `./assets/<modid>/recipes`. I assume that's one of the things that hasn't been updated yet, though.

 

Quote

edit: dug this link out, has some good info on a lot of the changes since 1.12: https://gist.github.com/williewillus/353c872bcf1a6ace9921189f6100d09a

Ah, very very nice! That'll be much appreciated. Thanks for your help, mate!

Link to comment
Share on other sites

16 hours ago, Blazer Nitrox said:

The docs say it should be `./assets/<modid>/recipes`

That’s the way it was in 1.12.2, it changed in 1.13

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

19 hours ago, Blazer Nitrox said:

Hunh, well I'll be. It also turned out that I didn't need the `data` fields (which I suspected but couldn't prove).

If you need proof, look at ShapedRecipe#deserializeItem(), where the "data" field is explicitly disallowed.

 

This is due to the Flattening: item and block data is no longer a thing as of Minecraft 1.13 (which is great).  See https://gist.github.com/williewillus/353c872bcf1a6ace9921189f6100d09a#whats-the-deal-with-metadata

Edited by desht
Link to comment
Share on other sites

6 hours ago, desht said:

If you need proof, look at ShapedRecipe#deserializeItem(), where the "data" field is explicitly disallowed.

 

This is due to the Flattening: item and block data is no longer a thing as of Minecraft 1.13 (which is great).  See https://gist.github.com/williewillus/353c872bcf1a6ace9921189f6100d09a#whats-the-deal-with-metadata

Yeah, I had noticed that when I was reading through his document. I gotta admit, part of me is sad to see magic metadata numbers go, if only for nostalgia's sake. On the other hand, I would much rather avoid magic numbers entirely.

 

9 hours ago, Cadiboo said:

That’s the way it was in 1.12.2, it changed in 1.13

Yeah, I'm loving the changes you guys made so far. Now that I'm getting used to it again everything feels a lot... I dunno, cleaner? It just seems like a much nicer experience than it used to be

 

Oh, I suppose I should mark this solved now lol

Edited by Blazer Nitrox
Link to comment
Share on other sites

3 hours ago, Blazer Nitrox said:

Yeah, I'm loving the changes you guys made so far. Now that I'm getting used to it again everything feels a lot... I dunno, cleaner? It just seems like a much nicer experience than it used to be

It was both Mojang and Forge that made these changes but I quite agree about hot it’s cleaner.

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Yes, I know. There is a WorldEdit mod, I need to get data from its channel for my mod on the client. I can leave the mod only on the server and register the WorldEdit channel. But I am testing the mod in the ide and at startup the WorldEdit channel is registered on both sides, which prevents the mod from launching
    • I updated my codes. What is the problem now?
    • ---- Minecraft Crash Report ---- // Hey, that tickles! Hehehe! Time: 9/28/21, 5:37 PM Description: Mod loading error has occurred java.lang.Exception: Mod Loading has failed     at net.minecraftforge.fmllegacy.CrashReportExtender.dumpModLoadingCrashReport(CrashReportExtender.java:69) ~[forge-1.17.1-37.0.0-universal.jar%2356!:?] {re:classloading}     at net.minecraftforge.fmlclient.ClientModLoader.completeModLoading(ClientModLoader.java:193) ~[forge-1.17.1-37.0.0-universal.jar%2356!:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.lambda$new$1(Minecraft.java:551) ~[client-1.17.1-20210706.113038-srg.jar%2352!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.Util.m_137521_(Util.java:361) ~[client-1.17.1-20210706.113038-srg.jar%2352!:?] {re:classloading}     at net.minecraft.client.Minecraft.lambda$new$2(Minecraft.java:545) ~[client-1.17.1-20210706.113038-srg.jar%2352!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.LoadingOverlay.m_6305_(LoadingOverlay.java:135) ~[client-1.17.1-20210706.113038-srg.jar%2352!:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:873) ~[client-1.17.1-20210706.113038-srg.jar%2352!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1035) ~[client-1.17.1-20210706.113038-srg.jar%2352!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:655) ~[client-1.17.1-20210706.113038-srg.jar%2352!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:186) ~[client-1.17.1-20210706.113038-srg.jar%2352!:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:45) ~[fmlloader-1.17.1-37.0.0.jar%2321!:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:84) [bootstraplauncher-0.1.15.jar:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at net.minecraftforge.versions.forge.ForgeVersion.<clinit>(ForgeVersion.java:48) ~[forge-1.17.1-37.0.0-universal.jar%2356!:?] {re:classloading} -- MOD forge -- Details:     Caused by 0: java.lang.reflect.InvocationTargetException         at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] {}         at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78) ~[?:?] {}         at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] {}         at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {}         at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?] {}         at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:81) ~[javafmllanguage-1.17.1-37.0.0.jar%2354!:?] {}         at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:120) ~[fmlcore-1.17.1-37.0.0.jar%2353!:?] {}         at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1800) ~[?:?] {}         at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1792) ~[?:?] {}         at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295) ~[?:?] {}         at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) ~[?:?] {}         at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) ~[?:?] {}         at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) ~[?:?] {}         at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) ~[?:?] {}     Caused by 1: java.lang.ExceptionInInitializerError         at net.minecraftforge.common.ForgeMod.<init>(ForgeMod.java:136) ~[forge-1.17.1-37.0.0-universal.jar%2356!:?] {re:classloading}         at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] {}         at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78) ~[?:?] {}         at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] {}         at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {}         at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?] {}         at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:81) ~[javafmllanguage-1.17.1-37.0.0.jar%2354!:?] {}         at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:120) ~[fmlcore-1.17.1-37.0.0.jar%2353!:?] {}         at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1800) ~[?:?] {}         at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1792) ~[?:?] {}         at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295) ~[?:?] {}         at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) ~[?:?] {}         at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) ~[?:?] {}         at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) ~[?:?] {}         at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) ~[?:?] {}     Mod File: forge-1.17.1-37.0.0-universal.jar     Failure message: Forge (forge) has failed to load correctly         java.lang.reflect.InvocationTargetException: null     Mod Version: 37.0.0     Mod Issue URL: http://www.minecraftforge.net/     Exception message: java.lang.RuntimeException: Missing forge spec, cannot continue Stacktrace:     at net.minecraftforge.versions.forge.ForgeVersion.<clinit>(ForgeVersion.java:48) ~[forge-1.17.1-37.0.0-universal.jar%2356!:?] {re:classloading}     at net.minecraftforge.common.ForgeMod.<init>(ForgeMod.java:136) ~[forge-1.17.1-37.0.0-universal.jar%2356!:?] {re:classloading}     at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78) ~[?:?] {}     at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] {}     at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {}     at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?] {}     at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:81) ~[javafmllanguage-1.17.1-37.0.0.jar%2354!:?] {}     at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:120) ~[fmlcore-1.17.1-37.0.0.jar%2353!:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1800) ~[?:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1792) ~[?:?] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295) ~[?:?] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) ~[?:?] {}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) ~[?:?] {} -- System Details -- Details:     Minecraft Version: 1.17.1     Minecraft Version ID: 1.17.1     Operating System: Windows 10 (amd64) version 10.0     Java Version: 16.0.1, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 875057712 bytes (834 MiB) / 2013265920 bytes (1920 MiB) up to 2147483648 bytes (2048 MiB)     CPUs: 16     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 7 5800H with Radeon Graphics              Identifier: AuthenticAMD Family 25 Model 80 Stepping 0     Microarchitecture: Zen 3     Frequency (GHz): 3.19     Number of physical packages: 1     Number of physical CPUs: 8     Number of logical CPUs: 16     Graphics card #0 name: NVIDIA GeForce RTX 3060 Laptop GPU     Graphics card #0 vendor: NVIDIA (0x10de)     Graphics card #0 VRAM (MB): 4095.00     Graphics card #0 deviceId: 0x2560     Graphics card #0 versionInfo: DriverVersion=30.0.14.7212     Graphics card #1 name: AMD Radeon(TM) Graphics     Graphics card #1 vendor: Advanced Micro Devices, Inc. (0x1002)     Graphics card #1 VRAM (MB): 512.00     Graphics card #1 deviceId: 0x1638     Graphics card #1 versionInfo: DriverVersion=27.20.14040.14001     Memory slot #0 capacity (MB): 8192.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Memory slot #1 capacity (MB): 8192.00     Memory slot #1 clockSpeed (GHz): 3.20     Memory slot #1 type: DDR4     Virtual memory max (MB): 20779.76     Virtual memory used (MB): 17684.32     Swap memory total (MB): 5059.52     Swap memory used (MB): 393.09     JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     ModLauncher: 9.0.7+91+master.8569cdf     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:           eventbus PLUGINSERVICE           object_holder_definalize PLUGINSERVICE           runtime_enum_extender PLUGINSERVICE           capability_inject_definalize PLUGINSERVICE           accesstransformer PLUGINSERVICE           runtimedistcleaner PLUGINSERVICE           fml TRANSFORMATIONSERVICE      FML Language Providers:          minecraft@1.0         javafml@null     Mod List:          client-1.17.1-20210706.113038-srg.jar             |Minecraft                     |minecraft                     |1.17.1              |COMMON_SET|Manifest: NOSIGNATURE         forge-1.17.1-37.0.0-universal.jar                 |Forge                         |forge                         |37.0.0              |ERROR     |Manifest: 22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90
    • You must pass your ModID to @EventBusSubscriber unless it is on your @Mod class. Is the event called? Does it do the correct thing?
    • it worked, thank you so much
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.