Structurize

Structurize

40M Downloads

1.20.2 - Description: Ticking entity ``Non Descript Crash`` after update.

P3rf3ctXZer0 opened this issue ยท 10 comments

commented

Is there an existing issue for this?

  • I have searched the existing issues.

Are you using the latest Structurize Version?

  • I am running the latest alpha version of Structurize for my Minecraft version.
    I am also running the latest versions of other mods that are part of my problem.

Did you check on the Wiki? or ask on Discord?

  • I checked the MineColonies/Structurize Wiki or I asked on discord.

Minecraft Version

1.20

Structurize Version

structurize-1.20.1-1.0.662-BETA.jar

MineColonies Version (if related bug)

minecolonies-1.20.1-1.1.303-BETA.jar

Related Mods and their Versions

https://legacy.curseforge.com/minecraft/modpacks/fiction-friction-pixelmon/files/4846571

Current Behavior

Structurize crash https://gist.github.com/P3rf3ctXZer0/1fc0ec239d0f40138e0a61cb74276bb1

``Suspected Mods:
MineColonies (minecolonies), Version: 1.20.1-1.1.303-BETA
Issue tracker URL: https://github.com/ldtteam/minecolonies/issues/new/choose
at TRANSFORMER/[email protected]/com.minecolonies.coremod.entity.ai.util.BuildingStructureHandler.triggerSuccess(BuildingStructureHandler.java:206)

Structurize (structurize), Version: 1.20.1-1.0.662-BETA
    Issue tracker URL: https://github.com/ldtteam/structurize/issues/new/choose
    at TRANSFORMER/[email protected]/com.ldtteam.structurize.placement.AbstractBlueprintIterator.iterateWithCondition(AbstractBlueprintIterator.java:126)

Observable (observable), Version: 4.4.0
    Issue tracker URL: https://github.com/tasgon/observable/issues
    Mixin class: observable.mixin.ServerLevelMixin
    Target: net.minecraft.server.level.ServerLevel
    at TRANSFORMER/[email protected]/net.minecraft.server.level.ServerLevel.track(ServerLevel.java:11169)``

Expected Behavior

No Crash

Reproduction Steps

Updated structurize-1.20.1-1.0.659-BETA.jar to structurize-1.20.1-1.0.662-BETA.jar
Be on a Dedicated Server (At least in my test.)

Logs

https://gist.github.com/P3rf3ctXZer0/1fc0ec239d0f40138e0a61cb74276bb1

Anything else?

Nope.

Footer


Viewers

  • Add a thumbs-up to the bug report if you are also affected. This helps the bug report become more visible to the team and doesn't clutter the comments.
  • Add a comment if you have any insights or background information that isn't already part of the conversation.
commented

Same versions as Zer0 but in single player, 2 crashes, both referencing an error ticking the same entity
https://gist.github.com/rrusciguy/aebce9ae95b3b9770faa687f36c3f6ca

commented

Ahhhh, that does make sense.

commented

This is beyond my java/jvm knowledge, the method hasn't changed in last commit, just iface was added...

commented

Looks like Blueprint.getBlockState used to be a unique method and is now an interface override (but lacking the @Override attribute). Whether that makes it ABI incompatible is also beyond my JVM knowledge, but it seems possible.

If it was that particular change, then the short-term workaround would be to downgrade Structurize to 659 until Minecolonies requires the newer version.

commented

Ye, had the same thought too, unfortunately the same name and method erasure as the vanilla method, so we will have to dump the structurize version in minecolonies

commented

Oh, actually, that'll be what it was: according to all sources I can find this sort of "add an interface" is usually ABI compatible in Java, but in the specific case of Minecraft it isn't, because the added interface was a vanilla interface and thus the "real" method name isn't getBlockState any more but the obfuscated version. Which is why it would also still mysteriously work in a dev environment.

Or to put that another way, the ABI break is that Blueprint.getBlockState got renamed to Blueprint.m_7583578 (or whatever, I didn't actually look it up).

commented

Mcol was bumped so now it should compile properly (please close if fixed), btw this would get caught by bin compat checker, guess I really gonna create one...

commented

They will close it when its fixed I am sure - they always do.

commented

They will close it when its fixed I am sure - they always do.

I can close it :D but I want to be sure it works as I intended, so that's why I asked you to close it if it works for u now