FoundationGames / Sandwichable

Customizable Sandwich mod for Minecraft
MIT License
32 stars 28 forks source link

Ancient Grain causes a server crash if accessed by Botania's corporea.CorporeaStringMatcher #163

Open macks2008 opened 5 months ago

macks2008 commented 5 months ago

What Minecraft and Sandwichable version were you using?

Sandwichable 1.3.1+1.20.1 Also involved Botania v1.20.1-443-FABRIC

A summary of the bug/crash (what you did vs. what you expected to happen)

A player on our server stored Ancient Grain and Ancient Bread (from a Snowy Plains) in a Botania Corporea network, and the server crashed when they tried to request "dirt" from the network. Since Corporea indexes handle items based on their display name, we think the crash probably happened (partly, see incomplete repro below) because of Ancient Grain's name being different depending on data. Would it be possible to split the items up completely? (I don't know what the load order of stuff is)

What other mods were you playing with?

It's a private-ish pack used by Hex Casting's semiofficial test server. Prism compatible zip here: https://github.com/walksanatora/HexxyTestPack/blob/main/modpack.zip Note: the mods are downloaded and auto-updated at runtime with packwiz, so you may need to clone the repo, checkout 1abfac2, and use some packwiz commands to get it just like we have it depending on if there are significant pack changes. I can probably simplify this if you need, just not sure how at the moment.

Exact instructions for how to make the bug happen again:

We are not actually sure; I did give it a solid effort to reproduce it but I haven't gotten it to happen in singleplayer yet. It should be something along these lines though:

  1. Play with the mods on a server (Quite possibly the missing step that I couldn't reproduce in single player. It's reliably reproducible on the server)
  2. Place a chest with a corporea Spark on top.
  3. Do the same thing with a second chest and a master corporea spark on top.
  4. Put a Corporea Index with one of the normal sparks on top
  5. Put some Ancient Grain related items in the chest from step 1 (the one with the normal spark). I tried with grain and bread from 2 different biomes.
  6. Stand in close proximity to the Corporeal Index. You'll know you're close enough if pink particle effects appearIn a ring around you.
  7. Say into chat "count dirt" or maybe just "dirt"
  8. This should cause the corporea index to intercept your message, attempt to retrieve what you specified, and fail spectacularly, crashing the server.

Game logs (if this is a crash, please attach one)

I don't have access to the full log file, and it'd probably be quite long since this is only a semiprivate server. Here's a crash report at least: crash-2024-02-20-ish.txt