BetterStrongholds incompatibility
griffin4cats opened this issue ยท 4 comments
Pre-Issue Checklist
- I have checked that I am on the latest version of Terra.
- I have searched the github issue tracker for similar issues, including closed ones.
- I have made sure that this is not a bug with another mod or plugin, and it is Terra that is causing the issue.
- I have checked that this is an issue with Terra and not an issue with the pack I am using.
- I have attached a copy of the
latest.log
file - I have filled out and provided all the appropriate information.
Environment
Name | Value |
---|---|
Terra Version | Terra-fabric-5.4.1-BETA+40e95073-shaded-mapped |
Platform / Platform Version | Fabric 1.17.1 (loader version 0.11.6) |
Any External Plugins or Mods | BetterStrongholds, LazyDFU, and their dependencies (Fabric API, cloth config, Yung's API) |
Terra Packs In Use | DEFAULT v2.0.0, NETHER v2.0.0 |
Terra Addons In Use | Terra-Fabric v1.0.0 |
Issue Description
Terra causes a deadlock when using an eye of ender while BetterStrongholds is enabled.
Steps to reproduce
- Install aforementioned mods
- Create new world with Terra:DEFAULT
- Throw eye of ender
Expected behavior
Eye should fly toward a betterstrongholds:stronghold, or to a stronghold from Terra (preferably toward the former)
Actual behavior
The game will deadlock in singleplayer. In multiplayer, the same issue occurs (the server host i used to test this shuts the server off after 60 seconds considering it to have crashed).
Full stacktrace
Additional details
This comes after a conversation on Yung's discord after it was determined that BetterStrongholds was not the mod at fault.
The full conversation can be viewed at this location on their discord, and you can join their discord here.
The discussion there also brings up a snippet from their code which reveals that the way BetterStrongholds affects eyes of ender is not the cause of the crash.
Gonna pop in to try and help narrow down the issue. It has been reported that Repurposed Structures is also having this issue as well but my strongholds are only in the nether and end. So the fact that a server is deadlocking and being killed by the watchdog with the stacktrace showing my structure is being located implies there's a missing check in Terra or it made normal locate code now loop forever.
Stacktrace shown: https://paste.ee/p/pbKTJ
My mixin: https://github.com/TelepathicGrunt/RepurposedStructures-Fabric/blob/latest-released/src/main/java/com/telepathicgrunt/repurposedstructures/mixin/structures/EnderEyeStrongholdLocatingMixin.java
I had the person blacklist my structure from the overworld so that my structure spacing is not added at all to the overworld's noise setting but that still caused the issue. Very odd
Ok let's backup a waaaaay ton cause i screwed up testing lol.
I didn't realized i needed to explicitly turn on compat with other mods by adding structures: true
to the vanilla
section in the pack.yml
file within terra's Default
pack. That now makes my structures spawn.
With my structure's spawning and /locate working, I tried to /locate structures I know spawns in the overworld and it works. If I use /locate for a structure that doesn't spawn in the overworld, the game hangs forever. The biome list here is what should be preventing that locating hang. It should only hold the biomes that the biome source can actually spawn. Although, it looks like that should be the case which is odd.
but at least we narrowed down the issue more properly now. Dont use /locate or any locating mechanic for structures that aren't in the overworld while in the overworld
I just did some more testing and even did /locate command for some of my structures like grassy igloo. Deadlocked. So i took a closer look and just flew around the world in spectator mode and tried to find any of my structures. But no luck at all. None of my structures are spawning in the world which is weird as my structures should be added to biome with Fabric API's BiomeModification event. Without a really deep check and how /locate seems to think the biomes in the world has the structures, I think the issue is this line
But it is resolving the biomes with the correct dynamic registry so it should be the correct biomes with the structures inside. I am very confused