-
-
Notifications
You must be signed in to change notification settings - Fork 48
Description
here's the bug report and solution to fix it buddy :)
BUG REPORT – Client Crash with Turkish Locale on Multiplayer Servers
Mod: Passive Skill Tree (daripher.skilltree)
Version: 0.6.14b (Forge)
Minecraft: 1.19.2
Forge: 43.5.1
Environment: Multiplayer (dedicated server)
OS: Windows (client language set to Turkish)
DESCRIPTION
When playing on a multiplayer server, opening the Passive Skill Tree screen causes a client-side crash if the client system language / locale is set to Turkish.
The same setup does NOT crash in singleplayer, and the issue disappears immediately if the client system language (or JVM locale) is changed to English (US).
This strongly suggests a locale-sensitive string handling issue on the client GUI side.
CRASH DETAILS
The crash is caused by a NullPointerException:
java.lang.NullPointerException: Cannot invoke
"daripher.skilltree.skill.PassiveSkill.getDirectConnections()"
because "skill" is null
Crash location:
daripher.skilltree.client.screen.SkillTreeScreen.addSkillConnections()
The crash occurs while rendering skill connections in the GUI.
ANALYSIS / SUSPECTED CAUSE
It appears that skill IDs received from the server are parsed or transformed on the client using locale-sensitive string operations such as:
toLowerCase()
toUpperCase()
Under the Turkish locale, characters like i / I / İ / ı are transformed differently, which can cause:
Skill IDs to be altered on the client
Registry lookups to fail
The skill variable to resolve as null
GUI code to call methods on a null skill, causing a crash
This explains why:
The crash happens only on multiplayer
Singleplayer works correctly (client and server share the same JVM and locale)
Changing the client locale to English fixes the issue immediately
This is a well-known Java issue commonly referred to as the “Turkish locale bug”.
CONFIRMED WORKAROUNDS
Any of the following completely fixes the crash:
Setting Windows system language and keyboard layout to English (United States)
Launching Minecraft with the following JVM arguments:
-Duser.language=en
-Duser.country=US
This confirms that the issue is locale-related and client-side.
SUGGESTED FIX
Ensure that all locale-sensitive string operations related to skill IDs use a fixed locale, for example:
toLowerCase(Locale.ROOT)
toUpperCase(Locale.ROOT)
instead of relying on the system default locale.
Additionally, adding proper null checks before accessing skill connections would prevent the hard crash.
EXPECTED BEHAVIOR
Passive Skill Tree GUI should open normally regardless of client system language
Multiplayer behavior should be consistent with singleplayer
No crash should occur due to client locale settings