Dungeon Crawl

Dungeon Crawl

20M Downloads

/Locate command in dimensions without dungeons will cause infinite loop due to a dimension/biome check somewhere

TelepathicGrunt opened this issue ยท 3 comments

commented

In version 1.6.3 for 1.15.2 MC, if a player tries to use the /locate dungeoncraw:dungeon in a dimension without the structure, the game will think the dimension can have the structure because it is added to all biomes but when actually looking for it, I suspect the dimension checking I see in the Dungeon.java may be causing the game to keep checking every chunks forever until it can find a dungeon but it will never find one. This was the case when I imported the dungeon to my biome in my own dimension. I restarted and tried the /locate command in the Nether and got the same result too.

Also, I noticed there are several other checks as well that mainly hurts mod compatibility. For example, the check for "Why is there a dungeon biome outside the dungeon dimension?" pretty much exploded my logs when I made a biome that imports all features from all other biomes lol. That check isn't actually correct since I only took the dungeon and not the biome so that check should be somewhere else or just removed completely as there will always be mods that does weird fun stuff with the biome or feature registry. And yeah, that message kept popping up even when i set the config for ignore_dimension and ignore_overworld_blacklist to true.
image

Let me know if you need more info on the hanging/infinite loop issue or want to know more details of what I'm doing with importing the feature to my biome. :)

commented

Ok I did more testing and narrowed down how to reproduce the issue. It seems to be a dimension+biome issue.

If you use a mod that adds a biome to any dimension that isn't the Overworld and then do the /locate command for the dungeon, the game hangs forever. You can do /execute in dimension run tp ~ ~ ~ to quickly enter those dimensions to test this.

What mods I tried:
Biome o plenty : causes infinite loop in nether since they might have added biomes to the nether.
Moolands : hangs in their own dimension
Good Night's Sleep : hangs in any of their dimensions.

Edit: the logs shows no errors or issue.

commented

Well, the dimension check is only running before a dungeon gets generated (which means that the locate command will have already found the dungeon at this point), and if its result is negative the dungeon will be empty. The biome check is equivalent to the ones from all other vanilla structures.

For example, the check for "Why is there a dungeon biome outside the dungeon dimension?" pretty much exploded my logs when I made a biome that imports all features from all other biomes

This looks like the dimdungeon structure has been imported to other biomes. Dungeon Crawl does nothing like that. Overall it just seems like that feature import mechanic you are using is breaking things?

commented

Fir the logs, yeah I misread and accidentally assumed it was DungeonCrawl when it was DimDungeon. Sorry about that.

However, in my second comment about testing, I forgot to mention that I took off my mod and only had DungeonCrawl + one of those three other mods in the mod folder. I tested each of them one by one in a new world and performed the /locate command in their dimensions (Nether for Biome O Plenty, Moolands for Moolands, and that dream dimension in Good Night Sleep). In all three cases, the locate command for DungeonCrawl's dungeon will cause the game to hang permanently where chunks won't load and trying to exit the world will make the game be stuck on the saving world screen.

I am going to see if my friends can also reproduce the issue as well.

Again, sorry for the confusion. If you want, I can make a new bug report that contains only the correct info about the hanging and not the log mistake i made.