Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Freeze when using Yung's Better Ocean Monuments #93

Open
Mirsario opened this issue Jul 7, 2023 · 4 comments
Open

Freeze when using Yung's Better Ocean Monuments #93

Mirsario opened this issue Jul 7, 2023 · 4 comments
Labels
priority: normal this issue does not break any critical functionality - it must be adressed, but not immediately status: confirmed this issue is reproducible or otherwise confirmed to exist type: compatibility this issue is caused by a compatibility problem

Comments

@Mirsario
Copy link

Mirsario commented Jul 7, 2023

This is kind of a reopen of #80 (Cartographer level-up freezes servers), but after both of the suggestions from there failed to help me I found one actual cause that isn't "it takes a long time" or vanilla's fault.

The cause of the freeze for me turned out to be the fact that cartographers were trying to locate the vanilla minecraft:monument structures, which Yung's Better Ocean Monuments removes from generation and replaces with the betteroceanmonuments:ocean_monument structure. If I were to make a guess, it's probably due to Numismatic Overhaul changing the trade type to its own special numismatic-overhaul:sell_map, so the generation mod doesn't recognize it to swap the vanilla structure type to its new one? Though I couldn't find the code for that, so I don't know for sure which side is at fault.

Pinging @yungnickyoung just in case.

Temporary Workaround

Applying the following change in
NurismaticOverhaul.jar/data/nurismatic-overhaul/villager_trades/cartographer.json
helped me avoid the issue for myself:

      {
        "type": "numismatic-overhaul:sell_map",
        "price": 3000,
-        "structure": "monument",
+        "structure": "betteroceanmonuments:ocean_monument",
        "max_uses": 2,
        "villager_experience": 15
      }

Crash Report

If you want to look at my colossal collection of mixins, which I don't think matters, here it is:
crash-2023-07-07_00.09.06-server.txt

@gliscowo gliscowo added type: compatibility this issue is caused by a compatibility problem priority: normal this issue does not break any critical functionality - it must be adressed, but not immediately status: confirmed this issue is reproducible or otherwise confirmed to exist labels Aug 19, 2023
@Ricenami
Copy link

How do I do this fix myself? Do I make a datapack?

@Noaaan
Copy link
Member

Noaaan commented Sep 14, 2023

Yes. Copying and editing the cartographer trades from that location will fix this issue. It is unfortunately not easy to handle, as Better Ocean Monuments creates its own structure rather than replacing the vanilla one.
The watchdog crash in question is actually a vanilla crash, which happens when a cartographer map tries to look for a structure for too long. I recommend upping the max-tick-time setting in your server.properties as an attempt to mitigate the issue, or fix it via data.

@Ricenami
Copy link

I appreciate your quick response, as for the server max-tick-time, what amount do you recommend?

@Mirsario
Copy link
Author

Mirsario commented Sep 14, 2023

I recommend upping the max-tick-time setting in your server.properties as an attempt to mitigate the issue, or fix it via data.

The former can't help without the latter in this conflict's case, as the game's structure locator is for some reason completely fine with spending an actual eternity looking for a non-existing vanilla structure, and seemingly doesn't have its own failure state, with only the tick watchdog there to stop that madness. If someone sets max-tick-time to a year - it'll look for that monument for a year.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: normal this issue does not break any critical functionality - it must be adressed, but not immediately status: confirmed this issue is reproducible or otherwise confirmed to exist type: compatibility this issue is caused by a compatibility problem
Projects
None yet
Development

No branches or pull requests

4 participants