Closed foul-fortune-feline closed 1 year ago
I have to resist the urge to write my own BlockState implementation.
Oh and, it's not air
, it's a charred shelf block that fail to copy the settings, and since it's not registered yet, well, it returns air for the identifier.
Nvm, I fixed it on IW's side
How so?
Wait I thought I had lol
How so?
A try catch and I think it actually did fix it lol
A. Okay so it loads now but placing one of the items crashes the game
I'm not sure this is fixable on IW's side.
The way it seems to work is it wants some properties to be a part of the block for which it gets its light provider. The ultimate issue is I don't copy those properties, and I'm not a fan of that for the wooden blocks.
So when MC is trying to construct the blockstate cache it executes the light provider from IW's on my shelf block, and crash due to it expecting the property.
Possible fixes is for me to discard any light providers.
Works now!
So basically all I did was try catch in immersive weathering, and if it tries to throw an IllegalArgumentException it instead returns that it's not smoldering + not to emit any light
Not a big fan of the try catch :/
Using a contains
on the BlockState properties would be cleaner.
You're right! I did that thing
Works like a charm now~
Might be a good idea to run the wood thing later in the startup process if possible? Idk haha I only have so much experience modding and less with compatibility stuff
No, this is not due to a "when it runs" thing.
This is just the mod blindly copying another block's settings without copying the properties too.
I guess there is still one (minor) problem which is that the wood type doesn't yet have a name in the lang file but that's somewhat easily fixed
No, this is not due to a "when it runs" thing.
This is just the mod blindly copying another block's settings without copying the properties too.
ic
But yea everything renders properly now
Seems broken now. Versions:
| 267 | Aurora's Decorations | aurorasdeco | 1.0.0-beta.8+1.19
| 42 | Immersive Weathering | immersive_weathering | 1.19.2-1.1.1
| 120 | Moonlight | moonlight | 1.19.2-2.0.40
Exception:
java.lang.RuntimeException: Could not execute entrypoint stage 'client' due to errors, provided by 'moonlight'!
at Not Enough Crashes deobfuscated stack trace.(1.19+build.2)
at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke0$2(EntrypointUtils.java:63)
at org.quiltmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:61)
at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invokeContainer(EntrypointUtils.java:46)
at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:33)
at org.quiltmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:53)
at net.minecraft.client.MinecraftClient.<init>(MinecraftClient:459)
at net.minecraft.client.main.Main.method_44604(Main:205)
at net.minecraft.client.main.Main.main(Main:51)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke(Method.java:578)
at org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:423)
at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:76)
at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:24)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke(Method.java:578)
at org.prismlauncher.impl.OneSixLauncher.invokeMain(OneSixLauncher.java:104)
at org.prismlauncher.impl.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:176)
at org.prismlauncher.impl.OneSixLauncher.launch(OneSixLauncher.java:186)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:144)
at org.prismlauncher.EntryPoint.main(EntryPoint.java:74)
Caused by: java.lang.IllegalArgumentException: Cannot get property class_2746{name=smoldering, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in Block{minecraft:air}
at net.minecraft.state.State.get(State:98)
at com.ordana.immersive_weathering.reg.ModBlocks.lambda$litLightLevel$1(ModBlocks.java:88)
at net.minecraft.block.AbstractBlock$AbstractBlockState.<init>(AbstractBlock:691)
at net.minecraft.block.BlockState.<init>(BlockState:17)
at net.minecraft.state.StateManager.method_28484(StateManager:61)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1006)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1006)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1006)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at net.minecraft.state.StateManager.<init>(StateManager:59)
at net.minecraft.state.StateManager$Builder.build(StateManager:157)
at net.minecraft.block.Block.<init>(Block:187)
at net.minecraft.block.BlockWithEntity.<init>(BlockWithEntity:15)
at dev.lambdaurora.aurorasdeco.block.ShelfBlock.<init>(ShelfBlock.java:81)
at dev.lambdaurora.aurorasdeco.registry.AurorasDecoRegistry.lambda$init$21(AurorasDecoRegistry.java:746)
at dev.lambdaurora.aurorasdeco.registry.WoodType.onWoodTypeModified(WoodType.java:178)
at dev.lambdaurora.aurorasdeco.registry.WoodType.addComponent(WoodType.java:169)
at dev.lambdaurora.aurorasdeco.registry.WoodType.onBlockRegister(WoodType.java:231)
at dev.lambdaurora.aurorasdeco.registry.AurorasDecoRegistry.lambda$init$16(AurorasDecoRegistry.java:677)
at org.quiltmc.qsl.registry.impl.event.RegistryMonitorImpl.lambda$forUpcoming$1(RegistryMonitorImpl.java:78)
at net.minecraft.util.registry.Registry.md4c6836$lambda$new$0$4(Registry:3153)
at net.minecraft.util.registry.SimpleRegistry.handler$hcg000$quilt$invokeEntryAddEvent(SimpleRegistry:2612)
at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:130)
at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:87)
at net.minecraft.util.registry.DefaultedRegistry.set(DefaultedRegistry:24)
at net.minecraft.util.registry.SimpleRegistry.add(SimpleRegistry:135)
at net.mehvahdjukaar.moonlight.api.platform.fabric.RegistryQueue$EntryWrapper.initialize(RegistryQueue.java:67)
at java.util.ArrayList.forEach(ArrayList.java:1511)
at net.mehvahdjukaar.moonlight.api.platform.fabric.RegistryQueue.initializeEntries(RegistryQueue.java:34)
at java.util.LinkedHashMap$LinkedValues.forEach(LinkedHashMap.java:655)
at net.mehvahdjukaar.moonlight.api.platform.fabric.RegHelperImpl.registerEntries(RegHelperImpl.java:65)
at net.mehvahdjukaar.moonlight.fabric.MoonlightFabric.commonSetup(MoonlightFabric.java:38)
at net.mehvahdjukaar.moonlight.fabric.MoonlightFabricClient.onInitializeClient(MoonlightFabricClient.java:12)
at org.quiltmc.loader.impl.game.minecraft.Hooks.lambda$startClient$1(Hooks.java:53)
at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke$0(EntrypointUtils.java:33)
at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:59)
... 18 more
Can confirm. @LambdAurora
From what I can tell aurora's decorations' wood type registry attempts to read the light level of charred wood, which is dependent on the individual instance, and as a result crashes the game when it passes
air
.Potential solutions: