Lightning-64 / Tide

A Minecraft fishing mod
Other
1 stars 0 forks source link

Blocks generated by other mods lose tags with Tide enabled #10

Closed Advaera closed 5 hours ago

Advaera commented 8 hours ago

Weird issue, and there might not be anything that can be done about it. I'm running MC 1.21.1 Fabric 0.16.5 Tide 1.3.2

I also have Excavated Variants 4.3.1 and whenever I have Tide enabled any of the ore blocks generated by Excavated Variants have no tags. I checked the tags using Crafttweaker and use the "/ct hand" command while holding a generated block. The blocks not having tags is having issues like they can't be mined with tools that they should be able to be mined with.

I know compatibility issues between mods is a finicky area, but I just thought I'd check and see if anyone here might have any ideas about what might be causing that.

Thanks!

Lightning-64 commented 8 hours ago

That's really strange, I've never seen anything like that before! I personally have no idea why this could be happening. I checked the "mineable" tags to see if there was anything strange going on there, but there doesn't seem to be.

Do you know if this only happens on fabric 1.21.1? (I wasn't able to replicate the bug so I can't test this)

Advaera commented 6 hours ago

It is a weird one for sure! But thank you so much for taking a look at it!

I was able to replicate it in 1.21 as well as 1.21.1

I created a profile with only these mods: Cloth Config API CraftTweaker Dynamic Asset Generator Excavated Variants Fabric API Faux Custom Entity Data Tide

With Tide disabled the blocks from Excavated Variants are tagged, but as soon as I add Tide to the pack and check the blocks no longer have tags.

Here's a clip from the log where it looks like it starts having a problem:

[12:01:24] [Render thread/WARN]: Shader rendertype_entity_translucent_emissive could not find sampler named Sampler2 in the specified shader program. [12:01:27] [Render thread/INFO]: Found new data pack tide, loading it automatically [12:01:27] [Render thread/ERROR]: Issue setting up PathAwareInputStreamSource: java.lang.NullPointerException: null at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715) ~[?:?] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?] at dev.lukebemish.excavatedvariants.impl.MiningLevelTagHolder.getMiningLevels(MiningLevelTagHolder.java:35) ~[excavatedvariants-4.3.0-fabric.jar:?] at dev.lukebemish.excavatedvariants.impl.MiningLevelTagHolder.apply(MiningLevelTagHolder.java:42) ~[excavatedvariants-4.3.0-fabric.jar:?] at dev.lukebemish.excavatedvariants.impl.MiningLevelTagHolder.apply(MiningLevelTagHolder.java:28) ~[excavatedvariants-4.3.0-fabric.jar:?] at dev.lukebemish.dynamicassetgenerator.api.sources.TagSupplier$TagBakery.lambda$checkTags$9(TagSupplier.java:141) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?] at dev.lukebemish.dynamicassetgenerator.api.sources.TagSupplier$TagBakery.checkTags(TagSupplier.java:140) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at dev.lukebemish.dynamicassetgenerator.api.sources.TagSupplier$TagBakery.apply(TagSupplier.java:152) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at dev.lukebemish.excavatedvariants.impl.ExcavatedVariants$1.apply(ExcavatedVariants.java:159) ~[excavatedvariants-4.3.0-fabric.jar:?] at dev.lukebemish.excavatedvariants.impl.ExcavatedVariants$1.apply(ExcavatedVariants.java:156) ~[excavatedvariants-4.3.0-fabric.jar:?] at dev.lukebemish.dynamicassetgenerator.api.sources.TagSupplier$TagBakery.lambda$checkTags$9(TagSupplier.java:141) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?] at dev.lukebemish.dynamicassetgenerator.api.sources.TagSupplier$TagBakery.checkTags(TagSupplier.java:140) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at dev.lukebemish.dynamicassetgenerator.api.sources.TagSupplier$TagBakery.getLocations(TagSupplier.java:125) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at dev.lukebemish.dynamicassetgenerator.api.ResourceCache.lambda$getResources$2(ResourceCache.java:93) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?] at dev.lukebemish.dynamicassetgenerator.api.ResourceCache.getResources(ResourceCache.java:90) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at dev.lukebemish.dynamicassetgenerator.impl.GeneratedPackResources.getStreams(GeneratedPackResources.java:39) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at dev.lukebemish.dynamicassetgenerator.impl.GeneratedPackResources.method_14406(GeneratedPackResources.java:90) ~[dynamicassetgenerator-6.1.1-fabric.jar:?] at net.minecraft.class_6861.method_41275(class_6861.java:31) ~[client-intermediary.jar:?] at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[?:?] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024) ~[?:?] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?] at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?] at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?] at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) ~[?:?] at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) ~[?:?] at net.minecraft.class_6861.(class_6861.java:31) ~[client-intermediary.jar:?] at net.minecraft.class_7237$class_7238.method_42099(class_7237.java:94) ~[client-intermediary.jar:?] at net.minecraft.class_7237.method_42098(class_7237.java:27) ~[client-intermediary.jar:?] at net.minecraft.class_7196.method_45694(class_7196.java:181) ~[client-intermediary.jar:?] at net.minecraft.class_7196.method_54610(class_7196.java:137) ~[client-intermediary.jar:?] at net.minecraft.class_7196.method_57780(class_7196.java:323) ~[client-intermediary.jar:?] at net.minecraft.class_7196.method_57781(class_7196.java:313) ~[client-intermediary.jar:?] at net.minecraft.class_7196.method_57782(class_7196.java:278) ~[client-intermediary.jar:?] at net.minecraft.class_7196.method_57784(class_7196.java:243) ~[client-intermediary.jar:?] at net.minecraft.class_528$class_4272.method_20164(class_528.java:434) ~[client-intermediary.jar:?] at net.minecraft.class_528$class_4272.method_25402(class_528.java:411) ~[client-intermediary.jar:?] at net.minecraft.class_350.method_25402(class_350.java:315) ~[client-intermediary.jar:?] at net.minecraft.class_4069.method_25402(class_4069.java:38) ~[client-intermediary.jar:?] at net.minecraft.class_312.method_1611(class_312.java:107) ~[client-intermediary.jar:?] at net.minecraft.class_437.method_25412(class_437.java:431) ~[client-intermediary.jar:?] at net.minecraft.class_312.method_1601(class_312.java:107) ~[client-intermediary.jar:?] at net.minecraft.class_312.method_22686(class_312.java:196) ~[client-intermediary.jar:?] at net.minecraft.class_1255.execute(class_1255.java:108) ~[client-intermediary.jar:?] at net.minecraft.class_312.method_22684(class_312.java:196) ~[client-intermediary.jar:?] at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) [lwjgl-glfw-3.3.3.jar:?] at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.3.jar:?] at org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3509) [lwjgl-glfw-3.3.3.jar:?] at com.mojang.blaze3d.systems.RenderSystem.limitDisplayFPS(RenderSystem.java:184) [client-intermediary.jar:?] at net.minecraft.class_310.method_1523(class_310.java:1310) [client-intermediary.jar:?] at net.minecraft.class_310.method_1514(class_310.java:882) [client-intermediary.jar:?] at net.minecraft.client.main.Main.main(Main.java:256) [client-intermediary.jar:?] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480) [fabric-loader-0.16.5.jar:?] at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.16.5.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.16.5.jar:?]

I'll attach the full logs with both tide running and not running in case that helps.

Thanks again for any help you can offer and let me know if there's any testing or info gathering I can do on my side that might help out.

NoTide.log WithTide.log

Lightning-64 commented 5 hours ago

I've found the issue! Quite quickly, in fact. The error that you sent in the log was very helpful!

So basically, the Excavated Variants mod goes through each "tier" that is ever created, such as iron, gold, diamond, wood, stone, etc. Tide creates one custom tier to use for the Blazing Swordfish item, because weapons require a custom tier to be created. Excavated variants goes through every tier and keeps track of the IncorrectBlocksForDrops assigned for each tier so that its ores can be properly created.

When I was making the mod, I set the IncorrectBlocksForDrops tag for the Blazing Swordfish tier to be null, because I thought it would never be used, as the property is only used by pickaxes. Excavated variants, however, uses this tag to use for its ore blocks, and will throw an error if this value doesn't exist! All I had to do is pass in an actual value for the IncorrectBlocksForDrops property for the Blazing Swordfish tier, and the bug is fixed.

Thanks for the help and testing! I'll have this fix ready for the next update.

Advaera commented 5 hours ago

Amazing!

Thank you so much for looking into that, I'll be looking forward to the next update!