
[CRASH] Resource Location Error Due to Locale-Sensitive Lowercasing
Helios312 opened this issue · 9 comments
To Reproduce
Steps to reproduce the crash:
- Download the Modpack from https://www.curseforge.com/minecraft/modpacks/elysian-server-pack
- Start the game.
- See error
Crash log
https://pastebin.com/2Xz3b7mJ
Versions
Running on 1.20.1 Forge 47.3.0 using mod version 6.1.2. Many other mods installed on the Modpack.
Additional context
I run a server.
One of the players came in with this crash report of their client, nobody else so far has had this issue.
I asked them to remove Oculus from the Modpack but it didn't change anything.
Hm it looks like it failed because of this:
Non [a-z0-9/._-] character in path of location: table_top_craft:models/pieces/kn\u0131ght.obj
But I'm completely unsure how the name of the model would change/break?
Did he perhaps try to replace the knight model by any chance?
But yeah \u0131
is unicode for the character Small Dotless I
which suggests its trying to load Knıght
instead of Knight
.
I'm not sure, this is a very strange error I have never seen before. Does he happen to use an "unusual" minecraft language setting? Or perhaps his computer language?
Since this only happens to one person (based on your message above), there is probably some sort of edge case that causes this to fail.
I guess for starters have the person run the game with just TTC as well, to see if its potentially an incompatibility or if the mod fails to load in general. From there if it is an incompatibility, I'm afraid the best course of action is to add them slowly, until it fails to load which should reveal the conflict (assuming there is 1 other mod that does this).
From what he told me he didn't modify the modpack in anyway. I'm not sure why the mod would do that by itself. How can I fix this?
He said the game crashed with just TTC. Could this be an issue from the Mods end?
Hm yeah if it crashed with just the Mod there seems to be some kind of weird issue that his system has with the Mod.
Can either of you maybe join my discord and we can talk about it there? Would probably make it easier to track down why this is happening.
Going to leave a NOTE here, until I fix this and push an update for all versions.
Essentially what is happening is that on some systems this line here:
return PIECE_PATH.replace("%type%", type.name().toLowerCase());
Converts KNIGHT
to unexpected things such as knıght
instead of knight
.
This happens because apparently by default the system language affects #toLowerCase()
.
Thankfully the fix is rather simple, I just have to specify the Locale
used for the conversion, and it will always convert it to knight
.
If you run into this issue and I haven't released updates on curse yet, simply reach out to me on the discord server.